Skip to content

Update Procfile CNB to v2.0.1 (#639) #803

Update Procfile CNB to v2.0.1 (#639)

Update Procfile CNB to v2.0.1 (#639) #803

Workflow file for this run

name: CI
on:
push:
branches: ["main"]
pull_request:
permissions:
contents: read
jobs:
shell-lint:
runs-on: ubuntu-22.04
container:
image: koalaman/shellcheck-alpine:v0.9.0
steps:
- run: apk add git
- run: apk add shfmt --repository=http://dl-3.alpinelinux.org/alpine/edge/community
- uses: actions/checkout@v3
- name: shellcheck
run: shfmt -f . | grep -v ^test/ | xargs shellcheck
- name: shfmt
run: shfmt -f . | grep -v ^test/ | grep -v '_shpec.sh$' | xargs shfmt -d
rust-lint:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Update Rust toolchain
run: rustup update
- name: Rust Cache
uses: Swatinem/[email protected]
- name: Clippy
run: cargo clippy --all-targets --locked -- --deny warnings
- name: rustfmt
run: cargo fmt -- --check
rust-unit-test:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Update Rust toolchain
run: rustup update
- name: Rust Cache
uses: Swatinem/[email protected]
- name: Run unit tests
run: cargo test --locked
find-libcnb-buildpacks:
name: Find libcnb buildpacks
runs-on: ubuntu-22.04
outputs:
buildpack_dirs: ${{ steps.find-buildpack-dirs.outputs.buildpack_dirs }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: true
- id: find-buildpack-dirs
name: Find libcnb buildpack directories
run: echo "buildpack_dirs=$(find . -type d -execdir test -e "{}/buildpack.toml" -a -e "{}/Cargo.toml" \; -print | sort | uniq | jq -nRc '[inputs]')" >> $GITHUB_OUTPUT
rust-integration-test:
name: libcnb.rs integration tests (${{ matrix.buildpack-directory }})
runs-on: pub-hk-ubuntu-22.04-large
needs: find-libcnb-buildpacks
strategy:
fail-fast: false
matrix:
buildpack-directory: ${{ fromJson(needs.find-libcnb-buildpacks.outputs.buildpack_dirs) }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install musl-tools
run: sudo apt-get install musl-tools --no-install-recommends
- name: Update Rust toolchain
run: rustup update
- name: Install Rust linux-musl target
run: rustup target add x86_64-unknown-linux-musl
- name: Rust Cache
uses: Swatinem/[email protected]
- name: Install Pack CLI
uses: buildpacks/github-actions/[email protected]
- name: Run integration tests
working-directory: ${{ matrix.buildpack-directory }}
run: cargo test --locked -- --ignored --test-threads 16
shpec:
runs-on: ubuntu-22.04
container:
image: heroku/heroku:${{ matrix.stack-version }}-build
strategy:
matrix:
stack-version:
- '20'
- '22'
buildpack-dir:
- buildpacks/npm
defaults:
run:
shell: bash
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install shpec
run: sh -c "`curl -L https://raw.githubusercontent.com/rylnd/shpec/master/install.sh`"
- name: Shpec unit tests on heroku-${{ matrix.stack-version }}
run: shpec ${{ matrix.buildpack-dir }}/shpec/*_shpec.sh
cutlass-integration-test:
runs-on: ubuntu-22.04
strategy:
matrix:
test-dir:
- test/specs/node-function
- test/specs/node
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Ruby, bundler, and cache
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.0.2
bundler-cache: true
- name: Install musl-tools
run: sudo apt-get install musl-tools --no-install-recommends
- name: Update Rust toolchain
run: rustup update
- name: Install Rust linux-musl target
run: rustup target add x86_64-unknown-linux-musl
- name: Rust Cache
uses: Swatinem/[email protected]
- name: Install libcnb
run: cargo install libcnb-cargo
- name: Install Pack CLI
uses: buildpacks/github-actions/[email protected]
- name: Install yj
uses: buildpacks/github-actions/[email protected]
- name: Run rspec tests against a given directory
run: bundle exec rspec ${{ matrix.test-dir }}