Compare commits

...

16 Commits

Author SHA1 Message Date
Taiki Endo
8002e0e61d Release 2.74.1 2026-04-07 12:53:35 +00:00
Taiki Endo
025d8d1457 Update mise@latest to 2026.4.5 2026-04-07 12:43:36 +00:00
Taiki Endo
e83b58f811 Update tombi@latest to 0.9.15 2026-04-07 06:54:02 +00:00
Taiki Endo
ebe7e09a94 Update shfmt manifest 2026-04-07 01:14:18 +00:00
Taiki Endo
c24beccdbc Update coreutils manifest 2026-04-07 01:14:18 +00:00
Taiki Endo
56bf508a3f Adjust base distro detection code 2026-04-07 00:55:49 +09:00
Taiki Endo
f0e236a2f1 ci: Remove dead code 2026-04-07 00:17:21 +09:00
Taiki Endo
94cb46f8d6 Release 2.74.0 2026-04-06 15:01:02 +00:00
Taiki Endo
7fef44e195 Update changelog 2026-04-06 23:37:36 +09:00
Taiki Endo
3bf2282bfd Update mise manifest 2026-04-06 12:40:08 +00:00
Taiki Endo
223b1d599e Update tombi manifest 2026-04-06 07:00:36 +00:00
Taiki Endo
fdcd834b4f Update just@latest to 1.49.0 2026-04-06 07:00:36 +00:00
Taiki Endo
b45e8d6c43 Update mise@latest to 2026.4.4 2026-04-06 05:36:10 +00:00
Taiki Endo
4eac87a846 ci: Update config 2026-04-05 18:48:22 +09:00
Taiki Endo
5b41336748 Add issue template 2026-04-05 18:40:32 +09:00
Taiki Endo
55a981690b Support cargo-deb 2026-04-05 17:27:20 +09:00
16 changed files with 285 additions and 35 deletions

1
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1 @@
blank_issues_enabled: true

46
.github/ISSUE_TEMPLATE/new_tool.yml vendored Normal file
View File

