diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b92a6e4..02525d6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,26 +1,55 @@ name: CI -on: - push: - branches: [ "trunk" ] - pull_request: - branches: [ "trunk" ] +on: [push, pull_request] env: CARGO_TERM_COLOR: always jobs: test: + strategy: + matrix: + target: + - x86_64-unknown-linux-gnu + - aarch64-unknown-linux-gnu + - riscv64gc-unknown-linux-gnu + build_std: [false] + include: + - target: riscv32gc-unknown-linux-gnu + build_std: true runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Install Rust - run: rustup update nightly && rustup default nightly - - name: Run Example Binary + run: | + rustup update nightly + rustup default nightly + - name: Install Rust standard library source + if: matrix.build_std + run: rustup component add rust-src + - name: Install cross-compilation tools + uses: taiki-e/setup-cross-toolchain-action@v1 + with: + target: ${{ matrix.target }} + + - name: Build example binary + if: '!matrix.build_std' + run: cargo build --release + - name: Build example binary + if: matrix.build_std + run: cargo build --release -Zbuild-std + + - name: Run example binary + if: '!matrix.build_std' run: (cargo run --release 2>&1 | tee ../run.log) || true working-directory: example - - name: Check Log + - name: Run example binary + if: matrix.build_std + run: (cargo run --release -Zbuild-std 2>&1 | tee ../run.log) || true + working-directory: example + + - name: Check log run: | grep "panicked at 'panic', example/src/main.rs:36:5" run.log grep 'note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace' run.log