6 Commits
v1.4.2 ... v1.4

Author SHA1 Message Date
ac6bb38f31 Merge pull request #15 from actions-rust-lang/fix-problem-matcher 2023-03-18 00:30:54 +01:00
12a4c2d9dc Add new problem matcher that is aware of color codes
The action runner currently fails to strip color codes from the output.
This means that many matchers currectly do not work.

https://github.com/actions/runner/issues/2341
https://github.com/actions/runner/pull/2430

The new matcher is copied from kaj/rsass which is MIT licensed.

3e5d6c0600/.github/workflows/rust-problem-matcher.json
2023-03-18 00:18:20 +01:00
3b557ff24c Update rust.json
The regex for the problem matcher is invalid, since the `-` creates a range. But the range is invalid, since it cannot start with `\s`.
2023-03-18 00:09:26 +01:00
64fef3b541 Merge pull request #13 from actions-rust-lang/double-run 2023-02-21 22:23:42 +01:00
cea2ca57ed Add changelog entry 2023-02-21 21:15:17 +00:00
f010a58728 Always downgrade the registry protocol to supported versions
Not all version support the new sparse protocol. While old versions
ignore the value, 1.66 and other fail due to unstable features.

If such a version is detected, always downgrade to the git protocol.

This fixes running the action twice with different toolchains. Even if
the first install uses something which supports "sparse", the second run
can still downgrade it to "git".

Closes #12
2023-02-21 21:02:41 +00:00
3 changed files with 30 additions and 14 deletions

View File

@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
## [1.4.4] - 2023-03-18
### Fixed
* Use color aware problem matcher.
The problem matcher currently runs against the colored terminal output ([Bug 1](https://github.com/actions/runner/issues/2341), [Bug 2](https://github.com/actions/runner/pull/2430)).
The previous matcher was not aware of ANSII color codes and did not work.
## [1.4.3] - 2023-02-21
### Fixed
* Executing the action twice for different toolchains now no longer fails around unstable features #12.
If multiple toolchains are installed, the "CARGO_REGISTRIES_CRATES_IO_PROTOCOL" can be downgraded to "git" if any of the installed toolchains require it.
## [1.4.2] - 2023-02-15
### Fixed

View File

@ -85,6 +85,9 @@ runs:
if [[ ! -v CARGO_UNSTABLE_SPARSE_REGISTRY ]]; then
echo "CARGO_UNSTABLE_SPARSE_REGISTRY=true" >> $GITHUB_ENV
fi
if [[ ! -v CARGO_REGISTRIES_CRATES_IO_PROTOCOL ]]; then
echo "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" >> $GITHUB_ENV
fi
shell: bash
- name: "Install Rust Problem Matcher"
run: echo "::add-matcher::${{ github.action_path }}/rust.json"
@ -126,17 +129,15 @@ runs:
echo "cachekey=$(echo $DATE$HASH | head -c12)" >> $GITHUB_OUTPUT
shell: bash
# Copied from dtolnay/rust-toolchain and adapted
# https://github.com/dtolnay/rust-toolchain/blob/25dc93b901a87e864900a8aec6c12e9aa794c0c3/action.yml#L100-L108
- name: "Enable cargo sparse registry on stable"
- name: "Downgrade registry access protocol when needed"
run: |
# except on 1.66 and 1.67, on which it is unstable
# Not all 1.68.0-nightly versions support it either
# Not all versions support setting CARGO_REGISTRIES_CRATES_IO_PROTOCOL
# On versions 1.66, 1.67, and 1.68.0-nightly the value "sparse" is still unstable.
# https://github.com/dtolnay/rust-toolchain/pull/69#discussion_r1107268108
if [[ ! -v CARGO_REGISTRIES_CRATES_IO_PROTOCOL ]]; then
if echo "${{steps.versions.outputs.rustc-version}}" | grep --invert --quiet '^rustc \(1\.6[67]\.\|1\.68\.0-nightly\)'; then
echo "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" >> $GITHUB_ENV
fi
# If we detect an incompatible value, set it to "git" which is always supported.
if [[ "${{steps.versions.outputs.rustc-version}}" =~ ^rustc\ (1\.6[67]\.|1\.68\.0-nightly) && "${CARGO_REGISTRIES_CRATES_IO_PROTOCOL}" == "sparse" ]]; then
echo "Downgrade cargo registry protocol to git"
echo "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=git" >> $GITHUB_ENV
fi
shell: bash

View File

@ -16,16 +16,16 @@
"owner": "clippy",
"pattern": [
{
"regexp": "^(warning|warn|error)(\\[(.*)\\])?: (.*)$",
"regexp": "^(?:\\x1b\\[[\\d;]+m)*(warning|warn|error)(?:\\x1b\\[[\\d;]+m)*(\\[(.*)\\])?(?:\\x1b\\[[\\d;]+m)*:(?:\\x1b\\[[\\d;]+m)* ([^\\x1b]*)(?:\\x1b\\[[\\d;]+m)*$",
"severity": 1,
"message": 4,
"code": 3
},
{
"regexp": "^([\\s->=]*(.*):(\\d*):(\\d*)|.*)$",
"file": 2,
"line": 3,
"column": 4
"regexp": "^(?:\\x1b\\[[\\d;]+m)*\\s*(?:\\x1b\\[[\\d;]+m)*\\s*--> (?:\\x1b\\[[\\d;]+m)*(.*):(\\d*):(\\d*)(?:\\x1b\\[[\\d;]+m)*$",
"file": 1,
"line": 2,
"column": 3
}
]
}