@@ -0,0 +1,46 @@
name: New tool suggestion
description: Suggest support for a new tool
labels: [enhancement]
body:
- type: markdown
attributes:
value: |
Thanks for a new tool suggestion!
Normally, you don't need to open an issue to request support for a new tool.
Instead, please submit a pull request.
(See [DEVELOPMENT.md](https://github.com/taiki-e/install-action/blob/main/DEVELOPMENT.md) for how to add support for a new tool.)
That said, if you have any questions before getting started, or if youre unable to contribute for any reason, feel free to open an issue.
- type: input
id: name
attributes:
label: Tool name
validations:
required: true
- type: dropdown
id: pre-built
attributes:
label: Are official pre-built binaries provided?
description: |
If "No", this issue will be blocked until official pre-built binaries are provided.<br>
If "Unknown", this issue will be blocked until it is determined that it is provided.<br>
(When the tool is a Rust crate, it may already be available via fallback even if "No" or "Unknown".)<br>
options:
- 'Yes'
- 'No'
- Unknown
default: 2
validations:
required: true
- type: input
id: url
attributes:
label: Website or repository link
validations:
required: true
- type: textarea
id: context
attributes:
label: Additional Context
description: Any additional context that you believe may be relevant.

View File

@@ -266,6 +266,16 @@ jobs:
if: startsWith(matrix.container, 'debian:9') || startsWith(matrix.container, 'debian:10')
- name: Install requirements (centos)
run: |
retry() {
for i in {1..10}; do
if "$@"; then
return 0
else
sleep "${i}"
fi
done
"$@"
}
# In CentOS, the old repositories is removed from the main mirrors just after EoL.
# https://github.com/rust-lang/rust/pull/126352
sed -i /etc/yum.repos.d/*.repo -e 's!^mirrorlist!#mirrorlist!' \
@@ -273,15 +283,15 @@ jobs:
sed -i 's/enabled=1/enabled=0/' /etc/yum/pluginconf.d/fastestmirror.conf
if [[ "${CONTAINER}" == "centos:6" ]]; then
# CentOS 6's curl (7.19.7) has no curl has no --proto/--tlsv1.2.
yum install -y gcc openssl-devel
curl -fsSL --retry 10 https://curl.se/download/curl-7.34.0.tar.gz | tar xzf -
retry yum install -y gcc openssl-devel
retry curl -fsSL --retry 10 https://curl.se/download/curl-7.34.0.tar.gz | tar xzf -
cd -- curl-*
./configure --prefix=/usr/local --with-ssl
make
make install
# for checkout-action https://github.com/taiki-e/checkout-action/blob/v1.3.0/.github/workflows/ci.yml#L135-L143
yum install -y openssh-clients perl perl-Error perl-TermReadKey rsync
rpm -i \
retry yum install -y openssh-clients perl perl-Error perl-TermReadKey rsync
retry rpm -i \
https://vault.ius.io/el6/x86_64/packages/p/perl-Git18-1.8.5.5-4.ius.el6.noarch.rpm \
https://vault.ius.io/el6/x86_64/packages/g/git18-1.8.5.5-4.ius.el6.x86_64.rpm
fi

View File

@@ -62,19 +62,6 @@ jobs:
printf '::error::%s\n' "$*"
exit 1
}
normalize_comma_or_space_separated() {
# Normalize whitespace characters into space because it's hard to handle single input contains lines with POSIX sed alone.
local list="${1//[$'\r\n\t']/ }"
if [[ "${list}" == *","* ]]; then
# If a comma is contained, consider it is a comma-separated list.
# Drop leading and trailing whitespaces in each element.
sed -E 's/ *, */,/g; s/^.//; s/,,$/,/' <<<",${list},"
else
# Otherwise, consider it is a whitespace-separated list.
# Convert whitespace characters into comma.
sed -E 's/ +/,/g; s/^.//' <<<" ${list} "
fi
}
if { sed --help 2>&1 || true; } | grep -Eq -e '-i extension'; then
in_place=(-i '')
else

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.74.1] - 2026-04-07
- Update `mise@latest` to 2026.4.5.
- Update `tombi@latest` to 0.9.15.
## [2.74.0] - 2026-04-06
- Support `cargo-deb`. ([#1669](https://github.com/taiki-e/install-action/pull/1669))
- Update `just@latest` to 1.49.0.
- Update `mise@latest` to 2026.4.4.
## [2.73.0] - 2026-04-05
- Introduce [dependency cooldown](https://blog.yossarian.net/2025/11/21/We-should-all-be-using-dependency-cooldowns) when installing with `taiki-e/install-action@<tool_name>`, `tool: <tool_name>@latest`, or `tool: <tool_name>@<omitted_version>` to mitigate the risk of supply chain attacks by default. ([#1666](https://github.com/taiki-e/install-action/pull/1666))
@@ -6147,7 +6161,9 @@ Note: This release is considered a breaking change because installing on version
Initial release
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.73.0...HEAD
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.74.1...HEAD
[2.74.1]: https://github.com/taiki-e/install-action/compare/v2.74.0...v2.74.1
[2.74.0]: https://github.com/taiki-e/install-action/compare/v2.73.0...v2.74.0
[2.73.0]: https://github.com/taiki-e/install-action/compare/v2.72.0...v2.73.0
[2.72.0]: https://github.com/taiki-e/install-action/compare/v2.71.3...v2.72.0
[2.71.3]: https://github.com/taiki-e/install-action/compare/v2.71.2...v2.71.3

View File

@@ -21,9 +21,7 @@ See JSON files in `tools/codegen/base` directory for examples of the manifest.
> GITHUB_TOKEN=$(gh auth token) ./tools/manifest.sh <tool>
> ```
## Refresh TOOLS.md
To update `TOOLS.md`, run
3\. Update `TOOLS.md` with the following command.
```sh
./tools/update-markdown.sh

View File

@@ -22,6 +22,7 @@ See the [Supported tools section in README.md](README.md#supported-tools) for ho
| [**cargo-careful**](https://github.com/RalfJung/cargo-careful) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/RalfJung/cargo-careful/releases) | Linux, macOS, Windows | [MIT](https://github.com/RalfJung/cargo-careful/blob/master/LICENSE-MIT) OR [Apache-2.0](https://github.com/RalfJung/cargo-careful/blob/master/LICENSE-APACHE) |
| [**cargo-cyclonedx**](https://github.com/CycloneDX/cyclonedx-rust-cargo) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/CycloneDX/cyclonedx-rust-cargo/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/CycloneDX/cyclonedx-rust-cargo/blob/main/LICENSE) |
| [**cargo-deadlinks**](https://github.com/deadlinks/cargo-deadlinks) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/deadlinks/cargo-deadlinks/releases) | Linux, macOS, Windows | [MIT](https://github.com/deadlinks/cargo-deadlinks/blob/master/LICENSE-MIT) OR [Apache-2.0](https://github.com/deadlinks/cargo-deadlinks/blob/master/LICENSE-APACHE) |
| [**cargo-deb**](https://github.com/kornelski/cargo-deb) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/kornelski/cargo-deb/releases) | Linux | [MIT](https://github.com/kornelski/cargo-deb/blob/main/LICENSE) |
| [**cargo-deny**](https://github.com/EmbarkStudios/cargo-deny) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/EmbarkStudios/cargo-deny/releases) | Linux, macOS, Windows | [MIT](https://github.com/EmbarkStudios/cargo-deny/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/EmbarkStudios/cargo-deny/blob/main/LICENSE-APACHE) |
| [**cargo-dinghy**](https://github.com/sonos/dinghy) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/sonos/dinghy/releases) | Linux, macOS | [MIT](https://github.com/sonos/dinghy/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/sonos/dinghy/blob/main/LICENSE-APACHE) |
| [**cargo-export**](https://github.com/bazhenov/cargo-export) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/bazhenov/cargo-export/releases) | Linux, macOS, Windows | [MIT](https://github.com/bazhenov/cargo-export/blob/master/LICENSE) |

31
main.sh
View File

@@ -161,6 +161,17 @@ download_and_extract() {
esac
fi
;;
*.deb)
if ! type -P dpkg-deb >/dev/null; then
case "${base_distro}" in
debian | fedora | suse | arch | alpine)
printf '::group::Install packages required for installation (dpkg)\n'
sys_install dpkg
printf '::endgroup::\n'
;;
esac
fi
;;
esac
mkdir -p -- "${tmp_dir}"
@@ -194,6 +205,12 @@ download_and_extract() {
mv -- "${tmp}" "${bin_dir}/"
done
;;
*.deb)
dpkg-deb -x tmp .
for tmp in "${bin_in_archive[@]}"; do
mv -- "${tmp}" "${bin_dir}/"
done
;;
*)
for tmp in "${installed_bin[@]}"; do
mv -- tmp "${tmp}"
@@ -449,7 +466,13 @@ case "$(uname -s)" in
host_env=gnu
host_glibc_version=$(grep -E "GLIBC|GNU libc" <<<"${ldd_version}" | sed -E "s/.* //g")
fi
if [[ -e /etc/os-release ]]; then
if [[ -e /etc/redhat-release ]]; then
# /etc/os-release is available on RHEL/CentOS 7+
base_distro=fedora
elif [[ -e /etc/debian_version ]]; then
# /etc/os-release is available on Debian 7+
base_distro=debian
elif [[ -e /etc/os-release ]]; then
if grep -Eq '^ID_LIKE=' /etc/os-release; then
base_distro=$(grep -E '^ID_LIKE=' /etc/os-release | cut -d= -f2)
case "${base_distro}" in
@@ -463,12 +486,6 @@ case "$(uname -s)" in
base_distro=$(grep -E '^ID=' /etc/os-release | cut -d= -f2)
fi
base_distro="${base_distro//\"/}"
elif [[ -e /etc/redhat-release ]]; then
# /etc/os-release is available on RHEL/CentOS 7+
base_distro=fedora
elif [[ -e /etc/debian_version ]]; then
# /etc/os-release is available on Debian 7+
base_distro=debian
fi
case "${base_distro}" in
fedora)

37
manifests/cargo-deb.json generated Normal file
View File

@@ -0,0 +1,37 @@
{
"rust_crate": "cargo-deb",
"template": {
"x86_64_linux_gnu": {
"url": "https://github.com/kornelski/cargo-deb/releases/download/v${version}/cargo-deb_${version}-1_amd64.deb",
"bin": "usr/bin/cargo-deb"
}
},
"license_markdown": "[MIT](https://github.com/kornelski/cargo-deb/blob/main/LICENSE)",
"latest": {
"version": "3.6.3"
},
"3": {
"version": "3.6.3"
},
"3.6": {
"version": "3.6.3"
},
"3.6.3": {
"x86_64_linux_gnu": {
"etag": "0x8DE63F58EBB06E1",
"hash": "e4b8c1a499a8f4e5b96d72f0d1ec9da8005ba379aee95aaeef83860991c831c3"
}
},
"3.6.2": {
"x86_64_linux_gnu": {
"etag": "0x8DE0A5D04840934",
"hash": "a0053e0089f0efb194013e9629087c247d1de6cb439b7381b4109e21153b991e"
}
},
"3.6.1": {
"x86_64_linux_gnu": {
"etag": "0x8DDE4DDD98766C4",
"hash": "c7c890cc90dae8c4f5f9ad0ff3d7675fec74fbb57ff89c4f27cfbbab34676e93"
}
}
}

View File

@@ -5,6 +5,50 @@
"latest": {
"version": "0.6.0"
},
"0.8.0": {
"x86_64_linux_musl": {
"url": "https://github.com/uutils/coreutils/releases/download/0.8.0/coreutils-0.8.0-x86_64-unknown-linux-musl.tar.gz",
"etag": "0x8DE941D3DECEE20",
"hash": "b8977997a49b677169f7ce65bfc2ad658d4943c4f02f0493b1a802137202b0bf",
"bin": "coreutils-0.8.0-x86_64-unknown-linux-musl/coreutils"
},
"x86_64_macos": {
"url": "https://github.com/uutils/coreutils/releases/download/0.8.0/coreutils-0.8.0-x86_64-apple-darwin.tar.gz",
"etag": "0x8DE941DCF25AA9A",
"hash": "8ac6299b298eb3ba995973b42aece162578e19f9243425a5945d9c4bd8135b0a",
"bin": "coreutils-0.8.0-x86_64-apple-darwin/coreutils"
},
"x86_64_windows": {
"url": "https://github.com/uutils/coreutils/releases/download/0.8.0/coreutils-0.8.0-x86_64-pc-windows-msvc.zip",
"etag": "0x8DE941D6E03C003",
"hash": "db464cf2a6ecbfd42c85f46ed2d749be574df4df47feca1f08988fd760f324f3",
"bin": "coreutils-0.8.0-x86_64-pc-windows-msvc/coreutils.exe"
},
"aarch64_linux_musl": {
"url": "https://github.com/uutils/coreutils/releases/download/0.8.0/coreutils-0.8.0-aarch64-unknown-linux-musl.tar.gz",
"etag": "0x8DE941C4BA7DC07",
"hash": "e592200ef784deecc5ac2328b0617422c89f62b9bb841eb114528ed938ccb725",
"bin": "coreutils-0.8.0-aarch64-unknown-linux-musl/coreutils"
},
"aarch64_macos": {
"url": "https://github.com/uutils/coreutils/releases/download/0.8.0/coreutils-0.8.0-aarch64-apple-darwin.tar.gz",
"etag": "0x8DE941D614F7398",
"hash": "add95b420f9f1b69a0a7cb7b2672648fc72cf1294384344791e8e064bdc5e8c2",
"bin": "coreutils-0.8.0-aarch64-apple-darwin/coreutils"
},
"aarch64_windows": {
"url": "https://github.com/uutils/coreutils/releases/download/0.8.0/coreutils-0.8.0-aarch64-pc-windows-msvc.zip",
"etag": "0x8DE941BAE10C59A",
"hash": "1dfa62f18b64c70b664936b06fb1be20f0f6afa9ff041dd95dda629e987435a9",
"bin": "coreutils-0.8.0-aarch64-pc-windows-msvc/coreutils.exe"
},
"riscv64_linux_musl": {
"url": "https://github.com/uutils/coreutils/releases/download/0.8.0/coreutils-0.8.0-riscv64gc-unknown-linux-musl.tar.gz",
"etag": "0x8DE941BF13F7832",
"hash": "6e6c8823d7319f0d83a932515e248df0eb531e07f3a9193aaf05fdfb9dd63698",
"bin": "coreutils-0.8.0-riscv64gc-unknown-linux-musl/coreutils"
}
},
"0.7.0": {
"x86_64_linux_musl": {
"url": "https://github.com/uutils/coreutils/releases/download/0.7.0/coreutils-0.7.0-x86_64-unknown-linux-musl.tar.gz",

7
manifests/just.json generated
View File

@@ -22,10 +22,13 @@
},
"license_markdown": "[CC0-1.0](https://github.com/casey/just/blob/master/LICENSE)",
"latest": {
"version": "1.48.1"
"version": "1.49.0"
},
"1": {
"version": "1.48.1"
"version": "1.49.0"
},
"1.49": {
"version": "1.49.0"
},
"1.49.0": {
"x86_64_linux_musl": {

32
manifests/mise.json generated
View File

@@ -28,13 +28,39 @@
},
"license_markdown": "[MIT](https://github.com/jdx/mise/blob/main/LICENSE)",
"latest": {
"version": "2026.4.3"
"version": "2026.4.5"
},
"2026": {
"version": "2026.4.3"
"version": "2026.4.5"
},
"2026.4": {
"version": "2026.4.3"
"version": "2026.4.5"
},
"2026.4.5": {
"x86_64_linux_musl": {
"etag": "0x8DE93CF28627B72",
"hash": "8fa8eb3f3df6054089c1b8d8ab328927add851216053f83e681374f0cf34e4aa"
},
"x86_64_macos": {
"etag": "0x8DE93CF2AE7FEDD",
"hash": "a6915b8b25548a1556a3880a3d2f75dd8544ccd67ce49cc70f13661fa4eee24c"
},
"x86_64_windows": {
"etag": "0x8DE93CF2BA1F279",
"hash": "f379f668f5c51e27fab90a70007d7b5140bbabae1a78be85ef9ddef243c936b6"
},
"aarch64_linux_musl": {
"etag": "0x8DE93CF253B2C4C",
"hash": "384fe2cf9864b1bd0c91beb65c38a0d59b01c7ce1d82f05bd6ea5136e119a6c2"
},
"aarch64_macos": {
"etag": "0x8DE93CF29D221B3",
"hash": "e2b3e912ab9405daacb79ac283a99ad5b1a04667ad4c0a69dd7ab406ba0ceba9"
},
"aarch64_windows": {
"etag": "0x8DE93CF2B2BC09D",
"hash": "0dd01e1e456e79db7de39a135e8d73218841d9489b69560ce9e010141b3f21ae"
}
},
"2026.4.4": {
"x86_64_linux_musl": {

22
manifests/shfmt.json generated
View File

@@ -27,6 +27,28 @@
"3.13": {
"version": "3.13.0"
},
"3.13.1": {
"x86_64_linux_musl": {
"etag": "0x8DE9425968D392A",
"hash": "fb096c5d1ac6beabbdbaa2874d025badb03ee07929f0c9ff67563ce8c75398b1"
},
"x86_64_macos": {
"etag": "0x8DE9425982BD0F0",
"hash": "6feedafc72915794163114f512348e2437d080d0047ef8b8fa2ec63b575f12af"
},
"x86_64_windows": {
"etag": "0x8DE942594A8E60E",
"hash": "60cd368533d0ad73fa86d93d5bbf95ef40587245ce684ed138c1b31557b5fe97"
},
"aarch64_linux_musl": {
"etag": "0x8DE942595A9A537",
"hash": "32d92acaa5cd8abb29fc49dac123dc412442d5713967819d8af2c29f1b3857c7"
},
"aarch64_macos": {
"etag": "0x8DE9425979B56CB",
"hash": "9680526be4a66ea1ffe988ed08af58e1400fe1e4f4aef5bd88b20bb9b3da33f8"
}
},
"3.13.0": {
"x86_64_linux_musl": {
"etag": "0x8DE7DC7C27DBB2E",

30
manifests/tombi.json generated
View File

@@ -22,10 +22,36 @@
},
"license_markdown": "[MIT](https://github.com/tombi-toml/tombi/blob/main/LICENSE)",
"latest": {
"version": "0.9.14"
"version": "0.9.15"
},
"0.9": {
"version": "0.9.14"
"version": "0.9.15"
},
"0.9.15": {
"x86_64_linux_musl": {
"etag": "0x8DE93A3FAF30C3B",
"hash": "5be8b5d8d01044d135d9a08b407ad08ca1a6c7fd2e214eb892442968cdca7cf5"
},
"x86_64_macos": {
"etag": "0x8DE93A3FB045DDD",
"hash": "3cf44fa8853b08c895d72583303a3fc402a97c933869c517a006f9b72c30819b"
},
"x86_64_windows": {
"etag": "0x8DE93A3FB001D02",
"hash": "6fd8dde2c095ac060c22a1797377c8b30c7e6f6fb56a4a4dde482303e5ec62f0"
},
"aarch64_linux_musl": {
"etag": "0x8DE93A3FB846F95",
"hash": "ba5b907a945a40aa544ba1519434037018fd88b25d2134882c3e774e4702499a"
},
"aarch64_macos": {
"etag": "0x8DE93A3FAF6D883",
"hash": "d9235496e896874ab8799b4d7efa9c8dff61962478bce6647dbbb81b1937e822"
},
"aarch64_windows": {
"etag": "0x8DE93A3FB6A2752",
"hash": "015b47b6d266c49cd6b7d43b4bae82726be6134971dd2232092b020d555b9976"
}
},
"0.9.14": {
"x86_64_linux_musl": {

View File

@@ -8,6 +8,7 @@ cd -- "$(dirname -- "$0")"/../..
# They don't provide prebuilt binaries for musl or old glibc host.
# version `GLIBC_2.35' not found
glibc_pre_2_39_incompat=(
cargo-deb
zizmor
)
glibc_pre_2_35_incompat=(
@@ -116,6 +117,9 @@ case "$(uname -s)" in
if [[ "${runner}" == "ubuntu:14.04" ]]; then
incompat_tools+=(cyclonedx)
fi
if [[ "${runner}" == "almalinux:10"* ]]; then
incompat_tools+=(cargo-deb) # no dpkg in package manager
fi
;;
Darwin) host_os=macos ;;
MINGW* | MSYS* | CYGWIN* | Windows_NT) host_os=windows ;;

View File

@@ -0,0 +1,12 @@
{
"repository": "https://github.com/kornelski/cargo-deb",
"license_markdown": "[MIT](https://github.com/kornelski/cargo-deb/blob/main/LICENSE)",
"tag_prefix": "v",
"rust_crate": "${package}",
"platform": {
"x86_64_linux_gnu": {
"asset_name": "${package}_${version}-1_amd64.deb",
"bin": "usr/bin/${package}"
}
}
}