Compare commits

...

10 Commits

Author SHA1 Message Date
Taiki Endo
203bfd72b0 Release 2.28.3 2024-03-07 01:59:19 +09:00
Taiki Endo
b00c5f12b5 Update cargo-hack@latest to 0.6.21 2024-03-07 01:55:34 +09:00
Taiki Endo
9d24ab5687 Release 2.28.2 2024-03-06 22:34:35 +09:00
Taiki Endo
0d70155cef Update cargo-deny@latest to 0.14.16 2024-03-06 21:15:38 +09:00
Taiki Endo
ab6c6ac273 Update parse-changelog@latest to 0.6.5 2024-03-06 03:21:15 +09:00
Taiki Endo
dabb9c1ee5 Release 2.28.1 2024-03-04 21:56:03 +09:00
Taiki Endo
67d50f4c7a Update wasm-bindgen@latest to 0.2.92 2024-03-04 21:16:01 +09:00
Taiki Endo
ccb87e050c tidy: Fix error on Windows 2024-03-03 05:40:28 +09:00
Taiki Endo
598eb1aa13 tidy: Fix typos 2024-03-03 02:43:01 +09:00
Taiki Endo
fcdd50a1bc tidy: Use yq via venv
Closes #301
2024-03-03 02:40:50 +09:00
7 changed files with 163 additions and 34 deletions

1
.gitignore vendored
View File

@@ -1,5 +1,6 @@
target
Cargo.lock
.venv
tmp
# For platform and editor specific settings, it is recommended to add to

View File

