Use `mold` for linking in CI tests (#887)

Derived from https://github.com/astral-sh/puffin/pull/875

This gets us a significant speedup.

I would not read the commits individually. I can squash them but they
were used for testing various scenarios.

### Test compile times

Ranges are the lowest and highest I've seen. Huge variability in GitHub
Actions runners.

**Before:**
7m 21s - 8m 22s (cold cache)
110s - 120s (warm cache)

**After:**
6m 15s - 7m 05s (cold cache)
57s - 70s (warm cache)

**Improvement:**
4% - 25% (cold cache)
36% - 52% (warm cache)
This commit is contained in:
Zanie Blue 2024-01-11 12:28:53 -06:00 committed by GitHub
parent 4c047f858f
commit 90edfa8fe7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 3 deletions

View File

@ -2,7 +2,7 @@ name: CI
on: on:
push: push:
branches: [ main ] branches: [main]
pull_request: pull_request:
workflow_dispatch: workflow_dispatch:
@ -45,7 +45,7 @@ jobs:
cargo-test: cargo-test:
strategy: strategy:
matrix: matrix:
os: [ ubuntu-latest ] os: [ubuntu-latest]
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
name: "cargo test | ${{ matrix.os }}" name: "cargo test | ${{ matrix.os }}"
steps: steps:
@ -53,7 +53,7 @@ jobs:
- name: "Install Python" - name: "Install Python"
uses: actions/setup-python@v4 uses: actions/setup-python@v4
with: with:
python-version: | python-version: |
3.7 3.7
3.8 3.8
3.9 3.9
@ -62,6 +62,7 @@ jobs:
3.12 3.12
- name: "Install Rust toolchain" - name: "Install Rust toolchain"
run: rustup show run: rustup show
- uses: rui314/setup-mold@v1
- name: "Install cargo insta" - name: "Install cargo insta"
uses: taiki-e/install-action@v2 uses: taiki-e/install-action@v2
with: with: