Clarify Discogs API credential setup instructions for improved consis… #51
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: | |
| - 'main' | |
| - 'legacy/*' # Legacy branches: legacy/v3.x | |
| - 'feature/*' # Feature branches: feature/new-feature | |
| - 'hotfix/*' # Hotfix branches: hotfix/urgent-fix | |
| - 'release/*' # Release branches: release/v4.0.0 | |
| pull_request: | |
| branches: | |
| - 'main' | |
| - 'legacy/*' # PRs to legacy branches | |
| workflow_dispatch: # Allows manual triggering via GitHub UI | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # Symfony 6.4 LTS compatibility | |
| - php: '8.2' | |
| symfony-version: '^6.4' | |
| allowed-to-fail: false | |
| - php: '8.3' | |
| symfony-version: '^6.4' | |
| allowed-to-fail: false | |
| - php: '8.4' | |
| symfony-version: '^6.4' | |
| allowed-to-fail: false | |
| # Symfony 7.x current versions | |
| - php: '8.2' | |
| symfony-version: '^7.0' | |
| allowed-to-fail: false | |
| - php: '8.3' | |
| symfony-version: '^7.0' | |
| allowed-to-fail: false | |
| - php: '8.4' | |
| symfony-version: '^7.0' | |
| allowed-to-fail: false | |
| - php: '8.3' | |
| symfony-version: '^7.1' | |
| allowed-to-fail: false | |
| - php: '8.4' | |
| symfony-version: '^7.1' | |
| allowed-to-fail: false | |
| - php: '8.4' | |
| symfony-version: '^7.2' | |
| allowed-to-fail: false | |
| - php: '8.4' | |
| symfony-version: '^7.3' | |
| allowed-to-fail: false | |
| - php: '8.4' | |
| symfony-version: '^7.4' | |
| stability: 'dev' | |
| allowed-to-fail: true | |
| # Future-ready: Symfony 8.0 (beta/dev) - Requires PHP 8.4+ | |
| - php: '8.4' | |
| symfony-version: '^8.0' | |
| stability: 'dev' | |
| allowed-to-fail: true | |
| # Future-ready: PHP 8.5 (alpha/dev) - when available | |
| - php: '8.5' | |
| symfony-version: '^7.3' | |
| stability: 'dev' | |
| allowed-to-fail: true | |
| - php: '8.5' | |
| symfony-version: '^7.4' | |
| stability: 'dev' | |
| allowed-to-fail: true | |
| - php: '8.5' | |
| symfony-version: '^8.0' | |
| stability: 'dev' | |
| allowed-to-fail: true | |
| name: "PHP ${{ matrix.php }}${{ matrix.symfony-version && format(' | Symfony {0}', matrix.symfony-version) || '' }}${{ matrix.stability && format(' | {0}', matrix.stability) || '' }}" | |
| continue-on-error: ${{ matrix.allowed-to-fail }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: ${{ matrix.php }} | |
| extensions: json, mbstring, tokenizer | |
| coverage: none | |
| 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@v4 | |
| with: | |
| path: ${{ steps.composer-cache.outputs.dir }} | |
| key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
| restore-keys: ${{ runner.os }}-composer- | |
| - name: Configure stability | |
| if: matrix.stability | |
| run: | | |
| composer config minimum-stability ${{ matrix.stability }} | |
| composer config prefer-stable true | |
| - name: Configure Symfony version | |
| if: matrix.symfony-version | |
| run: | | |
| composer require --no-update \ | |
| symfony/config:${{ matrix.symfony-version }} \ | |
| symfony/dependency-injection:${{ matrix.symfony-version }} \ | |
| symfony/http-kernel:${{ matrix.symfony-version }} \ | |
| symfony/security-core:${{ matrix.symfony-version }} \ | |
| symfony/phpunit-bridge:${{ matrix.symfony-version }} | |
| - name: Remove composer.lock | |
| run: rm -f composer.lock | |
| - name: Install dependencies | |
| run: composer update --prefer-dist --no-interaction --no-progress | |
| - name: Validate composer.json and composer.lock | |
| run: | | |
| if [[ "${{ github.ref }}" == *"beta"* || "${{ github.ref }}" == *"alpha"* || "${{ github.ref }}" == *"rc"* ]]; then | |
| composer validate --no-check-version | |
| else | |
| composer validate --strict | |
| fi | |
| - name: Run code style check | |
| run: composer cs | |
| - name: Run static analysis | |
| run: | | |
| if [[ "${{ matrix.symfony-version }}" == "^8.0" ]]; then | |
| # Symfony 8.0: Use specific baseline for remaining issues | |
| vendor/bin/phpstan analyse src --level=8 --configuration phpstan/symfony8-baseline.neon | |
| elif [[ "${{ matrix.symfony-version }}" == "^7.4" ]]; then | |
| # Symfony 7.4 LTS: Functionally identical to 8.0, needs same baseline | |
| vendor/bin/phpstan analyse src --level=8 --configuration phpstan/symfony74-baseline.neon | |
| elif [[ "${{ matrix.symfony-version }}" == "^6.4" || "${{ matrix.symfony-version }}" == "^7.0" || "${{ matrix.symfony-version }}" == "^7.1" || "${{ matrix.symfony-version }}" == "^7.2" || "${{ matrix.symfony-version }}" == "^7.3" ]]; then | |
| # Older Symfony versions: Use legacy baseline for children() issue | |
| composer analyse | |
| else | |
| # Future versions: Try without baseline first | |
| composer analyse-legacy | |
| fi | |
| - name: Run tests | |
| run: ./vendor/bin/simple-phpunit -v | |
| env: | |
| DISCOGS_CONSUMER_KEY: ${{ secrets.DISCOGS_CONSUMER_KEY }} | |
| DISCOGS_CONSUMER_SECRET: ${{ secrets.DISCOGS_CONSUMER_SECRET }} | |
| DISCOGS_PERSONAL_ACCESS_TOKEN: ${{ secrets.DISCOGS_PERSONAL_ACCESS_TOKEN }} | |
| code-quality: | |
| runs-on: ubuntu-latest | |
| name: Code Quality Checks | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: '8.4' | |
| extensions: json, mbstring, tokenizer | |
| coverage: none | |
| 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@v4 | |
| with: | |
| path: ${{ steps.composer-cache.outputs.dir }} | |
| key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
| restore-keys: ${{ runner.os }}-composer- | |
| - name: Install dependencies | |
| run: composer install --prefer-dist --no-interaction --no-progress | |
| - name: Validate composer.json and composer.lock | |
| run: | | |
| if [[ "${{ github.ref }}" == *"beta"* || "${{ github.ref }}" == *"alpha"* || "${{ github.ref }}" == *"rc"* ]]; then | |
| composer validate --no-check-version | |
| else | |
| composer validate --strict | |
| fi | |
| coverage: | |
| runs-on: ubuntu-latest | |
| name: Code Coverage | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: '8.4' | |
| extensions: json, mbstring, tokenizer | |
| coverage: xdebug | |
| 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@v4 | |
| with: | |
| path: ${{ steps.composer-cache.outputs.dir }} | |
| key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} | |
| restore-keys: ${{ runner.os }}-composer- | |
| - name: Install dependencies | |
| run: composer install --prefer-dist --no-interaction --no-progress | |
| - name: Run tests with coverage | |
| run: ./vendor/bin/simple-phpunit --coverage-clover coverage.xml | |
| env: | |
| DISCOGS_CONSUMER_KEY: ${{ secrets.DISCOGS_CONSUMER_KEY }} | |
| DISCOGS_CONSUMER_SECRET: ${{ secrets.DISCOGS_CONSUMER_SECRET }} | |
| DISCOGS_PERSONAL_ACCESS_TOKEN: ${{ secrets.DISCOGS_PERSONAL_ACCESS_TOKEN }} | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v4 | |
| with: | |
| file: ./coverage.xml | |
| flags: unittests | |
| name: codecov-umbrella | |
| fail_ci_if_error: false |