Skip to content

CI

CI #202

Workflow file for this run

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