Skip to content

auto release workflow #3

auto release workflow

auto release workflow #3

Workflow file for this run

name: ci
on: [ push, pull_request ]
jobs:
test:
permissions:
contents: write
name: Run tests
runs-on: ubuntu-latest
strategy:
matrix:
php-versions: [ '8.1', '8.2', '8.3' ]
steps:
- name: Checkout codebase
uses: actions/checkout@v4
- name: Setup PHP Action
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
- name: Get composer cache directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
- name: Cache dependencies
uses: actions/cache@v3
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-
- name: Install dependencies
run: composer install --prefer-dist
- name: Recreate autoload file
run: composer dump-autoload
- name: Run Psalm
run: ./vendor/bin/psalm
- name: Run Unit Tests
run: XDEBUG_MODE_COVERAGE=coverage vendor/bin/phpunit
- if: ${{ (matrix.php-versions == '8.3') }}
name: Generate test coverage badge
uses: timkrase/phpunit-coverage-badge@v1.2.1
with:
coverage_badge_path: output/coverage.svg
push_badge: false
- if: ${{ (matrix.php-versions == '8.3') }}
name: Git push to image-data branch
uses: peaceiris/actions-gh-pages@v3
with:
publish_dir: ./output
publish_branch: image-data
github_token: ${{ secrets.GITHUB_TOKEN }}
user_name: 'github-actions[bot]'
user_email: 'github-actions[bot]@users.noreply.github.com'
- if: startsWith(github.ref, 'refs/tags/v')
uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
prerelease: false