Compare commits

...

25 Commits

Author SHA1 Message Date
Taiki Endo
f11f1002f9 Release 2.6.2 2023-03-14 18:09:14 +09:00
Taiki Endo
2bb480a517 Update changelog 2023-03-14 18:08:57 +09:00
Taiki Endo
99f013d5f8 Update cargo-binstall@latest to 0.21.3 2023-03-14 18:07:03 +09:00
Taiki Endo
5eaf5ab4ba Release 2.6.1 2023-03-14 11:45:29 +09:00
Taiki Endo
03352a8b6a Update cargo-nextest@latest to 0.9.50 2023-03-14 11:45:00 +09:00
Taiki Endo
af4171e2c6 Release 2.6.0 2023-03-14 00:58:53 +09:00
Taiki Endo
3d7b60cc55 Remove outdated line from changelog 2023-03-14 00:58:38 +09:00
Taiki Endo
bb9815bf9d Update dprint@latest to 0.35.3 2023-03-14 00:50:35 +09:00
Taiki Endo
f0a8f08e0c Update cargo-binstall@latest to 0.21.2 2023-03-14 00:50:35 +09:00
Taiki Endo
23d49b97dc Update dprint@latest to 0.35.0 2023-03-12 02:19:48 +09:00
Taiki Endo
e7a47b23f5 Automatically cancel outdated CI runs on PR 2023-03-12 00:18:04 +09:00
Taiki Endo
13917065c4 Release 2.5.7 2023-03-11 12:06:49 +09:00
Taiki Endo
3a95a5da72 Update protoc@latest to 3.22.2 2023-03-11 12:03:04 +09:00
Taiki Endo
dca3b37006 Release 2.5.6 2023-03-10 12:14:10 +09:00
Taiki Endo
045dd4076c tidy: Improve performance of spellcheck 2023-03-10 00:50:01 +09:00
Taiki Endo
0ffbddd290 tidy: Check GitHub workflow permissions 2023-03-10 00:50:01 +09:00
Taiki Endo
0c2d9a651a Update wasmtime@latest to 6.0.1 2023-03-09 13:42:18 +09:00
Taiki Endo
bfecd3c66b Release 2.5.5 2023-03-08 11:45:13 +09:00
Taiki Endo
f1a94ab9f4 Update protoc@latest to 3.22.1 2023-03-08 11:44:25 +09:00
Taiki Endo
2e796d41df Update mdbook@latest to 0.4.28 2023-03-05 13:05:00 +09:00
Taiki Endo
ad40afb0c1 Release 2.5.4 2023-03-01 02:29:25 +09:00
Taiki Endo
83dc00c495 Update cargo-llvm-cov@latest to 0.5.11 2023-03-01 02:28:53 +09:00
Taiki Endo
f2466a4319 Update cargo-hack@latest to 0.5.28 2023-03-01 02:28:53 +09:00
Taiki Endo
29410ef0ac Release 2.5.3 2023-02-28 23:28:29 +09:00
Taiki Endo
e8c60492cd Update cargo-no-dev-deps@latest to 0.2.2 2023-02-28 23:28:10 +09:00
14 changed files with 325 additions and 53 deletions

View File

@@ -26,6 +26,10 @@ defaults:
run:
shell: bash
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
jobs:
tidy:
uses: taiki-e/workflows/.github/workflows/tidy.yml@main
@@ -160,7 +164,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 60
permissions:
contents: write # TODO test
contents: write
pull-requests: write
steps:
- uses: actions/checkout@v3

View File

@@ -1,8 +1,7 @@
name: Release
permissions:
# TODO: once `releases: write` is supported, use it instead.
contents: write
contents: read
on:
push:
@@ -18,6 +17,8 @@ jobs:
if: github.repository_owner == 'taiki-e'
runs-on: ubuntu-latest
timeout-minutes: 60
permissions:
contents: write
steps:
- uses: actions/checkout@v3
with:

View File

