Skip to content

Updates

Updates #31

Workflow file for this run

name: Rust Build and Test
### https://github.com/harmless-tech/rust-github-actions
on:
push:
branches: [ main ]
paths: [ .github/workflows/build.yml, keys/**, src/**, test/**, build.rs, Cargo.lock, Cargo.toml ]
pull_request:
branches: [ main ]
paths: [ .github/workflows/build.yml, keys/**, src/**, test/**, build.rs, Cargo.lock, Cargo.toml ]
workflow_dispatch:
env:
bin-name: qstract
feature-set: ''
CARGO_TERM_COLOR: always
jobs:
ink-cross:
strategy:
fail-fast: false
matrix:
include:
- target: aarch64-unknown-linux-gnu
can-test: false
- target: aarch64-unknown-linux-musl
can-test: false
- target: armv7-unknown-linux-gnueabihf
can-test: false
- target: armv7-unknown-linux-musleabihf
can-test: false
- target: powerpc64le-unknown-linux-gnu
can-test: false
- target: powerpc64-unknown-linux-gnu
can-test: false
- target: riscv64gc-unknown-linux-gnu
can-test: false
- target: s390x-unknown-linux-gnu
can-test: false
- target: x86_64-unknown-linux-gnu
can-test: true
- target: x86_64-unknown-linux-musl
can-test: true
- target: x86_64-unknown-freebsd
can-test: false
- target: x86_64-unknown-netbsd
can-test: false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.target }}
- name: Build with ink cross
run: |
docker run --rm \
--userns host --user $(id -u):$(id -g) \
-v $HOME/.cargo/registry:/usr/local/cargo/registry \
-v ./:/project \
ghcr.io/cargo-prebuilt/ink-cross:nightly-${{ matrix.target }} \
auditable build --verbose --workspace --locked --target ${{ matrix.target }} ${{ env.feature-set }}
- name: Run tests
if: ${{ matrix.can-test }}
run: |
BIN_LOC="./target/${{ matrix.target }}/debug/${{ env.bin-name }}" ./test/_test.sh
- name: Artifact
uses: actions/upload-artifact@v4
with:
name: target-${{ matrix.target }}
path: |
target/${{ matrix.target }}/debug/${{ env.bin-name }}
apple-darwin:
strategy:
fail-fast: false
matrix:
include:
- target: x86_64-apple-darwin
os: macos-13
can-test: true
- target: aarch64-apple-darwin
os: macos-14
can-test: true
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Update Rust and add target
run: |
rustup toolchain install nightly
rustc +nightly --version
rustup target add ${{ matrix.target }}
rustup component add rust-src --toolchain nightly --target ${{ matrix.target }}
- uses: cargo-prebuilt/cargo-prebuilt-action@v4
with:
pkgs: cargo-auditable
- uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.target }}
- name: Build
run: cargo +nightly auditable build --verbose --workspace --locked --target ${{ matrix.target }} ${{ env.feature-set }}
- name: Run tests
if: ${{ matrix.can-test }}
run: |
BIN_LOC="./target/${{ matrix.target }}/debug/${{ env.bin-name }}" ./test/_test.sh
- name: Artifact
uses: actions/upload-artifact@v4
with:
name: target-${{ matrix.target }}
path: |
target/${{ matrix.target }}/debug/${{ env.bin-name }}
pc-windows-msvc:
strategy:
fail-fast: false
matrix:
include:
- target: x86_64-pc-windows-msvc
can-test: true
- target: aarch64-pc-windows-msvc
can-test: false
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Update Rust and add target
run: |
rustup toolchain install nightly
rustc +nightly --version
rustup target add ${{ matrix.target }}
rustup component add rust-src --toolchain nightly --target ${{ matrix.target }}
- uses: cargo-prebuilt/cargo-prebuilt-action@v4
with:
pkgs: cargo-auditable
- uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.target }}
- name: Build
run: cargo +nightly auditable build --verbose --workspace --locked --target ${{ matrix.target }} ${{ env.feature-set }}
- name: Artifact
uses: actions/upload-artifact@v4
with:
name: target-${{ matrix.target }}
path: |
target/${{ matrix.target }}/debug/${{ env.bin-name }}.exe