name: Rust
on:
push:
branches: [ "main" ]
workflow_dispatch:
inputs:
debug_enabled:
type: boolean
description: Enable debugging
required: false
default: false
env:
CARGO_TERM_COLOR: always
jobs:
build:
name: job ❯ test
runs-on: ubuntu-latest
timeout-minutes: 10
strategy:
fail-fast: true
matrix:
target: [x86_64-unknown-linux-gnu, x86_64-unknown-linux-musl]
steps:
- name: Bootstrap ❯❯ actions/checkout@v4
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Bootstrap ❯❯ Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
targets: ${{ matrix.target }}
components: 'rustfmt'
- name: Bootstrap ❯❯ Debug ❯❯ Show version information (Rust, cargo, GCC)
run: |
gcc --version || true
rustup -V
rustup toolchain list
rustup default
cargo -V
rustc -V
- name: Bootstrap ❯❯ Preinstall & Prepare Environment
env:
TARGET: ${{ matrix.target }}
run: |
echo "PROJECT_NAME=$(sed -n 's/^name = "\(.*\)"/\1/p' Cargo.toml)" >> "$GITHUB_ENV"
echo "PROJECT_VERSION=$(sed -n 's/^version = "\(.*\)"/\1/p' Cargo.toml | head -n1)" >> "$GITHUB_ENV"
if [ "$TARGET" = "x86_64-unknown-linux-musl" ]; then
# install cross-rs
cargo install cross
fi
- name: Bootstrap ❯❯ Restore Rust Cache
uses: Swatinem/rust-cache@v2
- name: Rust ❯❯ Test (basic_usage)
run: |
echo "✨ Testing zlooger..."
cargo run --example basic_usage || true
echo "✨ zlooger tested!"