Skip to content

Commit

Permalink
better rust install
Browse files Browse the repository at this point in the history
  • Loading branch information
ForsakenHarmony committed Jun 6, 2023
1 parent 5612a39 commit 9d08fd4
Show file tree
Hide file tree
Showing 7 changed files with 127 additions and 23 deletions.
42 changes: 42 additions & 0 deletions .github/actions/setup-rust/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: 'Turbo Rust Setup'
description: 'Sets up the Rust toolchain for CI'
inputs:
targets:
description: 'Comma-separated list of target triples to install for this toolchain'
required: false
components:
description: 'Comma-separated list of components to be additionally installed'
required: false
skip-install:
description: 'Sets environment variables without installing the rust toolchain'
required: false

runs:
using: 'composite'
steps:
- name: 'Get toolchain version from file'
id: file
shell: bash
run: echo "toolchain=$(cat ./rust-toolchain)" >> $GITHUB_OUTPUT

- name: 'Set rust default environment'
shell: bash
run: |
echo "RUST_TOOLCHAIN=${{ steps.file.outputs.toolchain }}" >> $GITHUB_ENV
echo "CARGO_INCREMENTAL=0" >> $GITHUB_ENV
echo "CARGO_TERM_COLOR=always" >> $GITHUB_ENV
echo "RUST_BACKTRACE=short" >> $GITHUB_ENV
# Enable faster sparse index
echo "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" >> $GITHUB_ENV
- name: 'Setup Rust toolchain'
uses: dtolnay/rust-toolchain@master
if: ${{ !inputs.skip-install }}
with:
toolchain: ${{ steps.file.outputs.toolchain }}
targets: ${{ inputs.targets }}
components: ${{ inputs.components }}

- name: 'Add cargo problem matchers'
shell: bash
run: echo "::add-matcher::${{ github.action_path }}/matchers.json"
44 changes: 44 additions & 0 deletions .github/actions/setup-rust/matchers.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{
"problemMatcher": [
{
"owner": "cargo-common",
"pattern": [
{
"regexp": "^(warning|warn|error)(?:\\[(\\S*)\\])?: (.*)$",
"severity": 1,
"code": 2,
"message": 3
},
{
"regexp": "^(?:[\\s->=]*(.*):(\\d*):(\\d*)|.*)$",
"file": 1,
"line": 2,
"column": 3
}
]
},
{
"owner": "cargo-test",
"pattern": [
{
"regexp": "^.*panicked\\s+at\\s+'(.*)',\\s+(.*):(\\d+):(\\d+)$",
"message": 1,
"file": 2,
"line": 3,
"column": 4
}
]
},
{
"owner": "rustfmt",
"pattern": [
{
"regexp": "^(Diff in (\\S+)) at line (\\d+):",
"message": 1,
"file": 2,
"line": 3
}
]
}
]
}
35 changes: 21 additions & 14 deletions .github/workflows/build_and_deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ on:
env:
NAPI_CLI_VERSION: 2.14.7
TURBO_VERSION: 1.9.6
RUST_TOOLCHAIN: nightly-2023-03-09
PNPM_VERSION: 7.24.3
NODE_MAINTENANCE_VERSION: 16
NODE_LTS_VERSION: 18
Expand Down Expand Up @@ -198,14 +197,11 @@ jobs:
node-version: ${{ env.NODE_LTS_VERSION }}
check-latest: true

- name: Install
uses: actions-rs/toolchain@v1
if: ${{ !matrix.settings.docker }}
- name: Install Rust
uses: ./.github/actions/setup-rust
with:
profile: minimal
override: true
toolchain: ${{ env.RUST_TOOLCHAIN }}
target: ${{ matrix.settings.target }}
targets: ${{ matrix.settings.target }}
skip-install: ${{ !!matrix.settings.docker }}

- name: Cache cargo registry
uses: actions/cache@v3
Expand Down Expand Up @@ -234,7 +230,21 @@ jobs:
if: ${{ matrix.settings.docker }}
with:
image: ${{ matrix.settings.docker }}
options: -e RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} -e NAPI_CLI_VERSION=${{ env.NAPI_CLI_VERSION }} -e TURBO_VERSION=${{ env.TURBO_VERSION }} -e TURBO_TEAM=vercel -e TURBO_TOKEN=${{ secrets.TURBO_TOKEN }} -e TURBO_REMOTE_ONLY=true -v ${{ env.HOME }}/.cargo/git:/root/.cargo/git -v ${{ env.HOME }}/.cargo/registry:/root/.cargo/registry -v ${{ github.workspace }}:/build -w /build
options: >-
-e RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
-e CARGO_INCREMENTAL=${{ env.CARGO_INCREMENTAL }}
-e CARGO_TERM_COLOR=${{ env.CARGO_TERM_COLOR }}
-e RUST_BACKTRACE=${{ env.RUST_BACKTRACE }}
-e CARGO_REGISTRIES_CRATES_IO_PROTOCOL=${{ env.CARGO_REGISTRIES_CRATES_IO_PROTOCOL }}
-e NAPI_CLI_VERSION=${{ env.NAPI_CLI_VERSION }}
-e TURBO_VERSION=${{ env.TURBO_VERSION }}
-e TURBO_TEAM=vercel
-e TURBO_TOKEN=${{ secrets.TURBO_TOKEN }}
-e TURBO_REMOTE_ONLY=true
-v ${{ env.HOME }}/.cargo/git:/root/.cargo/git
-v ${{ env.HOME }}/.cargo/registry:/root/.cargo/registry
-v ${{ github.workspace }}:/build
-w /build
run: ${{ matrix.settings.build }}

