continuwuity/.forgejo/actions/rust-toolchain/action.yml
Jade Ellis 7a46563f23
All checks were successful
Documentation / Build and Deploy Documentation (pull_request) Successful in 43s
Release Docker Image / define-variables (push) Successful in 1s
Documentation / Build and Deploy Documentation (push) Successful in 32s
Rust Checks / Format (push) Successful in 25s
Rust Checks / Clippy (push) Successful in 3m4s
Rust Checks / Cargo Test (push) Successful in 3m34s
Release Docker Image / build-image (linux/amd64, linux-amd64) (push) Successful in 16m0s
Release Docker Image / build-image (linux/arm64, linux-arm64) (push) Successful in 14m5s
Release Docker Image / merge (push) Successful in 29s
ci: Cache docker image build mounts
2025-05-21 01:48:25 +01:00

53 lines
1.9 KiB
YAML

name: rust-toolchain
description: |
Install a Rust toolchain using rustup.
See https://rust-lang.github.io/rustup/concepts/toolchains.html#toolchain-specification
for more information about toolchains.
inputs:
toolchain:
description: |
Rust toolchain name.
See https://rust-lang.github.io/rustup/concepts/toolchains.html#toolchain-specification
required: false
target:
description: Target triple to install for this toolchain
required: false
components:
description: Space-separated list of components to be additionally installed for a new toolchain
required: false
outputs:
rustc_version:
description: The rustc version installed
value: ${{ steps.rustc-version.outputs.version }}
runs:
using: composite
steps:
- name: Cache rustup toolchains
uses: actions/cache@v3
with:
path: |
~/.rustup
!~/.rustup/tmp
!~/.rustup/downloads
# Requires repo to be cloned if toolchain is not specified
key: ${{ runner.os }}-rustup-${{ inputs.toolchain || hashFiles('**/rust-toolchain.toml') }}
- name: Install Rust toolchain
shell: bash
run: |
if ! command -v rustup &> /dev/null ; then
curl --proto '=https' --tlsv1.2 --retry 10 --retry-connrefused -fsSL "https://sh.rustup.rs" | sh -s -- --default-toolchain none -y
echo "${CARGO_HOME:-$HOME/.cargo}/bin" >> $GITHUB_PATH
fi
- shell: bash
run: |
set -x
${{ inputs.toolchain && format('rustup override set {0}', inputs.toolchain) }}
${{ inputs.target && format('rustup target add {0}', inputs.target) }}
${{ inputs.components && format('rustup component add {0}', inputs.components) }}
cargo --version
rustc --version
- id: rustc-version
shell: bash
run: |
echo "version=$(rustc --version)" >> $GITHUB_OUTPUT