@@ -10,6 +10,20 @@ Note: In this file, do not use the hard wrap in the middle of a sentence for com
## [Unreleased]
## [2.28.3] - 2024-03-06
- Update `cargo-hack@latest` to 0.6.21.
## [2.28.2] - 2024-03-06
- Update `cargo-deny@latest` to 0.14.16.
- Update `parse-changelog@latest` to 0.6.5.
## [2.28.1] - 2024-03-04
- Update `wasm-bindgen@latest` to 0.2.92.
## [2.28.0] - 2024-03-02
- Support `wasm-bindgen`. ([#383](https://github.com/taiki-e/install-action/pull/383), thanks @Ekleog)
@@ -1837,7 +1851,10 @@ Note: This release is considered a breaking change because installing on version
Initial release
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.28.0...HEAD
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.28.3...HEAD
[2.28.3]: https://github.com/taiki-e/install-action/compare/v2.28.2...v2.28.3
[2.28.2]: https://github.com/taiki-e/install-action/compare/v2.28.1...v2.28.2
[2.28.1]: https://github.com/taiki-e/install-action/compare/v2.28.0...v2.28.1
[2.28.0]: https://github.com/taiki-e/install-action/compare/v2.27.15...v2.28.0
[2.27.15]: https://github.com/taiki-e/install-action/compare/v2.27.14...v2.27.15
[2.27.14]: https://github.com/taiki-e/install-action/compare/v2.27.13...v2.27.14

View File

@@ -19,10 +19,24 @@
}
},
"latest": {
"version": "0.14.15"
"version": "0.14.16"
},
"0.14": {
"version": "0.14.15"
"version": "0.14.16"
},
"0.14.16": {
"x86_64_linux_musl": {
"checksum": "7b09aafdc42eeae5d67e523469a69e5b5dc65edb87d87fa68b3c014c9a27d780"
},
"x86_64_macos": {
"checksum": "fa2efa5be935d684ba62c64950041eda7ed81af6b49608c6c8bad3c6f140eb2d"
},
"x86_64_windows": {
"checksum": "7d977cb7f37064bda9711adb5d6574f07634aa50b3eaf612ab134b07727e2e6d"
},
"aarch64_macos": {
"checksum": "285cf6fb30341652e07135fd2fdb083455211527985c8cb2f889804a4068cd3e"
}
},
"0.14.15": {
"x86_64_linux_musl": {

View File

@@ -2,10 +2,36 @@
"rust_crate": "cargo-hack",
"template": null,
"latest": {
"version": "0.6.20"
"version": "0.6.21"
},
"0.6": {
"version": "0.6.20"
"version": "0.6.21"
},
"0.6.21": {
"x86_64_linux_musl": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.21/cargo-hack-x86_64-unknown-linux-musl.tar.gz",
"checksum": "4d1cc13c72ac620df9265506ad8dd03f84117c8c653586be3d73590e013fe9a8"
},
"x86_64_macos": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.21/cargo-hack-x86_64-apple-darwin.tar.gz",
"checksum": "675e3a63d6e741a53363e71b29f7babd1f685cfa14168b8914116cdb176f38e0"
},
"x86_64_windows": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.21/cargo-hack-x86_64-pc-windows-msvc.tar.gz",
"checksum": "f57ea407c7a2a11c6e31102087b8689c44ecdd8f8eb7c76fe98002cc7efd2f84"
},
"aarch64_linux_musl": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.21/cargo-hack-aarch64-unknown-linux-musl.tar.gz",
"checksum": "52159eb4d6b03441d6a696dc52dd3c46ff06b4983df8524c5d908bcd53c9425d"
},
"aarch64_macos": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.21/cargo-hack-aarch64-apple-darwin.tar.gz",
"checksum": "e37a2eaa79cb04d8868d8c23f45af296433d60b75181bed0be49650cfd7c0c6e"
},
"aarch64_windows": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.21/cargo-hack-aarch64-pc-windows-msvc.tar.gz",
"checksum": "faa6323ebb18e54038b19c61d138793c9b1e31dd64e337cbc64cc283faa62a3c"
}
},
"0.6.20": {
"x86_64_linux_musl": {

View File

@@ -2,10 +2,36 @@
"rust_crate": "parse-changelog",
"template": null,
"latest": {
"version": "0.6.4"
"version": "0.6.5"
},
"0.6": {
"version": "0.6.4"
"version": "0.6.5"
},
"0.6.5": {
"x86_64_linux_musl": {
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.5/parse-changelog-x86_64-unknown-linux-musl.tar.gz",
"checksum": "73ab820f50a26cce5548e1c6d3e4e97fa008bbad80c4bc844fcc5e89a2b540ca"
},
"x86_64_macos": {
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.5/parse-changelog-x86_64-apple-darwin.tar.gz",
"checksum": "aa12781c8d57865d18217286fdf10c1eb772636e7e86b20425335858d76aad03"
},
"x86_64_windows": {
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.5/parse-changelog-x86_64-pc-windows-msvc.tar.gz",
"checksum": "98d13ef997a8da38d5b419d516c48da302042f054d3a89238cfab0f1ba6971ba"
},
"aarch64_linux_musl": {
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.5/parse-changelog-aarch64-unknown-linux-musl.tar.gz",
"checksum": "33f67cfed6d4ed71da5e873026723a70d79ca99a53bcb1ab2121b33c591ad45d"
},
"aarch64_macos": {
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.5/parse-changelog-aarch64-apple-darwin.tar.gz",
"checksum": "77dffac8a8f562172ba0b19a998665a02c0a60f876eea047dc6126e5118378b9"
},
"aarch64_windows": {
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.5/parse-changelog-aarch64-pc-windows-msvc.tar.gz",
"checksum": "e4f39aef6fe8e233cdac88e5029d785f48805a65ec31c511fbf3200e26ded97e"
}
},
"0.6.4": {
"x86_64_linux_musl": {

View File

@@ -43,10 +43,27 @@
}
},
"latest": {
"version": "0.2.91"
"version": "0.2.92"
},
"0.2": {
"version": "0.2.91"
"version": "0.2.92"
},
"0.2.92": {
"x86_64_linux_musl": {
"checksum": "c6e43a3bf0be5231e0b72ea702f73b3f4f47c309037e8a332c5c2e41800ca934"
},
"x86_64_macos": {
"checksum": "1091b40f5e2cc67d10deb3b1260a92b97cef8851f2588708c2d4b6bef9444880"
},
"x86_64_windows": {
"checksum": "a23d556b35bc4d17222e324b205a1b66b1cdad630f62a1190ba6c42cf5ed2af7"
},
"aarch64_linux_gnu": {
"checksum": "ae6070b6f6a86160f9be02ee9c913820814825f6e8aff45b155a129a36acc0cb"
},
"aarch64_macos": {
"checksum": "9ac857faddd4368e5ad3f41b74bbc4c2d32c3726d008bd5760fc52c7c6843e48"
}
},
"0.2.91": {
"x86_64_linux_musl": {

View File

@@ -15,7 +15,8 @@ trap 's=$?; echo >&2 "$0: error on line "${LINENO}": ${BASH_COMMAND}"; exit ${s}
# - shfmt
# - shellcheck
# - npm
# - jq and yq
# - jq
# - python
# - rustup (if Rust code exists)
# - clang-format (if C/C++ code exists)
#
@@ -53,6 +54,11 @@ error() {
fi
should_fail=1
}
venv() {
local bin="$1"
shift
"${venv_bin}/${bin}${exe}" "$@"
}
if [[ $# -gt 0 ]]; then
cat <<EOF
@@ -204,32 +210,54 @@ if [[ -n "$(git ls-files '*.yml' '*.js' '*.json')" ]]; then
# Check GitHub workflows.
if [[ -d .github/workflows ]]; then
info "checking GitHub workflows"
if type -P jq &>/dev/null && type -P yq &>/dev/null; then
for workflow in .github/workflows/*.yml; do
# The top-level permissions must be weak as they are referenced by all jobs.
permissions=$(yq -c '.permissions' "${workflow}")
case "${permissions}" in
'{"contents":"read"}' | '{"contents":"none"}') ;;
null) error "${workflow}: top level permissions not found; it must be 'contents: read' or weaker permissions" ;;
*) error "${workflow}: only 'contents: read' and weaker permissions are allowed at top level; if you want to use stronger permissions, please set job-level permissions" ;;
esac
# Make sure the 'needs' section is not out of date.
if grep -q '# tidy:needs' "${workflow}" && ! grep -Eq '# *needs: \[' "${workflow}"; then
# shellcheck disable=SC2207
jobs_actual=($(yq '.jobs' "${workflow}" | jq -r 'keys_unsorted[]'))
unset 'jobs_actual[${#jobs_actual[@]}-1]'
# shellcheck disable=SC2207
jobs_expected=($(yq -r '.jobs."ci-success".needs[]' "${workflow}"))
if [[ "${jobs_actual[*]}" != "${jobs_expected[*]+"${jobs_expected[*]}"}" ]]; then
printf -v jobs '%s, ' "${jobs_actual[@]}"
sed -i "s/needs: \[.*\] # tidy:needs/needs: [${jobs%, }] # tidy:needs/" "${workflow}"
check_diff "${workflow}"
error "${workflow}: please update 'needs' section in 'ci-success' job"
fi
if type -P jq &>/dev/null; then
if type -P python3 &>/dev/null || type -P python &>/dev/null; then
py_suffix=''
if type -P python3 &>/dev/null; then
py_suffix='3'
fi
done
exe=''
venv_bin='.venv/bin'
case "$(uname -s)" in
MINGW* | MSYS* | CYGWIN* | Windows_NT)
exe='.exe'
venv_bin='.venv/Scripts'
;;
esac
if [[ ! -d .venv ]]; then
"python${py_suffix}" -m venv .venv
fi
if [[ ! -e "${venv_bin}/yq${exe}" ]]; then
venv "pip${py_suffix}" install yq
fi
for workflow in .github/workflows/*.yml; do
# The top-level permissions must be weak as they are referenced by all jobs.
permissions=$(venv yq -c '.permissions' "${workflow}")
case "${permissions}" in
'{"contents":"read"}' | '{"contents":"none"}') ;;
null) error "${workflow}: top level permissions not found; it must be 'contents: read' or weaker permissions" ;;
*) error "${workflow}: only 'contents: read' and weaker permissions are allowed at top level; if you want to use stronger permissions, please set job-level permissions" ;;
esac
# Make sure the 'needs' section is not out of date.
if grep -q '# tidy:needs' "${workflow}" && ! grep -Eq '# *needs: \[' "${workflow}"; then
# shellcheck disable=SC2207
jobs_actual=($(venv yq '.jobs' "${workflow}" | jq -r 'keys_unsorted[]'))
unset 'jobs_actual[${#jobs_actual[@]}-1]'
# shellcheck disable=SC2207
jobs_expected=($(venv yq -r '.jobs."ci-success".needs[]' "${workflow}"))
if [[ "${jobs_actual[*]}" != "${jobs_expected[*]+"${jobs_expected[*]}"}" ]]; then
printf -v jobs '%s, ' "${jobs_actual[@]}"
sed -i "s/needs: \[.*\] # tidy:needs/needs: [${jobs%, }] # tidy:needs/" "${workflow}"
check_diff "${workflow}"
error "${workflow}: please update 'needs' section in 'ci-success' job"
fi
fi
done
else
warn "'python3' is not installed; skipped GitHub workflow check"
fi
else
warn "'jq' or 'yq' is not installed; skipped GitHub workflow check"
warn "'jq' is not installed; skipped GitHub workflow check"
fi
fi
fi