- name: 'Build'
Expand Down Expand Up @@ -269,12 +279,9 @@ jobs:
check-latest: true

- name: Install Rust
uses: actions-rs/toolchain@v1
uses: ./.github/actions/setup-rust
with:
profile: minimal
toolchain: ${{ env.RUST_TOOLCHAIN }}
override: true
target: wasm32-unknown-unknown
targets: wasm32-unknown-unknown

- run: npm i -g turbo@${{ env.TURBO_VERSION }} pnpm@${PNPM_VERSION}

Expand Down
1 change: 0 additions & 1 deletion .github/workflows/build_and_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ on:
env:
NAPI_CLI_VERSION: 2.14.7
TURBO_VERSION: 1.9.6
RUST_TOOLCHAIN: nightly-2023-03-09
PNPM_VERSION: 7.24.3
NODE_MAINTENANCE_VERSION: 16
NODE_LTS_VERSION: 18
Expand Down
7 changes: 2 additions & 5 deletions .github/workflows/build_reusable.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ on:
env:
NAPI_CLI_VERSION: 2.14.7
TURBO_VERSION: 1.9.6
RUST_TOOLCHAIN: nightly-2023-03-09
PNPM_VERSION: 7.24.3
NODE_MAINTENANCE_VERSION: 16
NODE_LTS_VERSION: 18
Expand All @@ -54,11 +53,9 @@ jobs:
- run: node -v
- run: pwd

- name: Install
uses: actions-rs/toolchain@v1
- name: Install Rust
uses: ./.github/actions/setup-rust
with:
profile: minimal
toolchain: ${{ env.RUST_TOOLCHAIN }}
components: rustfmt, clippy

- name: Install nextest
Expand Down
20 changes: 18 additions & 2 deletions .github/workflows/pull_request_stats.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ name: Generate Pull Request Stats
env:
NAPI_CLI_VERSION: 2.14.7
TURBO_VERSION: 1.9.6
RUST_TOOLCHAIN: nightly-2023-03-09
PNPM_VERSION: 7.24.3

jobs:
Expand Down Expand Up @@ -59,12 +58,29 @@ jobs:
turbo-${{ github.job }}-${{ github.ref_name }}-${{ steps.get-week.outputs.WEEK }}-
turbo-${{ github.job }}-canary-${{ steps.get-week.outputs.WEEK }}-
# Sets all the rust related environment variables
- name: Set Rust Environment
uses: ./.github/actions/setup-rust
with:
skip-install: true

- name: Build in docker
uses: addnab/docker-run-action@v3
if: ${{ steps.docs-change.outputs.DOCS_CHANGE == 'nope' }}
with:
image: ghcr.io/napi-rs/napi-rs/nodejs-rust:stable-2022-10-24-x64
options: -e RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} -e NAPI_CLI_VERSION=${{ env.NAPI_CLI_VERSION }} -e TURBO_VERSION=${{ env.TURBO_VERSION }} -v ${{ env.HOME }}/.cargo/git:/root/.cargo/git -v ${{ env.HOME }}/.cargo/registry:/root/.cargo/registry -v ${{ github.workspace }}:/build -w /build
options: >-
-e RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
-e CARGO_INCREMENTAL=${{ env.CARGO_INCREMENTAL }}
-e CARGO_TERM_COLOR=${{ env.CARGO_TERM_COLOR }}
-e RUST_BACKTRACE=${{ env.RUST_BACKTRACE }}
-e CARGO_REGISTRIES_CRATES_IO_PROTOCOL=${{ env.CARGO_REGISTRIES_CRATES_IO_PROTOCOL }}
-e NAPI_CLI_VERSION=${{ env.NAPI_CLI_VERSION }}
-e TURBO_VERSION=${{ env.TURBO_VERSION }}
-v ${{ env.HOME }}/.cargo/git:/root/.cargo/git
-v ${{ env.HOME }}/.cargo/registry:/root/.cargo/registry
-v ${{ github.workspace }}:/build
-w /build
run: |
set -e &&
rustup toolchain install "${RUST_TOOLCHAIN}" &&
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/trigger_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ name: Trigger Release
env:
NAPI_CLI_VERSION: 2.14.7
TURBO_VERSION: 1.9.6
RUST_TOOLCHAIN: nightly-2023-03-09
PNPM_VERSION: 7.24.3
NODE_MAINTENANCE_VERSION: 16
NODE_LTS_VERSION: 18
Expand Down

0 comments on commit 9d08fd4

Please sign in to comment.