Compare commits

...

10 Commits

Author SHA1 Message Date
Taiki Endo
a779dafd49 Release 2.47.6 2025-01-03 12:22:08 +09:00
Taiki Endo
2a650b8687 Update typos@latest to 1.29.3 2025-01-03 06:13:25 +09:00
Taiki Endo
656b4969d3 Release 2.47.5 2025-01-03 01:17:30 +09:00
Taiki Endo
52b84660a3 Update typos@latest to 1.29.1 2025-01-03 01:00:37 +09:00
Taiki Endo
84ccb7b697 ci: Clean up scripts 2025-01-03 00:54:42 +09:00
Taiki Endo
63d5217a35 ci: Test windows-2025 2025-01-03 00:50:49 +09:00
Taiki Endo
cf1be1a00f Release 2.47.4 2025-01-03 00:39:03 +09:00
Taiki Endo
444e3608dd Update xh@latest to 0.23.1 2025-01-02 21:15:31 +09:00
Taiki Endo
716fb8f756 Release 2.47.3 2025-01-02 13:08:16 +09:00
Taiki Endo
870e4de1b5 Update knope@latest to 0.18.2 2025-01-02 12:56:50 +09:00
9 changed files with 157 additions and 33 deletions

View File

@@ -24,6 +24,7 @@ protoc
pwsh pwsh
quickinstall quickinstall
rclone rclone
rootfs
sccache sccache
syft syft
udeps udeps

View File

