Skip to content

Update Inventory - Node.js #954

Update Inventory - Node.js

Update Inventory - Node.js #954

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@v4
- 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@v4
- name: Update Rust toolchain
run: rustup update
- name: Rust Cache
uses: Swatinem/rust-cache@v2.7.0
- 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@v4
- name: Update Rust toolchain
run: rustup update
- name: Rust Cache
uses: Swatinem/rust-cache@v2.7.0
- name: Run unit tests
run: cargo test --locked
find-libcnb-buildpacks:
name: Find libcnb buildpacks
runs-on: ubuntu-22.04
outputs:
libcnb-buildpacks: ${{ steps.find-buildpack-dirs.outputs.buildpacks }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- id: find-buildpack-dirs
name: Find libcnb buildpack directories
run: |
echo "buildpacks=$( \
find . -type d -execdir test -e "{}/buildpack.toml" -a -e "{}/Cargo.toml" \; -print \
| sort \
| uniq \
| jq -nRc '[inputs] | map({ dir: ., name: split("/") | last } | [. + { builder_tag: 20 }, . + { builder_tag: 22 }]) | flatten' \
)" >> $GITHUB_OUTPUT
rust-integration-test:
name: Test (${{ matrix.builder_tag }}, ${{ matrix.name }})
runs-on: pub-hk-ubuntu-22.04-large
needs: find-libcnb-buildpacks
strategy:
fail-fast: false
matrix:
include: ${{ fromJson(needs.find-libcnb-buildpacks.outputs.libcnb-buildpacks) }}
steps:
- name: Checkout
uses: actions/checkout@v4
- 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/rust-cache@v2.7.0
- name: Install Pack CLI
uses: buildpacks/github-actions/setup-pack@v5.4.0
- name: Run integration tests
working-directory: ${{ matrix.dir }}
env:
INTEGRATION_TEST_CNB_BUILDER: heroku/builder:${{ matrix.builder_tag }}
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@v4
- 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