mirror of
https://github.com/storytold/storyteller-bevy.git
synced 2026-10-17 00:13:17 +00:00
Low-hanging optimizations for CI pipelines (#75)
This PR attempts to avoid bankrupting the company by running 15 minutes of unit tests on unchanged code or re-downloading `@fortawesome/fontawesome-pro` 5 times for every PR commit.
This commit is contained in:
@@ -1,8 +1,6 @@
|
||||
name: Run formatter, linter and tests
|
||||
name: Run formatter and linter
|
||||
on:
|
||||
merge_group:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
@@ -21,8 +19,8 @@ jobs:
|
||||
- name: Check Rust formatting
|
||||
run: cargo fmt --all -- --check
|
||||
|
||||
lint-and-test:
|
||||
timeout-minutes: 30
|
||||
lint:
|
||||
timeout-minutes: 10
|
||||
strategy:
|
||||
max-parallel: 1
|
||||
runs-on: ubuntu-latest
|
||||
@@ -40,6 +38,10 @@ jobs:
|
||||
- uses: dtolnay/rust-toolchain@1.76
|
||||
with:
|
||||
components: clippy
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 18
|
||||
cache: npm
|
||||
- name: Install Linux dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
@@ -55,5 +57,5 @@ jobs:
|
||||
git remote set-branches origin main
|
||||
git fetch --depth 1 origin main
|
||||
git branch main origin/main
|
||||
- name: Run Nx-configured `lint` and `test` targets
|
||||
run: npx nx affected -t lint test --base=main --head=HEAD
|
||||
- name: Run Nx-configured `lint` targets
|
||||
run: npx nx affected -t lint --base=main --head=HEAD
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
name: Run unit tests
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- production
|
||||
|
||||
env:
|
||||
CARGO_TERM_COLOR: always
|
||||
|
||||
jobs:
|
||||
test:
|
||||
timeout-minutes: 30
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/bin
|
||||
~/.cargo/registry/index/
|
||||
~/.cargp/registry/cache/
|
||||
~/.cargo/git/db/
|
||||
target/
|
||||
key: ${{ runner.os }}-cargo-lint-and-test-${{ hashFiles('**/Cargo.toml') }}
|
||||
- uses: dtolnay/rust-toolchain@1.76
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 18
|
||||
cache: npm
|
||||
- name: Install Linux dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y --no-install-recommends \
|
||||
libasound2-dev \
|
||||
libudev-dev \
|
||||
git
|
||||
- name: Install JS dependencies
|
||||
run: npm ci
|
||||
- name: Ensure unambiguous `production`
|
||||
if: github.ref != 'refs/heads/production'
|
||||
run: |
|
||||
git remote set-branches origin production
|
||||
git fetch --depth 1 origin production
|
||||
git branch production origin/production
|
||||
- name: Run Nx-configured `test` targets
|
||||
run: npx nx affected -t test --base=production --head=HEAD
|
||||
Reference in New Issue
Block a user