mirror of
https://github.com/taiki-e/install-action.git
synced 2026-04-28 10:00:26 +00:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a86da1a3cb | ||
|
|
1668c0c558 | ||
|
|
a779dafd49 | ||
|
|
2a650b8687 | ||
|
|
656b4969d3 | ||
|
|
52b84660a3 | ||
|
|
84ccb7b697 | ||
|
|
63d5217a35 | ||
|
|
cf1be1a00f | ||
|
|
444e3608dd | ||
|
|
716fb8f756 | ||
|
|
870e4de1b5 |
1
.github/.cspell/project-dictionary.txt
vendored
1
.github/.cspell/project-dictionary.txt
vendored
@@ -24,6 +24,7 @@ protoc
|
||||
pwsh
|
||||
quickinstall
|
||||
rclone
|
||||
rootfs
|
||||
sccache
|
||||
syft
|
||||
udeps
|
||||
|
||||
24
.github/workflows/ci.yml
vendored
24
.github/workflows/ci.yml
vendored
@@ -25,7 +25,7 @@ env:
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
shell: bash --noprofile --norc -CeEuxo pipefail {0}
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
||||
@@ -68,6 +68,11 @@ jobs:
|
||||
bash: msys64
|
||||
- os: windows-2022
|
||||
bash: cygwin
|
||||
- os: windows-2025
|
||||
- os: windows-2025
|
||||
bash: msys64
|
||||
- os: windows-2025
|
||||
bash: cygwin
|
||||
- os: windows-2022
|
||||
tool: major.minor.patch
|
||||
- os: windows-2022
|
||||
@@ -79,7 +84,7 @@ jobs:
|
||||
steps:
|
||||
- uses: taiki-e/checkout-action@v1
|
||||
# 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
|
||||
id: tool-list
|
||||
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)
|
||||
- archlinux:latest # glibc 2.39 (as of 2024-07-19)
|
||||
- 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
|
||||
timeout-minutes: 60
|
||||
container: ${{ matrix.container }}
|
||||
steps:
|
||||
- name: Install requirements (old debian)
|
||||
run: |
|
||||
set -CeEuxo pipefail
|
||||
# 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' \
|
||||
-e 's|security.debian.org|archive.debian.org/|g' \
|
||||
@@ -168,7 +173,6 @@ jobs:
|
||||
if: startsWith(matrix.container, 'debian:9')
|
||||
- name: Install requirements (centos)
|
||||
run: |
|
||||
set -CeEuxo pipefail
|
||||
# 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!' \
|
||||
@@ -191,7 +195,7 @@ jobs:
|
||||
if: startsWith(matrix.container, 'centos')
|
||||
- uses: taiki-e/checkout-action@v1
|
||||
# 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
|
||||
id: tool-list
|
||||
run: tools/ci/tool-list.sh >>"${GITHUB_OUTPUT}"
|
||||
@@ -204,6 +208,16 @@ jobs:
|
||||
tool: ${{ steps.tool-list.outputs.tool }}
|
||||
env:
|
||||
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:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@@ -10,7 +10,7 @@ on:
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
shell: bash --noprofile --norc -CeEuxo pipefail {0}
|
||||
|
||||
jobs:
|
||||
create-release:
|
||||
|
||||
27
CHANGELOG.md
27
CHANGELOG.md
@@ -10,6 +10,26 @@ Note: In this file, do not use the hard wrap in the middle of a sentence for com
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [2.47.7] - 2025-01-03
|
||||
|
||||
- Update `typos@latest` to 1.29.4.
|
||||
|
||||
## [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
|
||||
|
||||
- Update `typos@latest` to 1.29.0.
|
||||
@@ -3274,7 +3294,12 @@ Note: This release is considered a breaking change because installing on version
|
||||
|
||||
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.7...HEAD
|
||||
[2.47.7]: https://github.com/taiki-e/install-action/compare/v2.47.6...v2.47.7
|
||||
[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.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
|
||||
|
||||
30
manifests/knope.json
generated
30
manifests/knope.json
generated
@@ -3,10 +3,36 @@
|
||||
"template": null,
|
||||
"license_markdown": "[MIT](https://github.com/knope-dev/knope/blob/main/LICENSE)",
|
||||
"latest": {
|
||||
"version": "0.18.1"
|
||||
"version": "0.18.2"
|
||||
},
|
||||
"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": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
60
manifests/typos.json
generated
60
manifests/typos.json
generated
@@ -16,13 +16,67 @@
|
||||
},
|
||||
"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": {
|
||||
"version": "1.29.0"
|
||||
"version": "1.29.4"
|
||||
},
|
||||
"1": {
|
||||
"version": "1.29.0"
|
||||
"version": "1.29.4"
|
||||
},
|
||||
"1.29": {
|
||||
"version": "1.29.0"
|
||||
"version": "1.29.4"
|
||||
},
|
||||
"1.29.4": {
|
||||
"x86_64_linux_musl": {
|
||||
"etag": "0x8DD2BFEF497C99A",
|
||||
"checksum": "5eebaff491e2d503b225751e461bcba849efc19c6075f780b45887920a2e3506"
|
||||
},
|
||||
"x86_64_macos": {
|
||||
"etag": "0x8DD2BFF38DE029E",
|
||||
"checksum": "8f4b7d97ea6bf5ed1e9f4545cab39886373b07766a00edbef10de2f567d3762e"
|
||||
},
|
||||
"x86_64_windows": {
|
||||
"etag": "0x8DD2BFF400FE29A",
|
||||
"checksum": "bac4aef428259aca9c99286d99921dc09da6032afc6d54ba0334615991adbb26"
|
||||
},
|
||||
"aarch64_macos": {
|
||||
"etag": "0x8DD2BFF45584668",
|
||||
"checksum": "8701cd7ed32c61dda3fe5fbd5516d63d5daeecb377ac0d1cc149d9e88ff87975"
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
26
manifests/xh.json
generated
26
manifests/xh.json
generated
@@ -24,10 +24,32 @@
|
||||
},
|
||||
"license_markdown": "[MIT](https://github.com/ducaale/xh/blob/master/LICENSE)",
|
||||
"latest": {
|
||||
"version": "0.23.0"
|
||||
"version": "0.23.1"
|
||||
},
|
||||
"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": {
|
||||
"x86_64_linux_musl": {
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
# SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
set -eEuo pipefail
|
||||
set -CeEuo pipefail
|
||||
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() {
|
||||
echo >&2 "error: $*"
|
||||
printf >&2 'error: %s\n' "$*"
|
||||
exit 1
|
||||
}
|
||||
|
||||
@@ -13,15 +14,17 @@ 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"
|
||||
git config user.name 'Taiki Endo'
|
||||
git config user.email 'te316e89@gmail.com'
|
||||
|
||||
set -x
|
||||
|
||||
has_update=''
|
||||
for manifest in manifests/*.json; do
|
||||
git add -N "${manifest}"
|
||||
if ! git diff --exit-code -- "${manifest}"; then
|
||||
name=$(basename "${manifest%.*}")
|
||||
name="${manifest##*/}"
|
||||
name="${name%.*}"
|
||||
git stash
|
||||
old_version=$(jq -r '.latest.version' "${manifest}")
|
||||
git stash pop
|
||||
@@ -29,7 +32,7 @@ for manifest in manifests/*.json; do
|
||||
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
|
||||
sed -Ei "s/^## \\[Unreleased\\]/## [Unreleased]\\n\\n- ${msg}./" CHANGELOG.md
|
||||
git add "${manifest}" CHANGELOG.md
|
||||
else
|
||||
msg="Update ${name} manifest"
|
||||
@@ -40,6 +43,6 @@ for manifest in manifests/*.json; do
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ -n "${has_update:-}" ]] && [[ -n "${GITHUB_OUTPUT:-}" ]]; then
|
||||
echo "success=false" >>"${GITHUB_OUTPUT}"
|
||||
if [[ -n "${has_update}" ]] && [[ -n "${GITHUB_OUTPUT:-}" ]]; then
|
||||
printf 'success=false\n' >>"${GITHUB_OUTPUT}"
|
||||
fi
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
# SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
set -eEuo pipefail
|
||||
set -CeEuo pipefail
|
||||
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.
|
||||
# version `GLIBC_2.34' not found
|
||||
@@ -53,7 +54,7 @@ case "${1:-}" in
|
||||
incompat_tools+=(valgrind cargo-binstall)
|
||||
;;
|
||||
*)
|
||||
echo "tool=$1"
|
||||
printf 'tool=%s\n', "$1"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
@@ -63,7 +64,7 @@ case "$(uname -s)" in
|
||||
Linux)
|
||||
host_os=linux
|
||||
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[@]}")
|
||||
else
|
||||
host_glibc_version=$(grep -E "GLIBC|GNU libc" <<<"${ldd_version}" | sed "s/.* //g")
|
||||
@@ -92,7 +93,7 @@ case "$(uname -s)" in
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if ! type -P snap &>/dev/null; then
|
||||
if ! type -P snap >/dev/null; then
|
||||
incompat_tools+=(valgrind)
|
||||
fi
|
||||
;;
|
||||
@@ -112,9 +113,10 @@ esac
|
||||
|
||||
tools=()
|
||||
for manifest in tools/codegen/base/*.json; do
|
||||
tool_name=$(basename "${manifest%.*}")
|
||||
tool_name="${manifest##*/}"
|
||||
tool_name="${tool_name%.*}"
|
||||
# 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
|
||||
fi
|
||||
case "${host_os}" in
|
||||
@@ -133,7 +135,7 @@ for manifest in tools/codegen/base/*.json; do
|
||||
done
|
||||
if [[ -n "${tool_name}" ]]; 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
|
||||
major.minor.patch) tool_name+="@${latest_version}" ;;
|
||||
major.minor) tool_name+="@${latest_version%.*}" ;;
|
||||
@@ -159,7 +161,7 @@ case "${host_os}" in
|
||||
linux*)
|
||||
# Installing snap to container is difficult...
|
||||
# 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)
|
||||
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.
|
||||
IFS=','
|
||||
echo "tool=${tools[*]}"
|
||||
printf 'tool=%s\n' "${tools[*]}"
|
||||
IFS=$'\n\t'
|
||||
|
||||
Reference in New Issue
Block a user