-
Notifications
You must be signed in to change notification settings - Fork 478
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Refactor xtask to use tracel-xtask and refactor CI workflow (#2063)
* Migrate to xtask-common crate * Fix example crate name for simple-regression * Refactor CI workflows * Flatten linux workflows * Install grcov and typos from binaries Although xtask-common support auto-installation of these tools via cargo it is a lot faster to install them via the distributed binaries * [CI] Update Rust caches on failure * [CI] Add shell bash to jobs steps * [CI] Try cache all crates * Fix no-std tests not executing * [CI] Add CARGO_INCREMENTAL 0 * Exclude tch and cuda from tests and merge crates and examples steps * Fix some typos found with typos cli * Add Windows and MacOS jobs * Only test no-std with default rust target * Fix syntax in composite action setup-windows * Enable incremental build * Upate cargo alias for xtask * Bump to github action checkout v4 * Revert to tch 0.15 and disable WGPU on windows * Fix color in output * Add Test command * Test long output errorring * Build and test workspace before additional builds and tests * Disable wgpu tests on windows * Remove tests- prefix in CI workflow jobs name * Add Checks command * Rename ci workflow jobs * Execute windows and macos CI tests on rust stable only * Rename integration test files with a test_ prefix * Fix format * Don't auto-correct "arange" with typos * Fix typos in code * Merge unit and integration tests steps * Fix macos tests * Fix coverage step * Name publish-crate workflow * Fix bad cache name for macos * Reorganize commands and get rid of the ci command * Fix dispatch to customized commands for Burn * Update to last version of tracel-xtask * Remove unnecessary shell bash in ci workflow * Update cargo.lock * Fix format * Bump tracel-xtask * Simplify dispatch of base commands using updated macro * Update to last version of tracel-xtask * Adapt legacy run_checks script with new xtask commands * Run xtask in debug for faster compilation time * Ditch build step in ci and enable coverage for stable linux only * Freeze tracel-xtask to specific commit rev * Update cargo.lock * Update Step 6 of CONTRIBUTING guidelines about run-checks script * Remove unneeded CI and CD paragraphgs in CONRIBUTING.md * Change cache version * Fix typos * Use centralized actions and workflows * Update to last version of tracel-xtask * Update CONTRIBUTING file to mention integration tests * Add custom build for thumbv6m-none-eabi * Ignore onnx files for typos check * Fix action and workflow paths in github workflows * Fix custom builds on MacOS * Bump tracel-xtask crate to last version * Update Cargo.lock * Update publish workflow to use reusable workflow in tracel repo * Add --ci flag for build and test commands
- Loading branch information
Showing
44 changed files
with
1,044 additions
and
2,102 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
[alias] | ||
xtask = "run --manifest-path ./xtask/Cargo.toml --" | ||
xtask = "run --target-dir target/xtask --color always --package xtask --bin xtask --" |
This file was deleted.
Oops, something went wrong.
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,247 @@ | ||
name: CI | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
paths: | ||
- 'Cargo.lock' | ||
- '**.rs' | ||
- '**.sh' | ||
- '**.ps1' | ||
- '**.yml' | ||
- '**.toml' | ||
- '!**.md' | ||
- '!LICENSE-APACHE' | ||
- '!LICENSE-MIT' | ||
pull_request: | ||
types: [opened, synchronize] | ||
paths: | ||
- 'Cargo.lock' | ||
- '**.rs' | ||
- '**.sh' | ||
- '**.ps1' | ||
- '**.yml' | ||
- '**.toml' | ||
- '!**.md' | ||
- '!LICENSE-APACHE' | ||
- '!LICENSE-MIT' | ||
|
||
env: | ||
# Note: It is not possible to define env vars in composite actions. | ||
# To work around this issue we use inputs and define all the env vars here. | ||
|
||
# Cargo | ||
CARGO_TERM_COLOR: "always" | ||
|
||
# Dependency versioning | ||
# from wgpu repo: https://github.com/gfx-rs/wgpu/blob/trunk/.github/workflows/ci.yml | ||
|
||
# Sourced from https://vulkan.lunarg.com/sdk/home#linux | ||
VULKAN_SDK_VERSION: "1.3.268" | ||
|
||
# Sourced from https://archive.mesa3d.org/. Bumping this requires | ||
# updating the mesa build in https://github.com/gfx-rs/ci-build and creating a new release. | ||
MESA_VERSION: "23.3.1" | ||
# Corresponds to https://github.com/gfx-rs/ci-build/releases | ||
MESA_CI_BINARY_BUILD: "build18" | ||
|
||
# Sourced from https://www.nuget.org/packages/Microsoft.Direct3D.WARP | ||
WARP_VERSION: "1.0.8" | ||
# Sourced from https://github.com/microsoft/DirectXShaderCompiler/releases | ||
# Must also be changed in shaders.yaml | ||
DXC_RELEASE: "v1.7.2308" | ||
DXC_FILENAME: "dxc_2023_08_14.zip" | ||
|
||
# Mozilla Grcov | ||
GRCOV_LINK: "https://github.com/mozilla/grcov/releases/download" | ||
GRCOV_VERSION: "0.8.19" | ||
|
||
# Typos version | ||
TYPOS_LINK: "https://github.com/crate-ci/typos/releases/download" | ||
TYPOS_VERSION: "1.23.4" | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
code-quality: | ||
runs-on: ubuntu-22.04 | ||
strategy: | ||
matrix: | ||
rust: [stable] | ||
include: | ||
- rust: stable | ||
cache-version: stable | ||
steps: | ||
- name: Setup Rust | ||
uses: tracel-ai/github-actions/setup-rust@v1 | ||
with: | ||
rust-toolchain: ${{ matrix.rust }} | ||
cache-key: ${{ matrix.cache-version }}-linux | ||
# -------------------------------------------------------------------------------- | ||
- name: Audit | ||
run: cargo xtask check audit | ||
# -------------------------------------------------------------------------------- | ||
- name: Format | ||
shell: bash | ||
env: | ||
# work around for colors | ||
# see: https://github.com/rust-lang/rustfmt/issues/3385 | ||
TERM: xterm-256color | ||
run: cargo xtask check format | ||
# -------------------------------------------------------------------------------- | ||
- name: Lint | ||
run: cargo xtask check lint | ||
# -------------------------------------------------------------------------------- | ||
- name: Typos | ||
uses: tracel-ai/github-actions/check-typos@v1 | ||
|
||
documentation: | ||
runs-on: ubuntu-22.04 | ||
strategy: | ||
matrix: | ||
rust: [stable] | ||
include: | ||
- rust: stable | ||
cache-version: stable | ||
steps: | ||
- name: Setup Rust | ||
uses: tracel-ai/github-actions/setup-rust@v1 | ||
with: | ||
rust-toolchain: ${{ matrix.rust }} | ||
cache-key: ${{ matrix.cache-version }}-linux | ||
# -------------------------------------------------------------------------------- | ||
- name: Documentation Build | ||
run: cargo xtask doc build | ||
# -------------------------------------------------------------------------------- | ||
- name: Documentation Tests | ||
run: cargo xtask doc tests | ||
|
||
linux-std-tests: | ||
runs-on: ubuntu-22.04 | ||
strategy: | ||
matrix: | ||
rust: [stable, 1.79.0] | ||
include: | ||
- rust: stable | ||
cache-version: stable | ||
coverage: --enable-coverage | ||
- rust: 1.79.0 | ||
cache-version: 1-79-0 | ||
steps: | ||
- name: Setup Rust | ||
uses: tracel-ai/github-actions/setup-rust@v1 | ||
with: | ||
rust-toolchain: ${{ matrix.rust }} | ||
cache-key: ${{ matrix.cache-version }}-linux | ||
# -------------------------------------------------------------------------------- | ||
- name: Setup Linux runner | ||
uses: tracel-ai/github-actions/setup-linux@v1 | ||
with: | ||
vulkan-sdk-version: ${{ env.VULKAN_SDK_VERSION }} | ||
mesa-version: ${{ env.MESA_VERSION }} | ||
mesa-ci-build-version: ${{ env.MESA_CI_BINARY_BUILD }} | ||
# -------------------------------------------------------------------------------- | ||
- name: Install grcov | ||
if: matrix.rust == 'stable' | ||
shell: bash | ||
run: | | ||
curl -L "$GRCOV_LINK/v$GRCOV_VERSION/grcov-x86_64-unknown-linux-musl.tar.bz2" | | ||
tar xj -C $HOME/.cargo/bin | ||
cargo xtask coverage install | ||
# -------------------------------------------------------------------------------- | ||
- name: Tests | ||
run: cargo xtask ${{ matrix.coverage }} test --ci | ||
# -------------------------------------------------------------------------------- | ||
- name: Generate lcov.info | ||
if: matrix.rust == 'stable' | ||
# /* is to exclude std library code coverage from analysis | ||
run: cargo xtask coverage generate --ignore "/*,xtask/*,examples/*" | ||
# -------------------------------------------------------------------------------- | ||
- name: Codecov upload lcov.info | ||
if: matrix.rust == 'stable' | ||
uses: codecov/codecov-action@v4 | ||
with: | ||
files: lcov.info | ||
token: ${{ secrets.CODECOV_TOKEN }} | ||
|
||
linux-no-std-tests: | ||
runs-on: ubuntu-22.04 | ||
strategy: | ||
matrix: | ||
rust: [stable, 1.79.0] | ||
include: | ||
- rust: stable | ||
cache-version: stable | ||
- rust: 1.79.0 | ||
cache-version: 1-79-0 | ||
steps: | ||
- name: Setup Rust | ||
uses: tracel-ai/github-actions/setup-rust@v1 | ||
with: | ||
rust-toolchain: ${{ matrix.rust }} | ||
cache-key: ${{ matrix.cache-version }}-linux-no-std | ||
# -------------------------------------------------------------------------------- | ||
- name: Setup Linux runner | ||
uses: tracel-ai/github-actions/setup-linux@v1 | ||
with: | ||
vulkan-sdk-version: ${{ env.VULKAN_SDK_VERSION }} | ||
mesa-version: ${{ env.MESA_VERSION }} | ||
mesa-ci-build-version: ${{ env.MESA_CI_BINARY_BUILD }} | ||
# -------------------------------------------------------------------------------- | ||
- name: Crates Build | ||
run: cargo xtask --execution-environment no-std build --ci | ||
# -------------------------------------------------------------------------------- | ||
- name: Crates Tests | ||
run: cargo xtask --execution-environment no-std test --ci | ||
|
||
windows-std-tests: | ||
runs-on: windows-2022 | ||
env: | ||
DISABLE_WGPU: '1' | ||
# Keep the stragegy to be able to easily add new rust versions if required | ||
strategy: | ||
matrix: | ||
rust: [stable] | ||
include: | ||
- rust: stable | ||
cache-version: stable | ||
steps: | ||
- name: Setup Rust | ||
uses: tracel-ai/github-actions/setup-rust@v1 | ||
with: | ||
rust-toolchain: ${{ matrix.rust }} | ||
cache-key: ${{ matrix.cache-version }}-windows | ||
# -------------------------------------------------------------------------------- | ||
- name: Setup Windows runner | ||
if: env.DISABLE_WGPU != '1' | ||
uses: tracel-ai/github-actions/setup-windows@v1 | ||
with: | ||
dxc-release: ${{ env.DXC_RELEASE }} | ||
dxc-filename: ${{ env.DXC_FILENAME }} | ||
mesa-version: ${{ env.MESA_VERSION }} | ||
warp-version: ${{ env.WARP_VERSION }} | ||
# -------------------------------------------------------------------------------- | ||
- name: Tests | ||
run: cargo xtask test --ci | ||
|
||
macos-std-tests: | ||
runs-on: blaze/macos-14 | ||
# Keep the stragegy to be able to easily add new rust versions if required | ||
strategy: | ||
matrix: | ||
rust: [stable] | ||
include: | ||
- rust: stable | ||
cache-version: stable | ||
steps: | ||
- name: Setup Rust | ||
uses: tracel-ai/github-actions/setup-rust@v1 | ||
with: | ||
rust-toolchain: ${{ matrix.rust }} | ||
cache-key: ${{ matrix.cache-version }}-macos | ||
# -------------------------------------------------------------------------------- | ||
- name: Tests | ||
run: cargo xtask test --ci |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.