Skip to content

Commit

Permalink
Parameterize nightly toolchain in CI (#5330)
Browse files Browse the repository at this point in the history
# Objective

Rust's nightly builds semi-regularly break us (or our dependencies). This creates churn and angst when we're just trying to get our jobs done.

We do still want nightly builds for a variety of reasons:

* cargo-udeps requires nightly and likely always will.
* Helps us catch rust nightly bugs quickly. We're "good citizens" if we regularly report regressions.
* Lets us prepare for "actual expected breakage" ahead of stable releases so we avoid breaking main users.

## Solution

* This pr parameterizes the nightly toolchain, making it an easy one-liner to pin our builds to a specific nightly, when required.
* Put nightly jobs to check wasm and nightly on their own matrix. I also removed tests on nightly linux, just build check
* alternative to #5329

Co-authored-by: Carter Anderson <mcanders1@gmail.com>
  • Loading branch information
mockersf and cart committed Jul 15, 2022
1 parent 56ee620 commit c8aa047
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 27 deletions.
12 changes: 6 additions & 6 deletions .github/bors.toml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
status = [
"build (stable, windows-latest)",
"build (stable, ubuntu-latest)",
"build (stable, macos-latest)",
"build (nightly, ubuntu-latest)",
"build-wasm (stable, ubuntu-latest)",
"build-wasm (nightly, ubuntu-latest)",
"build (windows-latest)",
"build (ubuntu-latest)",
"build (macos-latest)",
"build-wasm",
"nightly-checks (wasm32-unknown-unknown)",
"nightly-checks (x86_64-unknown-linux-gnu)",
"build-android",
"markdownlint",
"run-examples",
Expand Down
58 changes: 37 additions & 21 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,13 @@ on:

env:
CARGO_TERM_COLOR: always
NIGHTLY_TOOLCHAIN: nightly-2022-07-13

jobs:
build:
strategy:
matrix:
toolchain: [stable, nightly]
os: [windows-latest, ubuntu-latest, macos-latest]
exclude:
- os: macos-latest
toolchain: nightly
- os: windows-latest
toolchain: nightly
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
Expand All @@ -32,11 +27,7 @@ jobs:
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-build-${{ matrix.toolchain }}-${{ hashFiles('**/Cargo.toml') }}
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.toolchain }}
override: true
key: ${{ runner.os }}-cargo-build-stable-${{ hashFiles('**/Cargo.toml') }}
- name: Install alsa and udev
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev
if: runner.os == 'linux'
Expand All @@ -47,6 +38,35 @@ jobs:
CARGO_INCREMENTAL: 0
RUSTFLAGS: "-C debuginfo=0 -D warnings"

nightly-checks:
strategy:
matrix:
target: [wasm32-unknown-unknown, x86_64-unknown-linux-gnu]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ env.NIGHTLY_TOOLCHAIN }}
target: ${{ matrix.target }}
override: true
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ubuntu-latest-cargo-build-stable-${{ matrix.target }}-${{ hashFiles('**/Cargo.toml') }}
- name: Install alsa and udev
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev
- name: Check wasm
uses: actions-rs/cargo@v1
with:
command: check
args: --target ${{ matrix.target }}

ci:
runs-on: ubuntu-latest
steps:
Expand Down Expand Up @@ -87,7 +107,7 @@ jobs:
key: ${{ runner.os }}-cargo-miri-${{ hashFiles('**/Cargo.toml') }}
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly
toolchain: ${{ env.NIGHTLY_TOOLCHAIN }}
components: miri
override: true
- name: Install alsa and udev
Expand Down Expand Up @@ -132,11 +152,7 @@ jobs:
run: cargo run -p ci -- compile

build-wasm:
strategy:
matrix:
toolchain: [stable, nightly]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v3
Expand All @@ -148,17 +164,17 @@ jobs:
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-build-wasm-${{ matrix.toolchain }}-${{ hashFiles('**/Cargo.toml') }}
key: ubuntu-assets-cargo-build-wasm-stable-${{ hashFiles('**/Cargo.toml') }}
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.toolchain }}
toolchain: stable
target: wasm32-unknown-unknown
override: true
- name: Check wasm
uses: actions-rs/cargo@v1
with:
command: check
args: --target wasm32-unknown-unknown --no-default-features --features bevy_winit,x11,hdr,bevy_gltf
args: --target wasm32-unknown-unknown

markdownlint:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -291,7 +307,7 @@ jobs:
key: ${{ runner.os }}-cargo-check-unused-dependencies-${{ hashFiles('**/Cargo.toml') }}
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly
toolchain: ${{ env.NIGHTLY_TOOLCHAIN }}
override: true
- name: Installs cargo-udeps
run: cargo install --force cargo-udeps
Expand Down

0 comments on commit c8aa047

Please sign in to comment.