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:
Danny McGee
2024-03-05 18:43:51 -05:00
committed by GitHub
parent 9aaf15287a
commit 183fab1d73
4 changed files with 55 additions and 13 deletions
+9 -7
View File
@@ -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
+46
View File
@@ -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