Skip to content

Clarify Discogs API credential setup instructions for improved consis… #51

Clarify Discogs API credential setup instructions for improved consis…

Clarify Discogs API credential setup instructions for improved consis… #51

Workflow file for this run

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