@@ -25,7 +25,7 @@ env:
defaults: defaults:
run: run:
shell: bash shell: bash --noprofile --norc -CeEuxo pipefail {0}
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
@@ -68,6 +68,11 @@ jobs:
bash: msys64 bash: msys64
- os: windows-2022 - os: windows-2022
bash: cygwin bash: cygwin
- os: windows-2025
- os: windows-2025
bash: msys64
- os: windows-2025
bash: cygwin
- os: windows-2022 - os: windows-2022
tool: major.minor.patch tool: major.minor.patch
- os: windows-2022 - os: windows-2022
@@ -79,7 +84,7 @@ jobs:
steps: steps:
- uses: taiki-e/checkout-action@v1 - uses: taiki-e/checkout-action@v1
# cross attempts to install rust-src when Cargo.toml is available even if `cross --version` # cross attempts to install rust-src when Cargo.toml is available even if `cross --version`
- run: rm Cargo.toml - run: rm -- Cargo.toml
- name: Generate tool list - name: Generate tool list
id: tool-list id: tool-list
run: tools/ci/tool-list.sh "${{ matrix.tool }}" "${{ matrix.os }}" "${{ matrix.bash }}" >>"${GITHUB_OUTPUT}" run: tools/ci/tool-list.sh "${{ matrix.tool }}" "${{ matrix.os }}" "${{ matrix.bash }}" >>"${GITHUB_OUTPUT}"
@@ -154,13 +159,13 @@ jobs:
- opensuse/tumbleweed:latest # glibc 2.39 (as of 2024-07-19) - opensuse/tumbleweed:latest # glibc 2.39 (as of 2024-07-19)
- archlinux:latest # glibc 2.39 (as of 2024-07-19) - archlinux:latest # glibc 2.39 (as of 2024-07-19)
- alpine:latest # musl 1.2.5 (as of alpine 3.20) - alpine:latest # musl 1.2.5 (as of alpine 3.20)
# - openwrt/rootfs:x86-64-openwrt-24.10 # musl 1.2.5
runs-on: ubuntu-latest runs-on: ubuntu-latest
timeout-minutes: 60 timeout-minutes: 60
container: ${{ matrix.container }} container: ${{ matrix.container }}
steps: steps:
- name: Install requirements (old debian) - name: Install requirements (old debian)
run: | run: |
set -CeEuxo pipefail
# In Debian, the old repositories is removed from the main mirrors some time after EoL. # In Debian, the old repositories is removed from the main mirrors some time after EoL.
sed -i /etc/apt/sources.list -e 's/deb.debian.org/archive.debian.org/g' \ sed -i /etc/apt/sources.list -e 's/deb.debian.org/archive.debian.org/g' \
-e 's|security.debian.org|archive.debian.org/|g' \ -e 's|security.debian.org|archive.debian.org/|g' \
@@ -168,7 +173,6 @@ jobs:
if: startsWith(matrix.container, 'debian:9') if: startsWith(matrix.container, 'debian:9')
- name: Install requirements (centos) - name: Install requirements (centos)
run: | run: |
set -CeEuxo pipefail
# In CentOS, the old repositories is removed from the main mirrors just after EoL. # In CentOS, the old repositories is removed from the main mirrors just after EoL.
# https://github.com/rust-lang/rust/pull/126352 # https://github.com/rust-lang/rust/pull/126352
sed -i /etc/yum.repos.d/*.repo -e 's!^mirrorlist!#mirrorlist!' \ sed -i /etc/yum.repos.d/*.repo -e 's!^mirrorlist!#mirrorlist!' \
@@ -191,7 +195,7 @@ jobs:
if: startsWith(matrix.container, 'centos') if: startsWith(matrix.container, 'centos')
- uses: taiki-e/checkout-action@v1 - uses: taiki-e/checkout-action@v1
# cross attempts to install rust-src when Cargo.toml is available even if `cross --version` # cross attempts to install rust-src when Cargo.toml is available even if `cross --version`
- run: rm Cargo.toml - run: rm -- Cargo.toml
- name: Generate tool list - name: Generate tool list
id: tool-list id: tool-list
run: tools/ci/tool-list.sh >>"${GITHUB_OUTPUT}" run: tools/ci/tool-list.sh >>"${GITHUB_OUTPUT}"
@@ -204,6 +208,16 @@ jobs:
tool: ${{ steps.tool-list.outputs.tool }} tool: ${{ steps.tool-list.outputs.tool }}
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Test bash
run: just --version && shfmt --version
shell: bash
# TODO: OCI runtime exec failed: exec failed: unable to start container process: exec: "bash": executable file not found in $PATH: unknown
if: (!startsWith(matrix.container, 'opensuse'))
- name: Test sh
run: just --version && shfmt --version
shell: sh
# TODO: OCI runtime exec failed: exec failed: unable to start container process: exec: "sh": executable file not found in $PATH: unknown
if: (!startsWith(matrix.container, 'opensuse'))
manifest: manifest:
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@@ -10,7 +10,7 @@ on:
defaults: defaults:
run: run:
shell: bash shell: bash --noprofile --norc -CeEuxo pipefail {0}
jobs: jobs:
create-release: create-release:

View File

@@ -10,6 +10,22 @@ Note: In this file, do not use the hard wrap in the middle of a sentence for com
## [Unreleased] ## [Unreleased]
## [2.47.6] - 2025-01-03
- Update `typos@latest` to 1.29.3.
## [2.47.5] - 2025-01-02
- Update `typos@latest` to 1.29.1.
## [2.47.4] - 2025-01-02
- Update `xh@latest` to 0.23.1.
## [2.47.3] - 2025-01-02
- Update `knope@latest` to 0.18.2.
## [2.47.2] - 2024-12-31 ## [2.47.2] - 2024-12-31
- Update `typos@latest` to 1.29.0. - Update `typos@latest` to 1.29.0.
@@ -3274,7 +3290,11 @@ Note: This release is considered a breaking change because installing on version
Initial release Initial release
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.47.2...HEAD [Unreleased]: https://github.com/taiki-e/install-action/compare/v2.47.6...HEAD
[2.47.6]: https://github.com/taiki-e/install-action/compare/v2.47.5...v2.47.6
[2.47.5]: https://github.com/taiki-e/install-action/compare/v2.47.4...v2.47.5
[2.47.4]: https://github.com/taiki-e/install-action/compare/v2.47.3...v2.47.4
[2.47.3]: https://github.com/taiki-e/install-action/compare/v2.47.2...v2.47.3
[2.47.2]: https://github.com/taiki-e/install-action/compare/v2.47.1...v2.47.2 [2.47.2]: https://github.com/taiki-e/install-action/compare/v2.47.1...v2.47.2
[2.47.1]: https://github.com/taiki-e/install-action/compare/v2.47.0...v2.47.1 [2.47.1]: https://github.com/taiki-e/install-action/compare/v2.47.0...v2.47.1
[2.47.0]: https://github.com/taiki-e/install-action/compare/v2.46.20...v2.47.0 [2.47.0]: https://github.com/taiki-e/install-action/compare/v2.46.20...v2.47.0

30
manifests/knope.json generated
View File

@@ -3,10 +3,36 @@
"template": null, "template": null,
"license_markdown": "[MIT](https://github.com/knope-dev/knope/blob/main/LICENSE)", "license_markdown": "[MIT](https://github.com/knope-dev/knope/blob/main/LICENSE)",
"latest": { "latest": {
"version": "0.18.1" "version": "0.18.2"
}, },
"0.18": { "0.18": {
"version": "0.18.1" "version": "0.18.2"
},
"0.18.2": {
"x86_64_linux_musl": {
"url": "https://github.com/knope-dev/knope/releases/download/knope/v0.18.2/knope-x86_64-unknown-linux-musl.tgz",
"etag": "0x8DD2ACDFF5567F8",
"checksum": "c43e040643cc16f14a70444d79dcf4e9c4eaa896664f598005386637c2534e6f",
"bin": "knope-x86_64-unknown-linux-musl/knope"
},
"x86_64_macos": {
"url": "https://github.com/knope-dev/knope/releases/download/knope/v0.18.2/knope-x86_64-apple-darwin.tgz",
"etag": "0x8DD2ACDFF51C290",
"checksum": "f9cc757233467e192a0904f2e9c2ef5aa1a7e715235b98520af33fd986d115f2",
"bin": "knope-x86_64-apple-darwin/knope"
},
"x86_64_windows": {
"url": "https://github.com/knope-dev/knope/releases/download/knope/v0.18.2/knope-x86_64-pc-windows-msvc.tgz",
"etag": "0x8DD2ACDFF558EDB",
"checksum": "0e5775244e10a7e9de89be4f0f485e23bfa6c98ad008b85d54a1235b4e7bd123",
"bin": "knope-x86_64-pc-windows-msvc/knope.exe"
},
"aarch64_macos": {
"url": "https://github.com/knope-dev/knope/releases/download/knope/v0.18.2/knope-aarch64-apple-darwin.tgz",
"etag": "0x8DD2ACDFF4E6AFA",
"checksum": "ff35f72455a498e9a407b483c1d6ddb962f6ae31b1989db6dfc09e88da270b3b",
"bin": "knope-aarch64-apple-darwin/knope"
}
}, },
"0.18.1": { "0.18.1": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

42
manifests/typos.json generated
View File

@@ -16,13 +16,49 @@
}, },
"license_markdown": "[MIT](https://github.com/crate-ci/typos/blob/master/LICENSE-MIT) OR [Apache-2.0](https://github.com/crate-ci/typos/blob/master/LICENSE-APACHE)", "license_markdown": "[MIT](https://github.com/crate-ci/typos/blob/master/LICENSE-MIT) OR [Apache-2.0](https://github.com/crate-ci/typos/blob/master/LICENSE-APACHE)",
"latest": { "latest": {
"version": "1.29.0" "version": "1.29.3"
}, },
"1": { "1": {
"version": "1.29.0" "version": "1.29.3"
}, },
"1.29": { "1.29": {
"version": "1.29.0" "version": "1.29.3"
},
"1.29.3": {
"x86_64_linux_musl": {
"etag": "0x8DD2B6BB018B914",
"checksum": "bf8f18721055483eae9420c424ae28fe11b8881278ac060e65566f3b65cdcfa8"
},
"x86_64_macos": {
"etag": "0x8DD2B6C237CC2A5",
"checksum": "5e5f52a23c36e4ff06194f690c874a52a8a07d113f2b906ad29424614057c1a5"
},
"x86_64_windows": {
"etag": "0x8DD2B6C6C818914",
"checksum": "462bf6b62a49c65860ae57a11c332f8dbaeaddc0384c5f5f8225af31c83dbd5b"
},
"aarch64_macos": {
"etag": "0x8DD2B6BF6D405F3",
"checksum": "fb1ad842dcd06a79048ff6a6d3be64e79729a9a14b954638d709f759431d6df6"
}
},
"1.29.1": {
"x86_64_linux_musl": {
"etag": "0x8DD2B44978440AE",
"checksum": "f4d9630c51bdf9398ebcd70bee485302eb14b9e4ddf1f8101deab8d30621ffda"
},
"x86_64_macos": {
"etag": "0x8DD2B44B0A26BB5",
"checksum": "33002029990b5645fe9a541fa321a2bb053894b776f57435b6a75ad1854ad007"
},
"x86_64_windows": {
"etag": "0x8DD2B4504BFD839",
"checksum": "35829b5ce8c5194aa3bdc93ccfe86b70555dffa6074174c85c21f5569361ce11"
},
"aarch64_macos": {
"etag": "0x8DD2B44B4B50C21",
"checksum": "264ceb033679b7a5c8d5647f3b1c0f0c5cdb8fbf0454dd83bdb94f2fd0e03d5e"
}
}, },
"1.29.0": { "1.29.0": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

26
manifests/xh.json generated
View File

@@ -24,10 +24,32 @@
}, },
"license_markdown": "[MIT](https://github.com/ducaale/xh/blob/master/LICENSE)", "license_markdown": "[MIT](https://github.com/ducaale/xh/blob/master/LICENSE)",
"latest": { "latest": {
"version": "0.23.0" "version": "0.23.1"
}, },
"0.23": { "0.23": {
"version": "0.23.0" "version": "0.23.1"
},
"0.23.1": {
"x86_64_linux_musl": {
"etag": "0x8DD2B233BDE1B21",
"checksum": "a29ed6afcabf2c575c24499397fa3a840047dffc4a68e4a1a886f22584712946"
},
"x86_64_macos": {
"etag": "0x8DD2B2368C2662C",
"checksum": "e9e0f97e16095d2afb7e9247e6d250c95673dc3305a05539aafc2506ab59ad0a"
},
"x86_64_windows": {
"etag": "0x8DD2B2378B25C5D",
"checksum": "ea2da950b69c1093c1c2f7293fa1bc75cd7ae5719ff23397ee985bf1995a8014"
},
"aarch64_linux_musl": {
"etag": "0x8DD2B2336F9AF21",
"checksum": "52654b727a7a9dd712afaa40f4b6d3127079b9d95c24ee7a96e477941e5ca751"
},
"aarch64_macos": {
"etag": "0x8DD2B230558D457",
"checksum": "849841ce3c05cd64405d6282298869185a806b4f008ab5c6809fb8700e985f01"
}
}, },
"0.23.0": { "0.23.0": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

View File

@@ -1,11 +1,12 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# SPDX-License-Identifier: Apache-2.0 OR MIT # SPDX-License-Identifier: Apache-2.0 OR MIT
set -eEuo pipefail set -CeEuo pipefail
IFS=$'\n\t' IFS=$'\n\t'
cd "$(dirname "$0")"/../.. trap -- 's=$?; printf >&2 "%s\n" "${0##*/}:${LINENO}: \`${BASH_COMMAND}\` exit with ${s}"; exit ${s}' ERR
cd -- "$(dirname -- "$0")"/../..
bail() { bail() {
echo >&2 "error: $*" printf >&2 'error: %s\n' "$*"
exit 1 exit 1
} }
@@ -13,15 +14,17 @@ if [[ -z "${CI:-}" ]]; then
bail "this script is intended to call from release workflow on CI" bail "this script is intended to call from release workflow on CI"
fi fi
git config user.name "Taiki Endo" git config user.name 'Taiki Endo'
git config user.email "te316e89@gmail.com" git config user.email 'te316e89@gmail.com'
set -x set -x
has_update=''
for manifest in manifests/*.json; do for manifest in manifests/*.json; do
git add -N "${manifest}" git add -N "${manifest}"
if ! git diff --exit-code -- "${manifest}"; then if ! git diff --exit-code -- "${manifest}"; then
name=$(basename "${manifest%.*}") name="${manifest##*/}"
name="${name%.*}"
git stash git stash
old_version=$(jq -r '.latest.version' "${manifest}") old_version=$(jq -r '.latest.version' "${manifest}")
git stash pop git stash pop
@@ -29,7 +32,7 @@ for manifest in manifests/*.json; do
if [[ "${old_version}" != "${new_version}" ]]; then if [[ "${old_version}" != "${new_version}" ]]; then
# TODO: If there is a line about updating the same tool in the "Unreleased" section, replace it. # TODO: If there is a line about updating the same tool in the "Unreleased" section, replace it.
msg="Update \`${name}@latest\` to ${new_version}" msg="Update \`${name}@latest\` to ${new_version}"
sed -i "s/^## \\[Unreleased\\]/## [Unreleased]\\n\\n- ${msg}./" CHANGELOG.md sed -Ei "s/^## \\[Unreleased\\]/## [Unreleased]\\n\\n- ${msg}./" CHANGELOG.md
git add "${manifest}" CHANGELOG.md git add "${manifest}" CHANGELOG.md
else else
msg="Update ${name} manifest" msg="Update ${name} manifest"
@@ -40,6 +43,6 @@ for manifest in manifests/*.json; do
fi fi
done done
if [[ -n "${has_update:-}" ]] && [[ -n "${GITHUB_OUTPUT:-}" ]]; then if [[ -n "${has_update}" ]] && [[ -n "${GITHUB_OUTPUT:-}" ]]; then
echo "success=false" >>"${GITHUB_OUTPUT}" printf 'success=false\n' >>"${GITHUB_OUTPUT}"
fi fi

View File

@@ -1,8 +1,9 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# SPDX-License-Identifier: Apache-2.0 OR MIT # SPDX-License-Identifier: Apache-2.0 OR MIT
set -eEuo pipefail set -CeEuo pipefail
IFS=$'\n\t' IFS=$'\n\t'
cd "$(dirname "$0")"/../.. trap -- 's=$?; printf >&2 "%s\n" "${0##*/}:${LINENO}: \`${BASH_COMMAND}\` exit with ${s}"; exit ${s}' ERR
cd -- "$(dirname -- "$0")"/../..
# They don't provide prebuilt binaries for musl or old glibc host. # They don't provide prebuilt binaries for musl or old glibc host.
# version `GLIBC_2.34' not found # version `GLIBC_2.34' not found
@@ -53,7 +54,7 @@ case "${1:-}" in
incompat_tools+=(valgrind cargo-binstall) incompat_tools+=(valgrind cargo-binstall)
;; ;;
*) *)
echo "tool=$1" printf 'tool=%s\n', "$1"
exit 1 exit 1
;; ;;
esac esac
@@ -63,7 +64,7 @@ case "$(uname -s)" in
Linux) Linux)
host_os=linux host_os=linux
ldd_version=$(ldd --version 2>&1 || true) ldd_version=$(ldd --version 2>&1 || true)
if grep <<<"${ldd_version}" -q 'musl'; then if grep -Fq musl <<<"${ldd_version}"; then
incompat_tools+=("${musl_incompat[@]}") incompat_tools+=("${musl_incompat[@]}")
else else
host_glibc_version=$(grep -E "GLIBC|GNU libc" <<<"${ldd_version}" | sed "s/.* //g") host_glibc_version=$(grep -E "GLIBC|GNU libc" <<<"${ldd_version}" | sed "s/.* //g")
@@ -92,7 +93,7 @@ case "$(uname -s)" in
fi fi
fi fi
fi fi
if ! type -P snap &>/dev/null; then if ! type -P snap >/dev/null; then
incompat_tools+=(valgrind) incompat_tools+=(valgrind)
fi fi
;; ;;
@@ -112,9 +113,10 @@ esac
tools=() tools=()
for manifest in tools/codegen/base/*.json; do for manifest in tools/codegen/base/*.json; do
tool_name=$(basename "${manifest%.*}") tool_name="${manifest##*/}"
tool_name="${tool_name%.*}"
# cross -V requires rustc # cross -V requires rustc
if [[ "${tool_name}" == "cross" ]] && ! type -P rustc &>/dev/null; then if [[ "${tool_name}" == "cross" ]] && ! type -P rustc >/dev/null; then
continue continue
fi fi
case "${host_os}" in case "${host_os}" in
@@ -133,7 +135,7 @@ for manifest in tools/codegen/base/*.json; do
done done
if [[ -n "${tool_name}" ]]; then if [[ -n "${tool_name}" ]]; then
if [[ "${version}" != "latest" ]]; then if [[ "${version}" != "latest" ]]; then
latest_version=$(jq -r ".latest.version" "manifests/${tool_name}.json") latest_version=$(jq -r '.latest.version' "manifests/${tool_name}.json")
case "${version}" in case "${version}" in
major.minor.patch) tool_name+="@${latest_version}" ;; major.minor.patch) tool_name+="@${latest_version}" ;;
major.minor) tool_name+="@${latest_version%.*}" ;; major.minor) tool_name+="@${latest_version%.*}" ;;
@@ -159,7 +161,7 @@ case "${host_os}" in
linux*) linux*)
# Installing snap to container is difficult... # Installing snap to container is difficult...
# Specifying the version of valgrind is not supported. # Specifying the version of valgrind is not supported.
if type -P snap &>/dev/null && [[ "${version}" == "latest" ]]; then if type -P snap >/dev/null && [[ "${version}" == "latest" ]]; then
tools+=(valgrind) tools+=(valgrind)
fi fi
;; ;;
@@ -181,5 +183,5 @@ IFS=$'\n\t'
# TODO: inject random space before/after of tool name for testing https://github.com/taiki-e/install-action/issues/115. # TODO: inject random space before/after of tool name for testing https://github.com/taiki-e/install-action/issues/115.
IFS=',' IFS=','
echo "tool=${tools[*]}" printf 'tool=%s\n' "${tools[*]}"
IFS=$'\n\t' IFS=$'\n\t'