Merge pull request #577 from KisaragiEffective/renovate/reviewdog-act… #1211
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Rust | |
on: | |
push: | |
branches: [ "master" ] | |
pull_request: | |
branches: [ "master" ] | |
env: | |
CARGO_TERM_COLOR: always | |
CI_RUST_CACHE_VERSION: v1 | |
permissions: | |
contents: read | |
jobs: | |
build: | |
strategy: | |
matrix: | |
os: [ubuntu-24.04, windows-2022] | |
rustc_channel: [stable, nightly] | |
codegen: [default] | |
include: | |
# fix stable version across possible matrix | |
- rustc_channel: stable | |
# renovate: rustc-stable | |
rustc_version: '1.82.0' | |
# fix nightly version across possible matrix | |
- rustc_channel: nightly | |
# renovate: rustc-nightly | |
rustc_version: '2024-06-12' | |
# try cranelift if we're on nightly and build for Linux machines | |
- os: ubuntu-24.04 | |
rustc_channel: nightly | |
# renovate: rustc-nightly | |
rustc_version: '2024-06-12' | |
codegen: cranelift | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: dump context | |
run: | | |
echo '${{ toJSON(matrix) }}' | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- name: Install compiler ${{ matrix.rustc_channel }} ( ${{ matrix.rustc_version }} ) | |
run: | | |
if [[ "${{ matrix.rustc_channel }}" == nightly ]]; then | |
rustup install nightly-${{ matrix.rustc_version }} | |
rustup component add clippy --toolchain nightly-${{ matrix.rustc_version }} | |
rustup override set nightly-${{ matrix.rustc_version }} | |
else | |
rustup install ${{ matrix.rustc_version }} | |
rustup component add clippy --toolchain ${{ matrix.rustc_version }} | |
rustup override set ${{ matrix.rustc_version }} | |
fi | |
shell: bash | |
- name: Install cranelift if necessary | |
run: | | |
rustup component add rustc-codegen-cranelift-preview --toolchain nightly-${{ matrix.rustc_version }} | |
shell: bash | |
if: ${{ matrix.codegen == 'cranelift' }} | |
- name: Setup codegen unstable flag | |
run: | | |
printf 'CODEGEN_SELECTION=-Zcodegen-backend=cranelift' >> "$GITHUB_ENV" | |
if: ${{ matrix.codegen == 'cranelift' }} | |
- name: Build RUSTFLAGS | |
run: | | |
printf 'RUSTFLAGS=${{ env.CODEGEN_SELECTION }}' >> "$GITHUB_ENV" | |
shell: bash | |
- name: Rust Cache | |
uses: Swatinem/rust-cache@v2.7.3 | |
with: | |
prefix-key: ${{ matrix.os }}-${{ matrix.rustc_version }}-${{ env.CI_RUST_CACHE_VERSION }}-${{ hashFiles('**/Cargo.lock') }} | |
# See rust-wasm.yml for CI details about those package | |
- name: Build package | |
run: cargo build --workspace --exclude origlang-interop --exclude origlang-interop-frontend-webserver --verbose | |
- name: Lint with clippy | |
run: cargo clippy --workspace --exclude origlang-interop --exclude origlang-interop-frontend-webserver --verbose | |
- name: Run tests | |
run: cargo test --workspace --exclude origlang-interop --exclude origlang-interop-frontend-webserver --verbose | |
env: | |
RUST_BACKTRACE: 1 | |
RUST_LOG: debug | |
- name: Upload coverage reports to Codecov | |
uses: codecov/codecov-action@v4.5.0 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
- name: Run compile test | |
run: cargo run -p origlang-testsuite | |
env: | |
RUST_BACKTRACE: 1 | |
RUST_LOG: debug |