@@ -10,6 +10,44 @@ Note: In this file, do not use the hard wrap in the middle of a sentence for com
## [Unreleased]
## [2.6.2] - 2023-03-14
- Update `cargo-binstall@latest` to 0.21.3. This fixes spurious error when accessing crates.io.
## [2.6.1] - 2023-03-14
- Update `cargo-nextest@latest` to 0.9.50.
## [2.6.0] - 2023-03-13
- Update `dprint@latest` to 0.35.3.
- Update `cargo-binstall@latest` to 0.21.2.
## [2.5.7] - 2023-03-11
- Update `protoc@latest` to 3.22.2.
## [2.5.6] - 2023-03-10
- Update `wasmtime@latest` to 6.0.1.
## [2.5.5] - 2023-03-08
- Update `protoc@latest` to 3.22.1.
- Update `mdbook@latest` to 0.4.28.
## [2.5.4] - 2023-02-28
- Update `cargo-llvm-cov@latest` to 0.5.11.
- Update `cargo-hack@latest` to 0.5.28.
## [2.5.3] - 2023-02-28
- Update `cargo-no-dev-deps@latest` to 0.2.2.
## [2.5.2] - 2023-02-27
- Update `cargo-tarpaulin@latest` to 0.25.1.
@@ -645,7 +683,15 @@ Note: This release is considered a breaking change because installing on version
Initial release
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.5.2...HEAD
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.6.2...HEAD
[2.6.2]: https://github.com/taiki-e/install-action/compare/v2.6.1...v2.6.2
[2.6.1]: https://github.com/taiki-e/install-action/compare/v2.6.0...v2.6.1
[2.6.0]: https://github.com/taiki-e/install-action/compare/v2.5.7...v2.6.0
[2.5.7]: https://github.com/taiki-e/install-action/compare/v2.5.6...v2.5.7
[2.5.6]: https://github.com/taiki-e/install-action/compare/v2.5.5...v2.5.6
[2.5.5]: https://github.com/taiki-e/install-action/compare/v2.5.4...v2.5.5
[2.5.4]: https://github.com/taiki-e/install-action/compare/v2.5.3...v2.5.4
[2.5.3]: https://github.com/taiki-e/install-action/compare/v2.5.2...v2.5.3
[2.5.2]: https://github.com/taiki-e/install-action/compare/v2.5.1...v2.5.2
[2.5.1]: https://github.com/taiki-e/install-action/compare/v2.5.0...v2.5.1
[2.5.0]: https://github.com/taiki-e/install-action/compare/v2.4.4...v2.5.0

View File

