CI #205
Workflow file for this run
This file contains 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" | |
pull_request: | |
workflow_dispatch: | |
permissions: | |
contents: read | |
env: | |
HEROKU_DISABLE_AUTOUPDATE: 1 | |
HATCHET_RETRIES: 3 | |
IS_RUNNING_ON_CI: true | |
HATCHET_APP_LIMIT: 300 | |
HATCHET_APP_PREFIX: ${{ format('htcht-{0}-', github.run_id) }} | |
HATCHET_EXPENSIVE_MODE: 1 | |
HATCHET_BUILDPACK_BASE: https://github.com/heroku/heroku-buildpack-php | |
HATCHET_BUILDPACK_BRANCH: ${{ github.head_ref || github.ref_name }} | |
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} | |
HEROKU_API_USER: ${{ secrets.HEROKU_API_USER }} | |
jobs: | |
integration-test: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
stack: ["heroku-20", "heroku-22"] | |
env: | |
STACK: ${{ matrix.stack }} | |
BLACKFIRE_CLIENT_ID: ${{ secrets.BLACKFIRE_CLIENT_ID }} | |
BLACKFIRE_CLIENT_TOKEN: ${{ secrets.BLACKFIRE_CLIENT_TOKEN }} | |
BLACKFIRE_SERVER_ID: ${{ secrets.BLACKFIRE_SERVER_ID }} | |
BLACKFIRE_SERVER_TOKEN: ${{ secrets.BLACKFIRE_SERVER_TOKEN }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Ruby and Bundler | |
uses: ruby/setup-ruby@v1 | |
with: | |
bundler-cache: true | |
ruby-version: "2.7" | |
- name: Install PHP and Composer | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: "8.2" | |
tools: "composer:2.6" | |
- name: Hatchet setup | |
run: bundle exec hatchet ci:setup | |
- name: Export HEROKU_PHP_PLATFORM_REPOSITORIES to …-develop (since we are not building main or a tag) | |
if: github.ref_type != 'tag' && github.ref_name != 'main' | |
run: | | |
echo "HEROKU_PHP_PLATFORM_REPOSITORIES=- https://lang-php.s3.us-east-1.amazonaws.com/dist-${STACK}-develop/" >> "$GITHUB_ENV" | |
- name: Execute tests | |
run: bundle exec parallel_rspec -n 16 --group-by runtime --unknown-runtime 1 --allowed-missing 100 --runtime-log "test/var/log/parallel_runtime_rspec.${STACK}.log" --verbose-command --combine-stderr --prefix-output-with-test-env-number test/spec/ | |
- name: Print parallel_runtime_rspec.log | |
run: cat parallel_runtime_rspec.log | grep -E '^test/spec/[a-z0-9_/\.-]+\.rb:[0-9]+\.[0-9]+$' | sort | |
post-integration-test: | |
if: always() | |
needs: [integration-test] | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Ruby and Bundler | |
uses: ruby/setup-ruby@v1 | |
with: | |
bundler-cache: true | |
ruby-version: "2.7" | |
- name: Hatchet setup | |
run: bundle exec hatchet ci:setup | |
- name: Clean up test apps | |
run: bundle exec hatchet destroy --all |