Compare commits

..

17 Commits
v1.7 ... v1.9

Author SHA1 Message Date
Jonas Bushart
1fbea72663 Merge pull request #40 from actions-rust-lang/prepare-release 2024-06-08 12:49:07 +02:00
Jonas Bushart
46dca5d120 Add changelog entry 2024-06-08 12:40:20 +02:00
Jonas Bushart
1734e14b0b Switch default of cache-on-failure to true 2024-06-08 12:33:50 +02:00
Jonas Bushart
74e1b40e68 Merge pull request #39 from samuelhnrq/main 2024-06-05 20:01:48 +02:00
Samuel Henrique
d60b90debe feat: adds cache-on-failure propagation 2024-05-25 08:26:47 +00:00
Jonas Bushart
b113a30d27 Merge pull request #34 from actions-rust-lang/rel-180 2024-01-14 00:29:32 +01:00
Rob Ede
039765bd18 chore: prepare release 1.8.0 2024-01-13 17:45:49 +00:00
Rob Ede
84e65ce315 Merge pull request #32 from gruebel/add-workspaces 2024-01-13 17:40:39 +00:00
Rob Ede
6f719a240e Merge branch 'main' into add-workspaces 2024-01-13 17:36:40 +00:00
Rob Ede
15d0afaad9 ci: fix cache test 2024-01-13 17:36:31 +00:00
Rob Ede
922cc935eb ci: add cache-workspaces test 2024-01-13 17:25:41 +00:00
Rob Ede
bcda41b18d Merge pull request #33 from fprasx/fprasx/fix-toolchain-overrides 2024-01-13 16:07:27 +00:00
Rob Ede
ba41ca6f71 ci: clearer test names 2024-01-13 16:03:46 +00:00
Rob Ede
aa089182f2 ci: fix conditional 2024-01-13 15:57:48 +00:00
Rob Ede
c6086ae6e5 test: add toolchain file override test 2024-01-13 15:54:38 +00:00
Felix Prasanna
d473183fe9 use rustup override set to select toolchain
Using rustup override set will override a local rust-toolchain.toml file
while rustup default will not.
2024-01-12 17:14:34 -05:00
gruebel
f2e9ed58bd add workspaces input field to support non-root projects 2024-01-12 18:41:01 +01:00
7 changed files with 105 additions and 17 deletions

View File

@@ -7,13 +7,21 @@ on:
jobs:
install:
name: Rust ${{matrix.rust || '(toolchain file)'}} ${{matrix.os}}
name: Rust ${{matrix.rust || '(default)'}} (toolchain-file=${{matrix.write-toolchain-file}}) (${{matrix.os}})
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
max-parallel: 5
matrix:
os:
- ubuntu-latest
- windows-latest
- macos-latest
write-toolchain-file:
- false
- true
rust:
# Test with toolchain file override
# use stable toolchain as default
- null
# Test that the sparse registry check works.
@@ -23,21 +31,17 @@ jobs:
- "nightly"
- "beta"
- "stable"
os:
- ubuntu-latest
- windows-latest
- macos-latest
steps:
- uses: actions/checkout@v4
# Test toolchain file support
- name: Write rust-toolchain.toml
if: matrix.rust == null
if: matrix.write-toolchain-file
shell: bash
run: |
cat <<EOF >>rust-toolchain.toml
[toolchain]
channel = "nightly-2024-01-11"
channel = "nightly-2024-01-10"
components = [ "rustfmt", "rustc-dev" ]
targets = [ "wasm32-unknown-unknown", "thumbv7m-none-eabi" ]
profile = "minimal"
@@ -59,6 +63,20 @@ jobs:
- name: Check ${{'${{steps.toolchain.outputs.rustup-version}}'}}
run: echo '${{steps.toolchain.outputs.rustup-version}}'
- name: Check lack of toolchain input or file results in stable
if: matrix.write-toolchain-file == false && matrix.rust == null
shell: bash
run: |-
rustcv="$(rustc --version)"
[[ "$rustcv" != *"nightly"* && "$rustcv" != *"beta"* ]]
- name: Check toolchain file is being overridden
if: matrix.write-toolchain-file
shell: bash
run: |-
rustcv="$(rustc --version)"
[[ ! ( "$rustcv" == *"nightly"* && "$rustcv" == *"2024-01-10"* ) ]]
- shell: bash
run: rustc --version && cargo --version
@@ -70,3 +88,19 @@ jobs:
- run: cargo add serde_as
- run: cargo clippy
cache:
name: Cache
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: ./
with:
components: clippy
cache: true
cache-workspaces: |-
./test-workspace
- run: cargo clippy --manifest-path=./test-workspace/Cargo.toml

