diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 318b557..05b41d9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -96,3 +96,71 @@ jobs: working-directory: ${{ matrix.buildpack-directory }} # Runs only tests annotated with the `ignore` attribute (which in this repo, are the integration tests). run: cargo test --locked -- --ignored --test-threads 16 + + print-pack-getting-started-output: + runs-on: ${{ matrix.target == 'aarch64-unknown-linux-musl' && 'pub-hk-ubuntu-24.04-arm-medium' || 'ubuntu-24.04' }} + strategy: + matrix: + target: ["aarch64-unknown-linux-musl", "x86_64-unknown-linux-musl"] + guide: ["heroku/java-getting-started", "heroku/gradle-getting-started", "heroku/scala-getting-started"] + fail-fast: false + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: true + - name: Install musl-tools + run: sudo apt-get install -y --no-install-recommends musl-tools + - name: Update Rust toolchain + run: rustup update + - name: Install Rust linux-musl target + run: rustup target add ${{ matrix.target }} + - name: Rust Cache + uses: Swatinem/rust-cache@v2.7.5 + - name: Install Pack CLI + uses: buildpacks/github-actions/setup-pack@v5.7.4 + - name: Pull builder and run images + run: | + docker pull "heroku/builder:24" + docker pull "heroku/heroku:24" + - name: Clone getting started guide + uses: actions/checkout@v4 + with: + repository: ${{ matrix.guide }} + path: tmp/guide + - name: Install libcnb-cargo for `cargo libcnb package` command + run: cargo install libcnb-cargo + - name: Compile buildpack + run: cargo libcnb package --target ${{ matrix.target }} + - name: "PRINT: Getting started guide output" + run: | + set -euo pipefail + + PACK_CMD="pack build my-image --force-color --builder heroku/builder:24 --trust-extra-buildpacks --path tmp/guide --pull-policy never " + case "${{ matrix.guide }}" in + "heroku/java-getting-started") + PACK_CMD+=" --buildpack packaged/${{ matrix.target }}/debug/heroku_jvm " + PACK_CMD+=" --buildpack packaged/${{ matrix.target }}/debug/heroku_java " + PACK_CMD+=" --buildpack packaged/${{ matrix.target }}/debug/heroku_maven " + ;; + "heroku/gradle-getting-started") + PACK_CMD+=" --buildpack packaged/${{ matrix.target }}/debug/heroku_jvm " + PACK_CMD+=" --buildpack packaged/${{ matrix.target }}/debug/heroku_gradle " + ;; + "heroku/scala-getting-started") + PACK_CMD+=" --buildpack packaged/${{ matrix.target }}/debug/heroku_jvm " + PACK_CMD+=" --buildpack packaged/${{ matrix.target }}/debug/heroku_sbt " + PACK_CMD+=" --buildpack packaged/${{ matrix.target }}/debug/heroku_scala " + ;; + *) + echo "Unknown guide: ${{ matrix.guide }}" + exit 1 + ;; + esac + + echo "Running command: $PACK_CMD" + bash -c "$PACK_CMD" + echo "" + echo "With CACHE example" + echo "" + bash -c "$PACK_CMD" diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index be6a26d..d331804 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -50,6 +50,14 @@ This buildpack relies on [heroku/libcnb.rs][libcnb] to compile buildpacks. All [libcnb.rs dependencies][libcnb-deps] will need to be setup prior to building or testing this buildpack. +### Clone + +This project uses submodules, to clone all code run: + +``` +$ git clone --recursive https://github.com/heroku/buildpacks-jvm +``` + ### Building 1. Run `cargo check` to download dependencies and ensure there are no diff --git a/buildpacks/jvm/CHANGELOG.md b/buildpacks/jvm/CHANGELOG.md index 8db9c3c..33a70be 100644 --- a/buildpacks/jvm/CHANGELOG.md +++ b/buildpacks/jvm/CHANGELOG.md @@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - JDK overlays are now properly sourced from the `.jdk-overlay` directory instead of `.jdk_overlay`. ([#763](https://github.com/heroku/buildpacks-jvm/pull/763)) +### Changed + +- Buildpack output changed to a new format. ([#000](https://github.com/heroku/buildpacks-jvm/pull/000)) + ## [6.0.4] - 2024-12-05 ### Added