name: CI on: push: branches: [v/2.x.x] pull_request: branches: [v/2.x.x] schedule: - cron: "24 05 * * *" # Daily at 10:24 PM PDT, 9:24 PM PST. workflow_dispatch: # TODO: generate nightly releases # inputs: # should_bench: # description: "Should Benchmark? (`true`)" # required: true # default: "false" jobs: pre_job: runs-on: ubuntu-latest outputs: should_skip: ${{ steps.skip_check.outputs.should_skip }} steps: - id: skip_check uses: fkirc/skip-duplicate-actions@v5.3.1 with: cancel_others: "true" test: name: Check & Test needs: pre_job if: ${{ needs.pre_job.outputs.should_skip != 'true' }} runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v4 with: node-version: 20 - name: Install Node dependencies run: npm ci --prefix riven/srcgen - name: Run codegen run: node riven/srcgen - name: Install Rust nightly toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly override: true components: rustfmt - uses: actions-rs/cargo@v1 with: toolchain: stable command: check args: --all-targets --features __proxy - uses: actions-rs/cargo@v1 with: toolchain: stable command: check args: --all-targets --features tracing,__proxy - uses: actions-rs/cargo@v1 with: command: check args: --all-targets --features nightly,tracing,__proxy - uses: actions-rs/cargo@v1 with: command: build args: --all-targets --features nightly,deny-unknown,__proxy - uses: actions-rs/cargo@v1 with: command: test args: --no-fail-fast --features nightly,deny-unknown,__proxy env: RUST_BACKTRACE: 1 RUSTLOG: riven=trace RGAPI_KEY: ${{ secrets.RGAPI_KEY }} - name: Install `wasm-pack` run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh - working-directory: riven run: wasm-pack test --node -- --features nightly,deny-unknown env: RGAPI_KEY: ${{ secrets.RGAPI_KEY }} lints: name: Lints needs: pre_job if: ${{ needs.pre_job.outputs.should_skip != 'true' }} runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v4 - name: Install nightly toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly override: true components: rustfmt, clippy - name: Run cargo fmt uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check - name: Run cargo clippy uses: actions-rs/cargo@v1 with: command: clippy args: -- -D warnings