Compare commits

..

23 Commits

Author SHA1 Message Date
Taiki Endo
f7379c13bb Add release instructions and update release script 2023-03-26 18:47:22 +09:00
Taiki Endo
1c96e2750b Release 2.6.5 2023-03-25 23:30:54 +09:00
Taiki Endo
b047e58764 Update cspell dictionary 2023-03-25 23:30:17 +09:00
Taiki Endo
02aadca714 Update cargo-binstall@latest to 0.22.0 2023-03-23 17:50:30 +09:00
Taiki Endo
c64d4ba1ed Release 2.6.4 2023-03-21 13:28:01 +09:00
Taiki Endo
f006976e02 Update wasmtime@latest to 7.0.0 2023-03-21 13:27:11 +09:00
Taiki Endo
7570159fcc Release 2.6.3 2023-03-20 12:23:55 +09:00
Taiki Endo
7fed544855 Update zola@latest to 0.17.2 2023-03-20 12:22:33 +09:00
Taiki Endo
9eaa8ca48b Update wasm-pack@latest to 0.11.0 2023-03-20 12:22:33 +09:00
Taiki Endo
159a429775 Update cargo-nextest@latest to 0.9.51 2023-03-20 12:22:33 +09:00
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
15 changed files with 369 additions and 71 deletions

View File

@@ -77,27 +77,36 @@ vxworks
wasi
watchos
xous
xtensa
// Rust other
aclass
acqrel
alloc
bools
builtins
canonicalize
consts
ctypes
dealloc
deque
docsrs
doctest
hasher
impls
inlateout
intrinsics
lateout
mclass
msrv
nand
nomem
nonoverlapping
noreturn
nostack
peekable
punct
rclass
repr
rfind
rfold
@@ -109,14 +118,17 @@ supertrait
supertraits
sysroot
toolchains
turbofish
uninit
unsized
upcastable
// Other
binutils
connrefused
cygwin
dpkg
endianness
euxo
msys
noninteractive
@@ -128,4 +140,8 @@ pipefail
powerset
proto
readelf
SIGABRT
SIGILL
SIGINT
SIGTERM
tlsv

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

View File

@@ -29,3 +29,4 @@ jobs:
title: $version
branch: 'main|v[0-9]+'
token: ${{ secrets.GITHUB_TOKEN }}
- run: ci/publish.sh

View File

