mirror of
https://github.com/google/alioth.git
synced 2024-10-23 15:00:13 +00:00
2a3905c5e2
Signed-off-by: Changyuan Lyu <changyuanl@google.com>
60 lines
1.9 KiB
YAML
60 lines
1.9 KiB
YAML
name: Rust
|
|
|
|
permissions: read-all
|
|
|
|
on:
|
|
push:
|
|
branches: ["main"]
|
|
pull_request:
|
|
branches: ["main"]
|
|
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
|
|
jobs:
|
|
build_test:
|
|
strategy:
|
|
matrix:
|
|
target:
|
|
- name: x86_64-unknown-linux-gnu
|
|
os: ubuntu-latest
|
|
- name: aarch64-unknown-linux-gnu
|
|
os: ubuntu-latest
|
|
- name: aarch64-apple-darwin
|
|
os: macos-latest
|
|
runs-on: ${{ matrix.target.os }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
|
- name: Get stable rust version
|
|
id: rust-version
|
|
run: echo RUST_VERSION=$(cargo +stable --version | cut -d ' ' -f 2) >> "$GITHUB_OUTPUT"
|
|
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
|
|
with:
|
|
path: |
|
|
~/.cargo/bin/
|
|
~/.cargo/registry/index/
|
|
~/.cargo/registry/cache/
|
|
~/.cargo/git/db/
|
|
~/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu
|
|
target/
|
|
key: ${{ matrix.target.name }}-cargo-${{ steps.rust-version.outputs.RUST_VERSION }}-${{ hashFiles('**/Cargo.lock') }}
|
|
- name: Add target
|
|
run: rustup target add ${{ matrix.target.name }}
|
|
- name: Build
|
|
run: cargo build --verbose --target ${{ matrix.target.name }}
|
|
if: matrix.target.name != 'aarch64-unknown-linux-gnu'
|
|
- name: Format
|
|
run: >
|
|
cargo +nightly --version || (
|
|
rustup toolchain install nightly &&
|
|
rustup component add --toolchain nightly-x86_64-unknown-linux-gnu rustfmt
|
|
) &&
|
|
cargo +nightly fmt --check
|
|
if: matrix.target.name == 'x86_64-unknown-linux-gnu'
|
|
- name: Run tests
|
|
run: cargo test --target ${{ matrix.target.name }}
|
|
if: matrix.target.name != 'aarch64-unknown-linux-gnu'
|
|
- name: Clippy
|
|
run: cargo clippy --target ${{ matrix.target.name }} -- -D warnings
|