diff --git a/.github/workflows/check_changelog.yml b/.github/workflows/check_changelog.yml index c0cc43b..e528aae 100644 --- a/.github/workflows/check_changelog.yml +++ b/.github/workflows/check_changelog.yml @@ -9,7 +9,7 @@ permissions: jobs: check-changelog: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: (!contains(github.event.pull_request.labels.*.name, 'skip changelog')) steps: - name: Checkout diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dfa4bb7..10ec233 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ env: jobs: lint: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v4 @@ -29,7 +29,7 @@ jobs: run: cargo fmt -- --check unit-test: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v4 @@ -51,7 +51,7 @@ jobs: arch: "arm64" - builder: "builder:20" arch: "arm64" - runs-on: ${{ matrix.arch == 'arm64' && 'pub-hk-ubuntu-22.04-arm-medium' || 'ubuntu-latest' }} + runs-on: ${{ matrix.arch == 'arm64' && 'pub-hk-ubuntu-24.04-arm-medium' || 'ubuntu-24.04' }} env: INTEGRATION_TEST_CNB_BUILDER: heroku/${{ matrix.builder }} steps: @@ -69,8 +69,18 @@ jobs: uses: Swatinem/rust-cache@v2.7.3 - name: Install Pack CLI uses: buildpacks/github-actions/setup-pack@v5.7.2 + # The images are pulled up front to prevent duplicate pulls due to the tests being run concurrently. - name: Pull builder image run: docker pull ${{ env.INTEGRATION_TEST_CNB_BUILDER }} + - name: Pull run image + # Using `docker inspect` rather than `pack builder inspect` since the latter makes + # additional requests to Docker Hub even when the image is available locally. + run: | + RUN_IMAGE=$( + docker inspect --format='{{index .Config.Labels "io.buildpacks.builder.metadata"}}' '${{ env.INTEGRATION_TEST_CNB_BUILDER }}' \ + | jq --exit-status --raw-output '.stack.runImage.image' + ) + docker pull "${RUN_IMAGE}" # The integration tests are annotated with the `ignore` attribute, allowing us to run # only those and not the unit tests, via the `--ignored` option. On the latest stack # we run all integration tests, but on older stacks we only run stack-specific tests.