Skip to content

fix(legacy): make hidden command aliases resolve again (#178) #580

fix(legacy): make hidden command aliases resolve again (#178)

fix(legacy): make hidden command aliases resolve again (#178) #580

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v7
- name: Setup Go
uses: actions/setup-go@v7
with:
go-version-file: ./go.mod
- name: Create fake PHP and .phar files
run: |
# These are needed so that the linter does not complain
mkdir -p internal/legacy/archives
touch internal/legacy/archives/platform.phar
touch internal/legacy/archives/php_windows_amd64
touch internal/legacy/archives/php_linux_amd64
touch internal/legacy/archives/php_linux_arm64
touch internal/legacy/archives/php_darwin_amd64
touch internal/legacy/archives/php_darwin_arm64
touch internal/config/embedded-config.yaml
- name: Run lint-gomod
run: make lint-gomod
- name: Run golangci-lint
uses: golangci/golangci-lint-action@v9
with:
version: v2.11
args: --timeout=5m
- name: Run tests
run: make test
- name: Check goreleaser config
run: make goreleaser-check
legacy-php:
runs-on: ubuntu-latest
defaults:
run:
working-directory: legacy
steps:
- name: Check out repository code
uses: actions/checkout@v7
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.4'
extensions: curl, openssl, phar, zlib
tools: composer:v2
- name: Get Composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache Composer dependencies
uses: actions/cache@v6
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('legacy/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-
- name: Install dependencies
run: composer install --no-interaction
- name: Lint PHP (php-cs-fixer)
run: make lint-php-cs-fixer
- name: Lint PHP (phpstan)
run: make lint-phpstan
- name: Run PHPUnit tests
run: ./scripts/test/unit.sh
- name: Build platform.phar
run: php bin/platform self:build --no-interaction --output=platform.phar
integration-test:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v7
- name: Setup Go
uses: actions/setup-go@v7
with:
go-version-file: ./go.mod
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.4'
extensions: curl, openssl, phar, zlib
tools: composer:v2
- name: Get Composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache Composer dependencies
uses: actions/cache@v6
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('legacy/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-
- name: Install legacy dependencies
run: cd legacy && composer install --no-interaction
- name: Download PHP binary
run: make php
- name: Build platform.phar
run: |
mkdir -p internal/legacy/archives
cd legacy && php bin/platform self:build --no-interaction --output=../internal/legacy/archives/platform.phar
- name: Build CLI
run: make single
- name: Run integration tests
run: make integration-test
# The only Windows coverage: which certificates the embedded PHP trusts.
windows-cert-store:
runs-on: windows-latest
steps:
- name: Check out repository code
uses: actions/checkout@v7
- name: Setup Go
uses: actions/setup-go@v7
with:
go-version-file: ./go.mod
- name: Download embedded PHP files
shell: bash
run: |
php_version=$(grep -m1 '^PHP_VERSION' Makefile | cut -d' ' -f3)
mkdir -p internal/legacy/archives
curl -fSL "https://github.com/upsun/cli-php-builds/releases/download/php-$php_version/php-$php_version-windows-amd64.exe" \
-o internal/legacy/archives/php_windows.exe
curl -fSL https://curl.se/ca/cacert.pem -o internal/legacy/archives/cacert.pem
# Only needed so that the package builds.
touch internal/legacy/archives/platform.phar
- name: Run Windows tests
shell: bash
env:
CLI_TEST_MODIFY_CERT_STORE: '1'
run: GOEXPERIMENT=jsonv2 go test -v -count=1 -timeout 3m -run TestWindows ./internal/legacy/
# Reading the certificate store happens before every legacy command.
- name: Measure building the CA bundle
if: always()
shell: bash
run: GOEXPERIMENT=jsonv2 go test -run '^$' -bench BenchmarkWindows -benchmem ./internal/legacy/