Skip to content

Add heroku-24 to CI (#140) #76

Add heroku-24 to CI (#140)

Add heroku-24 to CI (#140) #76

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
permissions:
contents: read
jobs:
hatchet:
name: "Hatchet (${{ matrix.stack }})"
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
stack: ["heroku-20", "heroku-22", "heroku-24"]
env:
HATCHET_APP_LIMIT: 100
HATCHET_RUN_MULTI: 1
HATCHET_EXPENSIVE_MODE: 1
PARALLEL_SPLIT_TEST_PROCESSES: 6
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
HEROKU_API_USER: ${{ secrets.HEROKU_API_USER }}
HEROKU_DISABLE_AUTOUPDATE: 1
# TODO: Remove once Hatchet supports GitHub Actions natively:
# https://github.com/heroku/hatchet/pull/189
HATCHET_BUILDPACK_BRANCH: ${{ github.head_ref || github.ref_name }}
HATCHET_BUILDPACK_BASE: https://github.com/heroku/heroku-buildpack-gradle
# Default stack for all Heroku apps created by Hatchet
DEFAULT_APP_STACK: ${{ matrix.stack }}
steps:
- uses: actions/checkout@v4
- name: Install Ruby and dependencies
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
ruby-version: "2.7"
- name: Hatchet setup
run: bundle exec hatchet ci:setup
- name: Run Hatchet integration tests
run: bundle exec parallel_split_test test/spec/
buildpack-testrunner:
runs-on: ubuntu-22.04
env:
SHUNIT_HOME: /tmp/shunit2-2.1.6
# Note the missing STACK environment variable here. This works since there is a default value in the buildpack
# source. I ported this as-is from the Travis config. Given we're trying to get rid of testrunner entirely,
# it will stay like this. If we, for some reason, decide to keep testrunner, we should look into a fixed STACK env var.
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 8
- name: Download and unpack shunit 2.1.6
run: curl -sSf --retry 3 --retry-connrefused --connect-timeout 5 https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/shunit2/shunit2-2.1.6.tgz | tar xz -C /tmp/
- name: Clone heroku-buildpack-testrunner
run: git clone https://github.com/heroku/heroku-buildpack-testrunner.git /tmp/testrunner
- name: Apply heroku-buildpack-testrunner patches to enforce bash shell
run: |
cd /tmp/testrunner
git apply <<'EOF'
diff --git a/bin/run b/bin/run
index 0d5b790..a0ff25c 100755
--- a/bin/run
+++ b/bin/run
@@ -101,7 +101,7 @@ for bp in ${@}; do
suite_start_time="$(date +%s)"
echo " TEST SUITE: $(basename ${f})"
- ${SHUNIT_HOME?"'SHUNIT_HOME' environment variable must be set"}/src/shunit2 ${f} | indent
+ /bin/bash ${SHUNIT_HOME?"'SHUNIT_HOME' environment variable must be set"}/src/shunit2 ${f} | indent
exit_code=$(max ${exit_code} ${PIPESTATUS[0]})
suite_end_time="$(date +%s)"
EOF
- name: Execute buildpack-testrunner
run: /tmp/testrunner/bin/run .