View File

@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
## [1.9.0] - 2024-06-08
* Add extra argument `cache-on-failure` and forward it to `Swatinem/rust-cache`. (#39 by @samuelhnrq)
Set the default the value to true.
This will result in more caching than previously.
This helps when large dependencies are compiled only for testing to fail.
## [1.8.0] - 2024-01-13
* Allow specifying subdirectories for cache.
* Fix toolchain file overriding.
## [1.7.0] - 2024-01-11
* Allow overriding the toolchain file with explicit `toolchain` input. (#26)

View File

@@ -48,14 +48,18 @@ If no `toolchain` value or toolchain file is present, it will default to `stable
First, all items specified in the toolchain file are installed.
Afterward, the `components` and `target` specified via inputs are installed in addition to the items from the toolchain file.
| Name | Description | Default |
| ------------ | -------------------------------------------------------------------------------------- | ------------- |
| `toolchain` | Rustup toolchain specifier e.g. `stable`, `nightly`, `1.42.0`. | stable |
| `target` | Additional target support to install e.g. `wasm32-unknown-unknown` | |
| `components` | Comma-separated string of additional components to install e.g. `clippy, rustfmt` | |
| `cache` | Automatically configure Rust cache (using `Swatinem/rust-cache`) | true |
| `matcher` | Enable problem matcher to surface build messages and formatting issues | true |
| `rustflags` | Set the value of `RUSTFLAGS` (set to empty string to avoid overwriting existing flags) | "-D warnings" |
| Name | Description | Default |
|--------------------|----------------------------------------------------------------------------------------|---------------|
| `toolchain` | Rustup toolchain specifier e.g. `stable`, `nightly`, `1.42.0`. | stable |
| `target` | Additional target support to install e.g. `wasm32-unknown-unknown` | |
| `components` | Comma-separated string of additional components to install e.g. `clippy, rustfmt` | |
| `cache` | Automatically configure Rust cache (using [`Swatinem/rust-cache`]) | true |
| `cache-workspaces` | Propagates the value to [`Swatinem/rust-cache`] | |
| `cache-on-failure` | Propagates the value to [`Swatinem/rust-cache`] | true |
| `matcher` | Enable problem matcher to surface build messages and formatting issues | true |
| `rustflags` | Set the value of `RUSTFLAGS` (set to empty string to avoid overwriting existing flags) | "-D warnings" |
[`Swatinem/rust-cache`]: https://github.com/Swatinem/rust-cache
### RUSTFLAGS

View File

@@ -25,6 +25,13 @@ inputs:
description: "Automatically configure Rust cache"
required: false
default: "true"
cache-workspaces:
description: "Paths to multiple Cargo workspaces and their target directories, separated by newlines."
required: false
cache-on-failure:
description: "Also cache on workflow failures"
default: "true"
required: false
matcher:
description: "Enable the Rust problem matcher"
required: false
@@ -138,7 +145,7 @@ runs:
toolchain=stable
fi
rustup toolchain install $toolchain${{steps.flags.outputs.targets}}${{steps.flags.outputs.components}} --profile minimal${{steps.flags.outputs.downgrade}} --no-self-update
rustup default $toolchain
rustup override set $toolchain
fi
- id: versions
@@ -171,3 +178,6 @@ runs:
- name: Setup Rust Caching
if: inputs.cache == 'true'
uses: Swatinem/rust-cache@v2
with:
workspaces: ${{inputs.cache-workspaces}}
cache-on-failure: ${{inputs.cache-on-failure}}

16
test-workspace/Cargo.lock generated Normal file
View File

@@ -0,0 +1,16 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "ci"
version = "0.1.0"
dependencies = [
"serde_as",
]
[[package]]
name = "serde_as"
version = "0.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ee4afe4c5c3b69699c4267ae42b838e911466d7ca0005046adc93ac95bb16dd"

View File

@@ -0,0 +1,9 @@
[package]
name = "ci"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
serde_as = "0.0.1"

View File

@@ -0,0 +1,3 @@
fn main() {
println!("Hello, world!");
}