@@ -15,6 +15,7 @@ for manifest in manifests/*.json; do
git stash pop
new_version=$(jq -r '.latest.version' "${manifest}")
if [[ "${old_version}" != "${new_version}" ]]; then
# TODO: If there is a line about updating the same tool in the "Unreleased" section, replace it.
msg="Update \`${name}@latest\` to ${new_version}"
sed -i "s/^## \\[Unreleased\\]/## [Unreleased]\\n\\n- ${msg}./" CHANGELOG.md
git add "${manifest}" CHANGELOG.md

View File

@@ -20,26 +20,26 @@
}
},
"latest": {
"version": "0.20.1"
"version": "0.21.3"
},
"0.20.1": {
"0.21.3": {
"x86_64_linux_musl": {
"checksum": "4729eea4277f0cfb72dd983984ef7b3938f0af5f0e256ca6e6b90c6177decbb2"
"checksum": "d7a790ac52c9e88d6d52850cd9692db249b6528caed9ea3bda45878043c95550"
},
"x86_64_macos": {
"checksum": "8b057687f4e367bd51c2feb7f9473d2fe50fa54273ec9ae61e4e0238044f4761"
"checksum": "98a615028e344e0461fcb12f68f5e6381922215a337ea2511aa343546ebffc19"
},
"x86_64_windows": {
"checksum": "467b0abcabe9c0456f721d108c90b53ea050d121f7c9ae8b23a048d0f55bad16"
"checksum": "b4c1c5a5fff2c713b6f189698064ff85744990f3ed9ab402af1d2b305f859233"
},
"aarch64_linux_musl": {
"checksum": "8f7b6f899de74110bf7426ca9d579d4981c67a13ada64907e7095a0cd1b3f116"
"checksum": "1fc4bcba137534362a40618d9cf9f69777b3e6f5aa9dbcdd09ded6ae5e36c72f"
},
"aarch64_macos": {
"checksum": "05a1cb0a1c779263f0173e351cc5e6aab0dfc49a7c1fa5152422c4e9d16b13c0"
"checksum": "5dd1ca2b9c0d93e960d0fedcc51a7b217e4683a88afcf4f6e1ec636c3480b013"
},
"aarch64_windows": {
"checksum": "39e011c1e13b0f510c8c729de4bc4c93984f88c4d30cfa975e9672320ac7bd8a"
"checksum": "a70bb9ff8360bd7128870739675aff5b78710e4bb93e96d9577bb6e961828d69"
}
}
}

View File

@@ -1,10 +1,36 @@
{
"template": null,
"latest": {
"version": "0.5.27"
"version": "0.5.28"
},
"0.5": {
"version": "0.5.27"
"version": "0.5.28"
},
"0.5.28": {
"x86_64_linux_musl": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.5.28/cargo-hack-x86_64-unknown-linux-musl.tar.gz",
"checksum": "87fb6dbb3e8272ec912f85b80366d0c4784fbcf0fe4e5981bf442efaf29dfe48"
},
"x86_64_macos": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.5.28/cargo-hack-x86_64-apple-darwin.tar.gz",
"checksum": "e926dbb2921544835c5e38cd4e3ac3ef5be4b4ab752528f45d805b652df11ee4"
},
"x86_64_windows": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.5.28/cargo-hack-x86_64-pc-windows-msvc.zip",
"checksum": "fb3df062d00fa8b7efa42e7a87ff997bd74fab2d83f1a476532b991b86065052"
},
"aarch64_linux_musl": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.5.28/cargo-hack-aarch64-unknown-linux-musl.tar.gz",
"checksum": "788308e4504a2676d97847fcc3993f47e8c93c4b43b46b8566b7b18cef01093f"
},
"aarch64_macos": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.5.28/cargo-hack-aarch64-apple-darwin.tar.gz",
"checksum": "47c3390818b5f434a4697aeff0f71f4f69b7e7c2df946b74cce45e2bb0fc8dfd"
},
"aarch64_windows": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.5.28/cargo-hack-aarch64-pc-windows-msvc.tar.gz",
"checksum": "c38da73a61a3600aed98d4ee00bce0c64bca4b4e2200112f55011872d420ead5"
}
},
"0.5.27": {
"x86_64_linux_musl": {

View File

@@ -17,10 +17,27 @@
}
},
"latest": {
"version": "0.5.10"
"version": "0.5.11"
},
"0.5": {
"version": "0.5.10"
"version": "0.5.11"
},
"0.5.11": {
"x86_64_linux_musl": {
"checksum": "3bd355e29b8e29d0b42f0c95ec487cd8e00ffa419ba65b83968740a641a46c1e"
},
"x86_64_macos": {
"checksum": "fe0e54836a367697a1b475440af2e7438e56caf6e548b88faa88edc221a515f7"
},
"x86_64_windows": {
"checksum": "528202a08b47ca579722db1949da2362a7f03fe0ea84a45d6679dc73d33603e9"
},
"aarch64_linux_musl": {
"checksum": "479f51fac713151f73ee0ab5d7cb1155646cde17903dfd7c526cd51253e99a4c"
},
"aarch64_macos": {
"checksum": "276d8fa70299ec9ae014cab905cdbd614d6bddfa6abcc414492091585dd55ab5"
}
},
"0.5.10": {
"x86_64_linux_musl": {

View File

@@ -17,10 +17,27 @@
}
},
"latest": {
"version": "0.9.49"
"version": "0.9.50"
},
"0.9": {
"version": "0.9.49"
"version": "0.9.50"
},
"0.9.50": {
"x86_64_linux_gnu": {
"checksum": "4586cfb628f70f6493d9f861b0c71dbe66622128e935ca3c922010bd460673ba"
},
"x86_64_linux_musl": {
"checksum": "c8b766b6bc28018b8a2c0597b97dd8183fe5a81ddd51fbcc1e9892147887eca3"
},
"x86_64_macos": {
"checksum": "77405db34f1191cc6979b3e291e7aaf587a40ee231cbccbe1885fd89e31ee577"
},
"x86_64_windows": {
"checksum": "6e8a2f4deeb4ade48f4424a65db13bd5122dec73d59a4eeac51c13eb997e1bdf"
},
"aarch64_linux_gnu": {
"checksum": "ebb3198673a199518548af5f8c1a5be7e15a85e9ca5c3978caeb7e0cd09f2969"
}
},
"0.9.49": {
"x86_64_linux_gnu": {

View File

@@ -20,10 +20,30 @@
}
},
"latest": {
"version": "0.2.1"
"version": "0.2.2"
},
"0.2": {
"version": "0.2.1"
"version": "0.2.2"
},
"0.2.2": {
"x86_64_linux_musl": {
"checksum": "06871d1243c12568ec1df16d1fe663413b86ac4b9993f208e8b683a9d6fb2c95"
},
"x86_64_macos": {
"checksum": "cd0570a4f415b30d31f48b12c8ccc1f3d197c9b552177a6402519cbcadde178b"
},
"x86_64_windows": {
"checksum": "88cd59cb5d1983778ade830346ab9901d1843ec9a3b098191f465cf31a9e6c47"
},
"aarch64_linux_musl": {
"checksum": "c9abe175390970139bf2afbc0fabab414c6b9549dee4216514513ce03643a8b7"
},
"aarch64_macos": {
"checksum": "10514a7ef5bfc29e6bfe2ffbb7130f80f30b7a2d63faadd2f5bddb36ec66d922"
},
"aarch64_windows": {
"checksum": "daa55434f81cc7711bef1f0f938540647bcde18458f429a0d03ccde617ff7144"
}
},
"0.2.1": {
"x86_64_linux_musl": {

56
manifests/dprint.json generated
View File

@@ -20,7 +20,61 @@
}
},
"latest": {
"version": "0.34.5"
"version": "0.35.3"
},
"0.35": {
"version": "0.35.3"
},
"0.35.3": {
"x86_64_linux_musl": {
"checksum": "05c109b7174c76345d04903fb6e16548de6ae684b24fc3849dccaa9e940fe5f0"
},
"x86_64_macos": {
"checksum": "1a80a4156e86c3d3d6ad4725bc0638a2456363bff4216d1cfd52cae899544cc1"
},
"x86_64_windows": {
"checksum": "720bdac6fbd322908d9b8d3615ae72d8c79ac4c557f43a6ce7980b7e190d6f4d"
},
"aarch64_linux_gnu": {
"checksum": "d285f1f0a6688c446049dce02ca612794ea4ad0bcbc865d8aa6cad59e843576d"
},
"aarch64_macos": {
"checksum": "49f814ef2899c3684564a3fa46c17453850c3105aff1f3a88ff3babaadc054bd"
}
},
"0.35.1": {
"x86_64_linux_musl": {
"checksum": "0e472818121e092a41c36cfcedee1021f8e4133465d97b85572448b35e322d6b"
},
"x86_64_macos": {
"checksum": "f8e19f55f37dc43cc9394ccf5ef2968f525e11d68f5cd8025653c3c20caeb6f6"
},
"x86_64_windows": {
"checksum": "023561f7af69f27a0185a58d6a5aecf5d402430bfc865db95d80b83f364ab7ec"
},
"aarch64_linux_gnu": {
"checksum": "9c584fd4a55e6d8ae5edc5cf26bf87388eee2634f98af5f4653e3136ebbc619f"
},
"aarch64_macos": {
"checksum": "4b597e335aaaeebb62df1a1cb395fe10a53d0877e3fcbb872cb67e033b92a6a8"
}
},
"0.35.0": {
"x86_64_linux_musl": {
"checksum": "e5bf6ea8fb9a9b236c8b03415a33e524e6721414a94786853be84e8d6a17351a"
},
"x86_64_macos": {
"checksum": "8b42979146ee9b9f064ba1fe6062fe33f5d9e776ff2e96710747fe7dd9a727e7"
},
"x86_64_windows": {
"checksum": "454e10f765a5e5d3c8de29f0ddc5f74f33f9127d70fc8d7a41cd0c7b1bbd14ee"
},
"aarch64_linux_gnu": {
"checksum": "1fcba163e11d34bbca766385612e593b4c69ff23826ae18c8720dd09e05b23ac"
},
"aarch64_macos": {
"checksum": "28bef4e5b980e78b311bb8d25ee0c6f807d6d40736782438682c6308b2be9010"
}
},
"0.34": {
"version": "0.34.5"

18
manifests/mdbook.json generated
View File

@@ -17,10 +17,24 @@
}
},
"latest": {
"version": "0.4.27"
"version": "0.4.28"
},
"0.4": {
"version": "0.4.27"
"version": "0.4.28"
},
"0.4.28": {
"x86_64_linux_musl": {
"checksum": "84e3a4982c19e19b1d058af30b8835097109f520cb6c2e9e03413a896c9787aa"
},
"x86_64_macos": {
"checksum": "46605497fac2a379a02fa7287c0e4601a0cdfa2f913a4f1a06d820d91c0c310e"
},
"x86_64_windows": {
"checksum": "996bc212502e51da1d69090134d13cf51ff21e478be9b7e2aeb1d330c7865e35"
},
"aarch64_linux_musl": {
"checksum": "86b01509773e4011a9372de2932ceb0fdd52063153c7a673f63eeacf16c8426b"
}
},
"0.4.27": {
"x86_64_linux_musl": {

50
manifests/protoc.json generated
View File

@@ -1,13 +1,57 @@
{
"template": null,
"latest": {
"version": "3.22.0"
"version": "3.22.2"
},
"3": {
"version": "3.22.0"
"version": "3.22.2"
},
"3.22": {
"version": "3.22.0"
"version": "3.22.2"
},
"3.22.2": {
"x86_64_linux_gnu": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.2/protoc-22.2-linux-x86_64.zip",
"checksum": "15f281b36897e0ffbbe3a02f687ff9108c7a0f98bb653fb433e4bd62e698abe7"
},
"x86_64_macos": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.2/protoc-22.2-osx-x86_64.zip",
"checksum": "8bb75680c376190d960ef1d073618c1103960f70dc4fafa7bde872029562aec1"
},
"x86_64_windows": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.2/protoc-22.2-win64.zip",
"checksum": "6c2bba387b8a3d2d254eddb68376217314de8d6e9b3a43d3cd2e69c054457638"
},
"aarch64_linux_gnu": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.2/protoc-22.2-linux-aarch_64.zip",
"checksum": "aa2efbb2d481b7ad3c2428e0aa4dd6d813e4538e6c0a1cd4d921ac998187e07e"
},
"aarch64_macos": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.2/protoc-22.2-osx-aarch_64.zip",
"checksum": "a196fd39acd312688b58e81266fd88e9f7799967c5439738c10345a29049261d"
}
},
"3.22.1": {
"x86_64_linux_gnu": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.1/protoc-22.1-linux-x86_64.zip",
"checksum": "3c830b09192a8c40c599856eb184c89ee5029d7dab9df8ec6d3d6741dcb94b93"
},
"x86_64_macos": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.1/protoc-22.1-osx-x86_64.zip",
"checksum": "3cc8d30d8bffc63bb2b8b0aea0d6a126acb4f69d4c720c142f7de6b9f4f562c6"
},
"x86_64_windows": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.1/protoc-22.1-win64.zip",
"checksum": "359a390f6124c067026e212995e402d2e6fcd525d07e3b69d1d81cb06b5690f2"
},
"aarch64_linux_gnu": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.1/protoc-22.1-linux-aarch_64.zip",
"checksum": "204e23069dc59bda1df5d66425c12373be39d71946fa378c3d7af44abbd651e9"
},
"aarch64_macos": {
"url": "https://github.com/protocolbuffers/protobuf/releases/download/v22.1/protoc-22.1-osx-aarch_64.zip",
"checksum": "213e82e423baf44bad1eef99cf3e21d52ce1ac2942e3bbd25a63b1f737cf6ec6"
}
},
"3.22.0": {
"x86_64_linux_gnu": {

View File

@@ -22,13 +22,30 @@
}
},
"latest": {
"version": "6.0.0"
"version": "6.0.1"
},
"6": {
"version": "6.0.0"
"version": "6.0.1"
},
"6.0": {
"version": "6.0.0"
"version": "6.0.1"
},
"6.0.1": {
"x86_64_linux_gnu": {
"checksum": "9fdc5f4cd679d77c42f6333793cd66ecca45347e4cbbeaf06cb0300f27ac5119"
},
"x86_64_macos": {
"checksum": "b9a3fff59995da204649123872126f08d4719c339be58a22f59768087e87c4e5"
},
"x86_64_windows": {
"checksum": "366b6a598165c3e20b99ba32f1aad1c6373f1f52104ce2e5decafc9e1cba73ec"
},
"aarch64_linux_gnu": {
"checksum": "dc6e69b1a90e2a35ea3d89284e3a1898df8d6dc4ea55c6fec3ae7e35b752a0fc"
},
"aarch64_macos": {
"checksum": "00e738f78448ae41f99f7c2c648277ef56a725198e33486191f2c0772bcd7ae1"
}
},
"6.0.0": {
"x86_64_linux_gnu": {

View File

@@ -14,7 +14,7 @@ trap 's=$?; echo >&2 "$0: Error on line "${LINENO}": ${BASH_COMMAND}"; exit ${s}
# - shfmt
# - shellcheck
# - npm
# - jq and yq (if this repository uses bors)
# - jq and yq
# - rustup (if Rust code exists)
# - clang-format (if C/C++ code exists)
#
@@ -95,19 +95,32 @@ if [[ -n "$(git ls-files '*.yml')$(git ls-files '*.js')$(git ls-files '*.json')"
else
warn "'npm' is not installed"
fi
if [[ -e .github/workflows/ci.yml ]] && grep -q '# tidy:needs' .github/workflows/ci.yml && ! grep -Eq '# *needs: \[' .github/workflows/ci.yml; then
# Check GitHub workflows.
if [[ -d .github/workflows ]]; then
if type -P jq &>/dev/null && type -P yq &>/dev/null; then
# shellcheck disable=SC2207
jobs_actual=($(yq '.jobs' .github/workflows/ci.yml | jq -r 'keys_unsorted[]'))
unset 'jobs_actual[${#jobs_actual[@]}-1]'
# shellcheck disable=SC2207
jobs_expected=($(yq -r '.jobs."ci-success".needs[]' .github/workflows/ci.yml))
if [[ "${jobs_actual[*]}" != "${jobs_expected[*]+"${jobs_expected[*]}"}" ]]; then
printf -v jobs '%s, ' "${jobs_actual[@]}"
sed -i "s/needs: \[.*\] # tidy:needs/needs: [${jobs%, }] # tidy:needs/" .github/workflows/ci.yml
check_diff .github/workflows/ci.yml
warn "please update 'needs' section in 'ci-success' job"
fi
for workflow in .github/workflows/*.yml; do
# The top-level permissions must be weak as they are referenced by all jobs.
permissions=$(yq '.permissions' "${workflow}" | jq -c)
case "${permissions}" in
'{"contents":"read"}' | '{"contents":"none"}' | '{}') ;;
null) warn "${workflow}: top level permissions not found; it must be 'contents: read' or weaker permissions" ;;
*) warn "${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}"
warn "${workflow}: please update 'needs' section in 'ci-success' job"
fi
fi
done
else
warn "'jq' or 'yq' is not installed"
fi
@@ -157,30 +170,28 @@ if [[ -f .cspell.json ]]; then
dependencies+=$(jq <<<"${metadata}" ".packages[] | select(.id == ${id})" | jq -r '.dependencies[].name')
done
done
words=''
# shellcheck disable=SC2001
for word in $(sed <<<"${dependencies}" 's/[0-9_-]/\n/g' | LC_ALL=C sort -f -u | (grep -E '.{4,}' || true)); do
# Skip if the word is contained in other dictionaries.
if ! npx cspell trace "${word}" 2>/dev/null | (grep -v -E '/(project-dictionary|rust-dependencies)\.txt' || true) | grep -Eq "^${word} \* [0-9A-Za-z_-]+\* "; then
words+=$'\n'
words+="${word}"
fi
done
dependencies=$(sed <<<"${dependencies}" 's/[0-9_-]/\n/g' | LC_ALL=C sort -f -u)
config_old=$(<.cspell.json)
config_new=$(grep <<<"${config_old}" -v ' *//' | jq 'del(.dictionaries[] | select(index("organization-dictionary") | not))' | jq 'del(.dictionaryDefinitions[] | select(.name == "organization-dictionary" | not))')
echo "${config_new}" >.cspell.json
words=$(npx <<<"${dependencies}" cspell stdin --no-progress --no-summary --words-only --unique || true)
echo "${config_old}" >.cspell.json
fi
cat >.github/.cspell/rust-dependencies.txt <<EOF
// This file is @generated by $(basename "$0").
// It is not intended for manual editing.
EOF
if [[ -n "${words:-}" ]]; then
echo "${words}" >>.github/.cspell/rust-dependencies.txt
echo $'\n'"${words}" >>.github/.cspell/rust-dependencies.txt
fi
check_diff .github/.cspell/rust-dependencies.txt
if ! grep -Eq "^\.github/\.cspell/rust-dependencies.txt linguist-generated" .gitattributes; then
echo "warning: you may want to mark .github/.cspell/rust-dependencies.txt linguist-generated"
fi
echo "+ npx cspell --no-progress \$(git ls-files)"
npx cspell --no-progress $(git ls-files)
echo "+ npx cspell --no-progress --no-summary \$(git ls-files)"
npx cspell --no-progress --no-summary $(git ls-files)
for dictionary in .github/.cspell/*.txt; do
if [[ "${dictionary}" == .github/.cspell/project-dictionary.txt ]]; then