Merge pull request #165 from FenrirWolf/unsafe_blocks_in_unsafe_fn #397
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: CI | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
workflow_dispatch: | |
jobs: | |
lint: | |
strategy: | |
matrix: | |
toolchain: | |
# Run against a "known good" nightly. Rustc version is 1 day behind the toolchain date | |
- nightly-2024-02-18 | |
# Check for breakage on latest nightly | |
- nightly | |
# But if latest nightly fails, allow the workflow to continue | |
continue-on-error: ${{ matrix.toolchain == 'nightly' }} | |
runs-on: ubuntu-latest | |
container: devkitpro/devkitarm | |
steps: | |
- name: Checkout branch | |
uses: actions/checkout@v2 | |
- uses: rust3ds/test-runner/setup@v1 | |
with: | |
toolchain: ${{ matrix.toolchain }} | |
# https://github.com/actions/runner/issues/504 | |
# Removing the matchers won't keep the job from failing if there are errors, | |
# but will at least declutter pull request annotations (especially for warnings). | |
- name: Hide duplicate annotations from nightly | |
if: ${{ matrix.toolchain == 'nightly' }} | |
run: | | |
echo "::remove-matcher owner=clippy::" | |
echo "::remove-matcher owner=rustfmt::" | |
- name: Check formatting | |
run: cargo fmt --all --verbose -- --check | |
- name: Cargo check ctru-sys (without tests) | |
run: cargo 3ds clippy --package ctru-sys --color=always --verbose | |
- name: Cargo check ctru-rs (including tests) | |
run: cargo 3ds clippy --package ctru-rs --color=always --verbose --all-targets | |
test: | |
strategy: | |
matrix: | |
toolchain: | |
- nightly-2024-02-18 | |
- nightly | |
continue-on-error: ${{ matrix.toolchain == 'nightly' }} | |
runs-on: ubuntu-latest | |
container: devkitpro/devkitarm | |
steps: | |
- name: Checkout branch | |
uses: actions/checkout@v2 | |
- uses: rust3ds/test-runner/setup@v1 | |
with: | |
toolchain: ${{ matrix.toolchain }} | |
- name: Hide duplicated warnings from lint job | |
run: echo "::remove-matcher owner=clippy::" | |
# This needs to be done separately from running the tests to ensure the | |
# lib tests' .3dsx is built before the test is run (for romfs). We don't | |
# really have a good way to build the 3dsx in between the build + test, | |
# unless cargo-3ds actually runs them as separate commands. See | |
# https://github.com/rust3ds/cargo-3ds/issues/44 for more details | |
- name: Build lib and integration tests | |
run: cargo 3ds test --no-run --tests | |
- name: Run lib and integration tests | |
uses: rust3ds/test-runner/run-tests@v1 | |
with: | |
args: --tests | |
- name: Build and run doc tests | |
uses: rust3ds/test-runner/run-tests@v1 | |
with: | |
args: --doc | |
- name: Upload citra logs and capture videos | |
uses: actions/upload-artifact@v3 | |
if: success() || failure() # always run unless the workflow was cancelled | |
with: | |
name: citra-logs-${{ matrix.toolchain }} | |
path: | | |
target/armv6k-nintendo-3ds/debug/deps/*.txt | |
target/armv6k-nintendo-3ds/debug/deps/*.webm |