@@ -10,6 +10,40 @@ Note: In this file, do not use the hard wrap in the middle of a sentence for com
## [Unreleased]
## [2.6.5] - 2023-03-25
- Update `cargo-binstall@latest` to 0.22.0.
## [2.6.4] - 2023-03-21
- Update `wasmtime@latest` to 7.0.0.
## [2.6.3] - 2023-03-20
- Update `zola@latest` to 0.17.2.
- Update `wasm-pack@latest` to 0.11.0.
- Update `cargo-nextest@latest` to 0.9.51.
## [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.
@@ -665,7 +699,14 @@ 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.6...HEAD
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.6.5...HEAD
[2.6.5]: https://github.com/taiki-e/install-action/compare/v2.6.4...v2.6.5
[2.6.4]: https://github.com/taiki-e/install-action/compare/v2.6.3...v2.6.4
[2.6.3]: https://github.com/taiki-e/install-action/compare/v2.6.2...v2.6.3
[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

View File

@@ -17,3 +17,31 @@ See JSON files in `tools/codegen/base` directory for examples of the manifest.
3\. Add tool name to test matrix in `.github/workflows/ci.yml`.
4\. Add tool name to table in "Supported tools" section in `README.md`.
## Release new version
Note: This is a guide for maintainers.
### Minor version vs patch version
Increase the patch version if only the following changes are included.
- Update the `@latest` version of the tool.
Rationale: Normally, tool versions are controlled by the `@<version>` syntax, which is explicitly separated from the versioning of the install-action itself.
Exception: If the major or minor version of the `cargo-binstall` is updated, the minor version should be increased because the behavior of the fallback may change slightly.
- Fix regressions or minor bugs.
Rationale: Semantic Versioning.
- Improve documentation or diagnostics.
Rationale: Semantic Versioning.
Increase the minor version otherwise.
### Release instructions
TODO: current release script assumes admin permissions

View File

@@ -3,6 +3,15 @@ set -euxo pipefail
IFS=$'\n\t'
cd "$(dirname "$0")"/..
bail() {
echo >&2 "error: $*"
exit 1
}
if [[ -z "${CI:-}" ]]; then
bail "this script is intended to call from release workflow on CI"
fi
git config user.name "Taiki Endo"
git config user.email "te316e89@gmail.com"
@@ -15,6 +24,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

74
ci/publish.sh Executable file
View File

@@ -0,0 +1,74 @@
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
cd "$(dirname "$0")"/..
# shellcheck disable=SC2154
trap 's=$?; echo >&2 "$0: Error on line "${LINENO}": ${BASH_COMMAND}"; exit ${s}' ERR
bail() {
echo >&2 "error: $*"
exit 1
}
if [[ -z "${CI:-}" ]]; then
bail "this script is intended to call from release workflow on CI"
fi
ref="${GITHUB_REF:-}"
if [[ "${ref}" != "refs/tags/"* ]]; then
bail "tag ref should start with 'refs/tags/'"
fi
tag="${ref#refs/tags/}"
git config user.name "Taiki Endo"
git config user.email "te316e89@gmail.com"
version="${tag}"
version="${version#v}"
tools=()
for tool in tools/codegen/base/*.json; do
tools+=("$(basename "${tool%.*}")")
done
# Aliases
tools+=(nextest)
# Not manifest-base
tools+=(valgrind)
(
set -x
major_version_tag="v${version%%.*}"
git checkout -b "${major_version_tag}"
git push origin refs/heads/"${major_version_tag}"
if git --no-pager tag | grep -Eq "^${major_version_tag}$"; then
git tag -d "${major_version_tag}"
git push --delete origin refs/tags/"${major_version_tag}"
fi
git tag "${major_version_tag}"
git checkout main
git branch -d "${major_version_tag}"
)
for tool in "${tools[@]}"; do
(
set -x
git checkout -b "${tool}"
sed -i -e "s/required: true/required: false/g" action.yml
sed -i -e "s/# default: #publish:tool/default: ${tool}/g" action.yml
git add action.yml
git commit -m "${tool}"
git push origin -f refs/heads/"${tool}"
if git --no-pager tag | grep -Eq "^${tool}$"; then
git tag -d "${tool}"
git push --delete origin refs/tags/"${tool}"
fi
git tag "${tool}"
git checkout main
git branch -D "${tool}"
)
done
set -x
git push origin --tags

View File

@@ -20,26 +20,26 @@
}
},
"latest": {
"version": "0.20.1"
"version": "0.22.0"
},
"0.20.1": {
"0.22.0": {
"x86_64_linux_musl": {
"checksum": "4729eea4277f0cfb72dd983984ef7b3938f0af5f0e256ca6e6b90c6177decbb2"
"checksum": "2238080e5e2c4eae5993de478341af6348e10fd9763a95a77e654e6f28268266"
},
"x86_64_macos": {
"checksum": "8b057687f4e367bd51c2feb7f9473d2fe50fa54273ec9ae61e4e0238044f4761"
"checksum": "3e87999ab63edf3cdd71a3839bd85661c5dea5d763718668b8b3b35b1ac5dbe0"
},
"x86_64_windows": {
"checksum": "467b0abcabe9c0456f721d108c90b53ea050d121f7c9ae8b23a048d0f55bad16"
"checksum": "f656718d44ca4a09ff2231970edc7878a1aa33b6e15790a4884a758144008e27"
},
"aarch64_linux_musl": {
"checksum": "8f7b6f899de74110bf7426ca9d579d4981c67a13ada64907e7095a0cd1b3f116"
"checksum": "280fc36a0f565d76636aa3aff570c97d1e6fbd6aa08ef315af2cb968054e1d9b"
},
"aarch64_macos": {
"checksum": "05a1cb0a1c779263f0173e351cc5e6aab0dfc49a7c1fa5152422c4e9d16b13c0"
"checksum": "abb87cb2ef23b552c62dc463777debb31be4a817ef9366509abb245d346e4410"
},
"aarch64_windows": {
"checksum": "39e011c1e13b0f510c8c729de4bc4c93984f88c4d30cfa975e9672320ac7bd8a"
"checksum": "50108bd891a0b6a0044f71d11e09e886a3eec44f4163d44f79a3eed049a484c2"
}
}
}

View File

@@ -17,10 +17,44 @@
}
},
"latest": {
"version": "0.9.49"
"version": "0.9.51"
},
"0.9": {
"version": "0.9.49"
"version": "0.9.51"
},
"0.9.51": {
"x86_64_linux_gnu": {
"checksum": "5cbf80e72737d63a601f139d6ff1c42ca9cf6204cd7991f7d6ce7458f2c12bbc"
},
"x86_64_linux_musl": {
"checksum": "2d7def02b6b795b7b44fe2cca9b1b9e77bcb4c8903957ad502f60f45a2f92e9a"
},
"x86_64_macos": {
"checksum": "607c0cac7d659bb957af12a136756821771b9d91f03ccae24b255363e7fcbfda"
},
"x86_64_windows": {
"checksum": "4a97e5ab319af4347549e8414df2af5af7d9f8b4cee8650bad0111d2007711b2"
},
"aarch64_linux_gnu": {
"checksum": "8da18d12f95280bf1a7bde6e13cb8e1e2ea877acc4e826c27ab6c5df653fafca"
}
},
"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": {

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"

28
manifests/protoc.json generated
View File

@@ -1,13 +1,35 @@
{
"template": null,
"latest": {
"version": "3.22.1"
"version": "3.22.2"
},
"3": {
"version": "3.22.1"
"version": "3.22.2"
},
"3.22": {
"version": "3.22.1"
"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": {

View File

@@ -18,7 +18,24 @@
}
},
"latest": {
"version": "0.10.3"
"version": "0.11.0"
},
"0.11": {
"version": "0.11.0"
},
"0.11.0": {
"x86_64_linux_musl": {
"checksum": "f3041ac5fda684d09b28ca23555c2f24cac9d6eef57ee4ef3f29fdab1c19fe24"
},
"x86_64_macos": {
"checksum": "5da38cb10536e6fe686402f5af94ea48a4b94dca9bde931bf117ddce3e746f0e"
},
"x86_64_windows": {
"checksum": "10092618d9451bace4f727d344f19a02dda4a28ffd527272595f88b8c15efec9"
},
"aarch64_linux_musl": {
"checksum": "ebc6339762f95385081a06ce3ac8d5846e7267011bc028266009cf3b4ff0f81c"
}
},
"0.10": {
"version": "0.10.3"

View File

@@ -22,7 +22,30 @@
}
},
"latest": {
"version": "6.0.1"
"version": "7.0.0"
},
"7": {
"version": "7.0.0"
},
"7.0": {
"version": "7.0.0"
},
"7.0.0": {
"x86_64_linux_gnu": {
"checksum": "b8a1c97f9107c885ea73a5c38677d0d340a7c26879d366e8a5f3dce84cffec99"
},
"x86_64_macos": {
"checksum": "70596a9f8fcf0b2467877cb184f41f6b451ade4ac74d1e0bb8986bbfbac925b4"
},
"x86_64_windows": {
"checksum": "bf796c35020df2df3a29475949e0330ea3fd47bbfd719d2959564c3e32a8c1a7"
},
"aarch64_linux_gnu": {
"checksum": "723171912c7cd6332c1ac599851dd04dcb107f60a9f18d9d2d3bd319e3c2c6ba"
},
"aarch64_macos": {
"checksum": "8e66af9cb46726f2c9b22f96cd8a08a5f1112d2f02f13f84ff2167444b14366e"
}
},
"6": {
"version": "6.0.1"

15
manifests/zola.json generated
View File

@@ -11,10 +11,21 @@
}
},
"latest": {
"version": "0.17.1"
"version": "0.17.2"
},
"0.17": {
"version": "0.17.1"
"version": "0.17.2"
},
"0.17.2": {
"x86_64_linux_gnu": {
"checksum": "48742322fc0660afb22a4ce194e9b2bd610b5bd36f43abe121e56eb8a704b464"
},
"x86_64_macos": {
"checksum": "5e17a54c9b1db55ae71d49587b399b8b39bdee8cbb4a198ab6449c3e0f9ad21e"
},
"x86_64_windows": {
"checksum": "89c504756a2c34f8540adf7eee83a8f1b61527bc55daa7e42481a0c727cae88f"
}
},
"0.17.1": {
"x86_64_linux_gnu": {

View File

@@ -14,6 +14,14 @@ trap 's=$?; echo >&2 "$0: Error on line "${LINENO}": ${BASH_COMMAND}"; exit ${s}
# Note: This script requires the following tools:
# - parse-changelog <https://github.com/taiki-e/parse-changelog>
x() {
local cmd="$1"
shift
(
set -x
"${cmd}" "$@"
)
}
bail() {
echo >&2 "error: $*"
exit 1
@@ -40,6 +48,7 @@ if gh release view "${tag}" &>/dev/null; then
bail "tag '${tag}' has already been created and pushed"
fi
# Make sure that the release was created from an allowed branch.
if ! git branch | grep -q '\* main$'; then
bail "current branch is not 'main'"
fi
@@ -88,57 +97,11 @@ echo "======================================="
if [[ -n "${tags}" ]]; then
# Create a release commit.
git add "${changelog}"
git commit -m "Release ${version}"
x git add "${changelog}"
x git commit -m "Release ${version}"
fi
tools=()
for tool in tools/codegen/base/*.json; do
tools+=("$(basename "${tool%.*}")")
done
# Aliases
tools+=(nextest)
# Not manifest-base
tools+=(valgrind)
(
set -x
git tag "${tag}"
git push origin main
git push origin --tags
major_version_tag="v${version%%.*}"
git checkout -b "${major_version_tag}"
git push origin refs/heads/"${major_version_tag}"
if git --no-pager tag | grep -Eq "^${major_version_tag}$"; then
git tag -d "${major_version_tag}"
git push --delete origin refs/tags/"${major_version_tag}"
fi
git tag "${major_version_tag}"
git checkout main
git branch -d "${major_version_tag}"
)
for tool in "${tools[@]}"; do
(
set -x
git checkout -b "${tool}"
sed -i -e "s/required: true/required: false/g" action.yml
sed -i -e "s/# default: #publish:tool/default: ${tool}/g" action.yml
git add action.yml
git commit -m "${tool}"
git push origin -f refs/heads/"${tool}"
if git --no-pager tag | grep -Eq "^${tool}$"; then
git tag -d "${tool}"
git push --delete origin refs/tags/"${tool}"
fi
git tag "${tool}"
git checkout main
git branch -D "${tool}"
)
done
set -x
git push origin --tags
x git tag "${tag}"
# TODO: the following still assumes admin permissions
x git push origin main
x git push origin --tags