Compare commits

...

32 Commits

Author SHA1 Message Date
Taiki Endo
eab2c9a639 dev
TODO:

```
/__w/install-action/install-action/.//main.sh: line 81: syntax error: unexpected "(" (expecting "}")
```
2026-02-14 19:24:16 +09:00
Taiki Endo
04da82019b ci: Test more alpine containers 2026-02-14 18:44:28 +09:00
Taiki Endo
d22c04db3c Revert "ci: Temporarily disable cygwin test"
This reverts commit 3f8c36b267.
2026-02-14 18:43:15 +09:00
Taiki Endo
288875dd3d Release 2.67.30 2026-02-14 04:13:16 +09:00
Taiki Endo
ff61ba777f Update cargo-nextest@latest to 0.9.127 2026-02-14 04:12:09 +09:00
Taiki Endo
443c943e8c docs: Add note about tools installed by this action's side 2026-02-14 04:00:03 +09:00
dependabot[bot]
44ad71dd7c codegen: Update toml requirement from 0.9 to 1 (#1512)
Updates the requirements on [toml](https://github.com/toml-rs/toml) to permit the latest version.
- [Commits](https://github.com/toml-rs/toml/compare/toml-v0.9.0...toml-v1.0.0)

---
updated-dependencies:
- dependency-name: toml
  dependency-version: 1.0.0+spec-1.1.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Taiki Endo <te316e89@gmail.com>
2026-02-13 16:23:28 +00:00
Taiki Endo
541dbe11e2 Release 2.67.29 2026-02-14 01:11:33 +09:00
Taiki Endo
3f8c36b267 ci: Temporarily disable cygwin test
```
+ choco install --no-progress --requirechecksums cygwin
Chocolatey v2.6.0
Installing the following packages:
cygwin
By installing, you accept licenses for the packages.
Downloading package from source 'https://community.chocolatey.org/api/v2/'

Cygwin v3.6.6 [Approved]
Cygwin package files install completed. Performing other installation steps.
Download site: http://mirrors.kernel.org/sourceware/cygwin/
Installing 64-bit Cygwin...
ERROR: Running ["C:\ProgramData\chocolatey\lib\Cygwin\tools\setup-x86_64.exe" --quiet-mode --site "http://mirrors.kernel.org/sourceware/cygwin/" --packages default --root "C:\tools\cygwin" --local-package-dir "C:\tools\cygwin" --no-desktop] was not successful. Exit code was '1'. See log for possible error messages.
Environment Vars (like PATH) have changed. Close/reopen your shell to
 see the changes (or in powershell/cmd.exe just type `refreshenv`).
The install of Cygwin was NOT successful.
Error while running 'C:\ProgramData\chocolatey\lib\Cygwin\tools\chocolateyInstall.ps1'.
 See log for details.

Chocolatey installed 0/1 packages. 1 packages failed.
 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

Failures
 - Cygwin (exited 1) - Error while running 'C:\ProgramData\chocolatey\lib\Cygwin\tools\chocolateyInstall.ps1'.
 See log for details.

Did you know the proceeds of Pro (and some proceeds from other
 licensed editions) go into bettering the community infrastructure?
 Your support ensures an active community, keeps Chocolatey tip-top,
 plus it nets you some awesome features!
 https://chocolatey.org/compare
```
2026-02-14 01:10:54 +09:00
Taiki Endo
8c4bfde290 Update mise@latest to 2026.2.11 2026-02-14 01:10:54 +09:00
Taiki Endo
5516699334 Update cargo-no-dev-deps@latest to 0.2.21 2026-02-14 01:10:54 +09:00
Taiki Endo
26d534b7cc Update cargo-minimal-versions@latest to 0.1.36 2026-02-14 01:10:54 +09:00
Taiki Endo
21162aa73c Update cargo-hack@latest to 0.6.43 2026-02-14 01:10:54 +09:00
Taiki Endo
5225800240 Update cargo-binstall@latest to 1.17.5 2026-02-14 01:10:54 +09:00
Taiki Endo
3035223527 Update osv-scanner@latest to 2.3.3 2026-02-12 09:50:19 +09:00
Taiki Endo
61e7476da0 Update martin@latest to 1.3.1 2026-02-12 09:50:19 +09:00
Taiki Endo
1d1c9eea2b Update parse-dockerfile@latest to 0.1.4 2026-02-12 09:36:19 +09:00
Taiki Endo
0fca428425 ci: Use taiki-e/github-actions/.github/workflows/gen.yml reusable workflow 2026-02-11 20:37:31 +09:00
Taiki Endo
d4422f254e Release 2.67.28 2026-02-11 11:41:01 +09:00
Taiki Endo
8eb8df0dff Update changelog 2026-02-11 11:40:18 +09:00
Taiki Endo
f2dad83b41 Update uv@latest to 0.10.2 2026-02-11 06:30:27 +09:00
Taiki Endo
d3525148a0 Update uv@latest to 0.10.1 2026-02-11 03:39:26 +09:00
Taiki Endo
1bd9eee811 Update syft@latest to 1.42.0 2026-02-11 03:39:26 +09:00
Taiki Endo
d7ea18b7d4 Update mise@latest to 2026.2.9 2026-02-11 03:39:26 +09:00
Taiki Endo
4bab704860 Update cyclonedx@latest to 0.30.0 2026-02-11 03:39:26 +09:00
Taiki Endo
1e67dedb5e Release 2.67.27 2026-02-10 02:14:39 +09:00
Taiki Endo
b0cd8d3751 Update sccache@latest to 0.14.0 2026-02-10 00:34:09 +09:00
Taiki Endo
7b52b108a0 Update typos@latest to 1.43.4 2026-02-10 00:12:39 +09:00
Taiki Endo
292e521d7c tools: Update tidy.sh 2026-02-09 23:35:14 +09:00
Taiki Endo
c9244c19ac manifest-schema: Disable std prelude 2026-02-09 23:34:12 +09:00
Taiki Endo
672b40bb62 manifest-schema: Apply clippy to doctest
96af4dc514
2026-02-09 23:32:23 +09:00
Taiki Endo
783ca381c0 Update mise@latest to 2026.2.8 2026-02-09 21:33:46 +09:00
24 changed files with 718 additions and 141 deletions

View File

@@ -2,6 +2,7 @@ almalinux
archlinux archlinux
binstall binstall
callgrind callgrind
Ceuo
coreutils coreutils
cyclonedx cyclonedx
cygdrive cygdrive

View File

@@ -10,6 +10,7 @@ on:
- main - main
- dev - dev
- ci-* - ci-*
- busybox
schedule: schedule:
- cron: '0 0 * * *' - cron: '0 0 * * *'
workflow_dispatch: workflow_dispatch:
@@ -231,7 +232,17 @@ jobs:
- opensuse/leap:latest # glibc 2.38 (as of leap 15.6) - opensuse/leap:latest # glibc 2.38 (as of leap 15.6)
- 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:3.2 # musl 1.1.11, busybox 1.23.2
- alpine:3.14 # musl 1.2.2, busybox 1.33.1
- alpine:3.15 # musl 1.2.2, busybox 1.34.1
- alpine:3.16 # musl 1.2.3, busybox 1.35.0
- alpine:3.17 # musl 1.2.3, busybox 1.35.0
- alpine:3.18 # musl 1.2.4, busybox 1.36.1
- alpine:3.19 # musl 1.2.4, busybox 1.36.1
- alpine:3.20 # musl 1.2.5, busybox 1.36.1
- alpine:3.21 # musl 1.2.5, busybox 1.37.0
- alpine:3.22 # musl 1.2.5, busybox 1.37.0
- alpine:3.23 # musl 1.2.5, busybox 1.37.0
# - openwrt/rootfs:x86-64-openwrt-24.10 # musl 1.2.5 # - 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
@@ -282,6 +293,9 @@ 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 }}
- run: apk --no-cache add bash
shell: sh
if: startsWith(matrix.container, 'alpine')
- name: Test bash - name: Test bash
run: just --version && shfmt --version run: just --version && shfmt --version
shell: bash shell: bash

View File

@@ -33,47 +33,18 @@ concurrency:
jobs: jobs:
manifest: manifest:
runs-on: ubuntu-latest uses: taiki-e/github-actions/.github/workflows/gen.yml@main
timeout-minutes: 60
permissions: permissions:
contents: read contents: read
pull-requests: write # for gh pr review --approve pull-requests: write # for gh pr edit --add-assignee / gh pr review --approve
steps: repository-projects: read # for gh pr edit --add-assignee
- uses: taiki-e/checkout-action@v1 secrets: inherit
- uses: taiki-e/github-actions/install-rust@stable with:
- name: Generate Cargo.lock script: tools/manifest.sh
run: cargo update commit-script: tools/ci/manifest.sh
- uses: Swatinem/rust-cache@v2 title: Update manifest
with: branch: update-manifest
cache-all-crates: 'true' automerge: true
- run: tools/manifest.sh install-rust: true
env: rust: stable
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} rust-cache: true
- name: Handle diff
id: diff
run: tools/ci/manifest.sh
if: github.repository_owner == 'taiki-e' && (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || github.event_name == 'push' && github.ref == 'refs/heads/main')
- run: git add -N . && git -c color.ui=always diff --exit-code
- id: create-pull-request
uses: peter-evans/create-pull-request@v8
with:
title: Update manifest
body: |
Auto-generated by CI using [create-pull-request](https://github.com/peter-evans/create-pull-request).
This will be auto-merged when CI has passed because this is an auto-generated PR in a defined format and is usually considered no additional review is required.
branch: update-manifest
token: ${{ secrets.CREATE_PR_TOKEN }}
if: github.repository_owner == 'taiki-e' && (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || github.event_name == 'push' && github.ref == 'refs/heads/main') && steps.diff.outputs.success == 'false'
- name: Enable auto-merge for auto-generated PR
run: gh pr merge --rebase --auto "${PR_NUMBER:?}"
env:
GITHUB_TOKEN: ${{ secrets.CREATE_PR_TOKEN }}
PR_NUMBER: ${{ steps.create-pull-request.outputs.pull-request-number }}
if: github.repository_owner == 'taiki-e' && (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || github.event_name == 'push' && github.ref == 'refs/heads/main') && steps.diff.outputs.success == 'false' && steps.create-pull-request.outputs.pull-request-operation == 'created'
- name: Approve auto-generated PR for auto-merge
run: gh pr review --approve "${PR_NUMBER:?}"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PR_NUMBER: ${{ steps.create-pull-request.outputs.pull-request-number }}
if: github.repository_owner == 'taiki-e' && (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || github.event_name == 'push' && github.ref == 'refs/heads/main') && steps.diff.outputs.success == 'false' && (steps.create-pull-request.outputs.pull-request-operation == 'created' || steps.create-pull-request.outputs.pull-request-operation == 'updated')

View File

@@ -10,6 +10,46 @@ Note: In this file, do not use the hard wrap in the middle of a sentence for com
## [Unreleased] ## [Unreleased]
## [2.67.30] - 2026-02-13
- Update `cargo-nextest@latest` to 0.9.127.
## [2.67.29] - 2026-02-13
- Update `mise@latest` to 2026.2.11.
- Update `cargo-no-dev-deps@latest` to 0.2.21.
- Update `cargo-minimal-versions@latest` to 0.1.36.
- Update `cargo-hack@latest` to 0.6.43.
- Update `cargo-binstall@latest` to 1.17.5.
- Update `osv-scanner@latest` to 2.3.3.
- Update `martin@latest` to 1.3.1.
- Update `parse-dockerfile@latest` to 0.1.4.
## [2.67.28] - 2026-02-11
- Update `uv@latest` to 0.10.2.
- Update `syft@latest` to 1.42.0.
- Update `mise@latest` to 2026.2.9.
- Update `cyclonedx@latest` to 0.30.0.
## [2.67.27] - 2026-02-09
- Update `sccache@latest` to 0.14.0.
- Update `typos@latest` to 1.43.4.
- Update `mise@latest` to 2026.2.8.
## [2.67.26] - 2026-02-09 ## [2.67.26] - 2026-02-09
- Update `tombi@latest` to 0.7.28. - Update `tombi@latest` to 0.7.28.
@@ -5607,7 +5647,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.67.26...HEAD [Unreleased]: https://github.com/taiki-e/install-action/compare/v2.67.30...HEAD
[2.67.30]: https://github.com/taiki-e/install-action/compare/v2.67.29...v2.67.30
[2.67.29]: https://github.com/taiki-e/install-action/compare/v2.67.28...v2.67.29
[2.67.28]: https://github.com/taiki-e/install-action/compare/v2.67.27...v2.67.28
[2.67.27]: https://github.com/taiki-e/install-action/compare/v2.67.26...v2.67.27
[2.67.26]: https://github.com/taiki-e/install-action/compare/v2.67.25...v2.67.26 [2.67.26]: https://github.com/taiki-e/install-action/compare/v2.67.25...v2.67.26
[2.67.25]: https://github.com/taiki-e/install-action/compare/v2.67.24...v2.67.25 [2.67.25]: https://github.com/taiki-e/install-action/compare/v2.67.24...v2.67.25
[2.67.24]: https://github.com/taiki-e/install-action/compare/v2.67.23...v2.67.24 [2.67.24]: https://github.com/taiki-e/install-action/compare/v2.67.23...v2.67.24

View File

@@ -118,12 +118,14 @@ On Linux, if any required tools are missing, this action will attempt to install
On other platforms, at least the following tools are required: On other platforms, at least the following tools are required:
- bash 3.2+ - bash 3.2+ (or busybox on Linux)
- jq 1.3+ (only on non-Windows platforms) - jq 1.3+ (only on non-Windows platforms)
- curl 7.34+ (or RHEL7/CentOS7's patched curl 7.29) - curl 7.34+ (or RHEL7/CentOS7's patched curl 7.29)
Known environments affected by the above version requirements are CentOS 6 (EoL on 2020-11) using curl 7.19, and Ubuntu 12.04 (EoL on 2017-04) using curl 7.22 (see "Install requirements" in [our CI config](https://github.com/taiki-e/install-action/blob/HEAD/.github/workflows/ci.yml) for example of workaround). Known environments affected by the above version requirements are CentOS 6 (EoL on 2020-11) using curl 7.19, and Ubuntu 12.04 (EoL on 2017-04) using curl 7.22 (see "Install requirements" in [our CI config](https://github.com/taiki-e/install-action/blob/HEAD/.github/workflows/ci.yml) for example of workaround).
Note that what this action installs for its setup (such as above tools) is considered an implementation detail if they are installed by this action's side, and there is no guarantee that they will be available in subsequent steps, because this action is not an action for installing those tools.
## Related Projects ## Related Projects
- [cache-cargo-install-action]: GitHub Action for `cargo install` with cache. - [cache-cargo-install-action]: GitHub Action for `cargo install` with cache.

View File

@@ -21,32 +21,32 @@ inputs:
runs: runs:
using: composite using: composite
steps: steps:
- run: | - name: Prepare
id: prepare
run: |
set -eu set -eu
if ! command -v bash >/dev/null; then if ! command -v bash >/dev/null; then
if grep -Eq '^ID=alpine' /etc/os-release; then if command -v busybox >/dev/null; then
printf '::group::Install packages required for install-action (bash)\n' if test -n "${GITHUB_OUTPUT:-}"; then
# NB: sync with apk_install in main.sh printf 'shell=busybox sh -e {0}\n' >>"${GITHUB_OUTPUT}"
if command -v sudo >/dev/null; then exit
sudo apk --no-cache add bash
elif command -v doas >/dev/null; then
doas apk --no-cache add bash
else
apk --no-cache add bash
fi fi
printf '::endgroup::\n'
else
printf '::error::install-action requires bash\n'
exit 1
fi fi
printf '::error::install-action requires bash or busybox\n'
exit 1
fi fi
shell: sh shell: sh
if: runner.os == 'Linux' if: runner.os == 'Linux'
- run: bash --noprofile --norc "${GITHUB_ACTION_PATH:?}/main.sh" - run: |
shell: bash case "${CURRENT_SHELL}" in
busybox*) busybox sh "${GITHUB_ACTION_PATH:?}/main.sh" ;;
*) bash --noprofile --norc "${GITHUB_ACTION_PATH:?}/main.sh" ;;
esac
shell: ${{ steps.prepare.outputs.shell || 'bash' }}
env: env:
INPUT_TOOL: ${{ inputs.tool }} INPUT_TOOL: ${{ inputs.tool }}
INPUT_CHECKSUM: ${{ inputs.checksum }} INPUT_CHECKSUM: ${{ inputs.checksum }}
INPUT_FALLBACK: ${{ inputs.fallback }} INPUT_FALLBACK: ${{ inputs.fallback }}
DEFAULT_GITHUB_TOKEN: ${{ github.token }} DEFAULT_GITHUB_TOKEN: ${{ github.token }}
ACTION_USER_AGENT: ${{ github.action_repository }} (${{ github.action_ref }}) ACTION_USER_AGENT: ${{ github.action_repository }} (${{ github.action_ref }})
CURRENT_SHELL: ${{ steps.prepare.outputs.shell }}

57
main.sh
View File

@@ -1,6 +1,7 @@
#!/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 -CeEuo pipefail # Do not set -E as busybox 3.15 and older don't support it.
set -Ceuo pipefail
IFS=$'\n\t' IFS=$'\n\t'
rx() { rx() {
@@ -35,11 +36,11 @@ normalize_comma_or_space_separated() {
if [[ "${list}" == *","* ]]; then if [[ "${list}" == *","* ]]; then
# If a comma is contained, consider it is a comma-separated list. # If a comma is contained, consider it is a comma-separated list.
# Drop leading and trailing whitespaces in each element. # Drop leading and trailing whitespaces in each element.
sed -E 's/ *, */,/g; s/^.//' <<<",${list}," printf '%s\n' ",${list}," | sed -E 's/ *, */,/g; s/^.//'
else else
# Otherwise, consider it is a whitespace-separated list. # Otherwise, consider it is a whitespace-separated list.
# Convert whitespace characters into comma. # Convert whitespace characters into comma.
sed -E 's/ +/,/g; s/^.//' <<<" ${list} " printf '%s\n' " ${list} " | sed -E 's/ +/,/g; s/^.//'
fi fi
} }
_sudo() { _sudo() {
@@ -60,11 +61,11 @@ download_and_checksum() {
if [[ -n "${checksum}" ]]; then if [[ -n "${checksum}" ]]; then
info "verifying sha256 checksum for $(basename -- "${url}")" info "verifying sha256 checksum for $(basename -- "${url}")"
if type -P sha256sum >/dev/null; then if type -P sha256sum >/dev/null; then
sha256sum -c - >/dev/null <<<"${checksum} *tmp" printf '%s\n' "${checksum} *tmp" | sha256sum -c - >/dev/null
elif type -P shasum >/dev/null; then elif type -P shasum >/dev/null; then
# GitHub-hosted macOS runner does not install GNU Coreutils by default. # GitHub-hosted macOS runner does not install GNU Coreutils by default.
# https://github.com/actions/runner-images/issues/90 # https://github.com/actions/runner-images/issues/90
shasum -a 256 -c - >/dev/null <<<"${checksum} *tmp" printf '%s\n' "${checksum} *tmp" | shasum -a 256 -c - >/dev/null
else else
bail "checksum requires 'sha256sum' or 'shasum' command; consider installing one of them or setting 'checksum' input option to 'false'" bail "checksum requires 'sha256sum' or 'shasum' command; consider installing one of them or setting 'checksum' input option to 'false'"
fi fi
@@ -224,7 +225,7 @@ read_manifest() {
download_info="null" download_info="null"
return 0 return 0
fi fi
exact_version=$(jq -r '.version' <<<"${manifest}") exact_version=$(printf '%s\n' "${manifest}" | jq -r '.version')
if [[ "${exact_version}" == "null" ]]; then if [[ "${exact_version}" == "null" ]]; then
exact_version="${version}" exact_version="${version}"
else else
@@ -236,11 +237,11 @@ read_manifest() {
crate_info=$(curl -v --user-agent "${ACTION_USER_AGENT}" --proto '=https' --tlsv1.2 -fsSL --retry 10 "https://crates.io/api/v1/crates/${rust_crate}" || true) crate_info=$(curl -v --user-agent "${ACTION_USER_AGENT}" --proto '=https' --tlsv1.2 -fsSL --retry 10 "https://crates.io/api/v1/crates/${rust_crate}" || true)
if [[ -n "${crate_info}" ]]; then if [[ -n "${crate_info}" ]]; then
while true; do while true; do
yanked=$(jq -r ".versions[] | select(.num == \"${exact_version}\") | .yanked" <<<"${crate_info}") yanked=$(printf '%s\n' "${crate_info}" | jq -r ".versions[] | select(.num == \"${exact_version}\") | .yanked")
if [[ "${yanked}" != "true" ]]; then if [[ "${yanked}" != "true" ]]; then
break break
fi fi
previous_stable_version=$(jq -r '.previous_stable_version' <<<"${manifest}") previous_stable_version=$(printf '%s\n' "${manifest}" | jq -r '.previous_stable_version')
if [[ "${previous_stable_version}" == "null" ]]; then if [[ "${previous_stable_version}" == "null" ]]; then
break break
fi fi
@@ -260,26 +261,26 @@ read_manifest() {
# usually preferred over linux-gnu binaries because they can avoid glibc version issues. # usually preferred over linux-gnu binaries because they can avoid glibc version issues.
# (rustc enables statically linking for linux-musl by default, except for mips.) # (rustc enables statically linking for linux-musl by default, except for mips.)
host_platform="${host_arch}_linux_musl" host_platform="${host_arch}_linux_musl"
download_info=$(jq -r ".${host_platform}" <<<"${manifest}") download_info=$(printf '%s\n' "${manifest}" | jq -r ".${host_platform}")
if [[ "${download_info}" == "null" ]]; then if [[ "${download_info}" == "null" ]]; then
# Even if host_env is musl, we won't issue an error here because it seems that in # Even if host_env is musl, we won't issue an error here because it seems that in
# some cases linux-gnu binaries will work on linux-musl hosts. # some cases linux-gnu binaries will work on linux-musl hosts.
# https://wiki.alpinelinux.org/wiki/Running_glibc_programs # https://wiki.alpinelinux.org/wiki/Running_glibc_programs
# TODO: However, a warning may make sense. # TODO: However, a warning may make sense.
host_platform="${host_arch}_linux_gnu" host_platform="${host_arch}_linux_gnu"
download_info=$(jq -r ".${host_platform}" <<<"${manifest}") download_info=$(printf '%s\n' "${manifest}" | jq -r ".${host_platform}")
elif [[ "${host_env}" == "gnu" ]]; then elif [[ "${host_env}" == "gnu" ]]; then
# TODO: don't hardcode tool name and use 'prefer_linux_gnu' field in base manifest. # TODO: don't hardcode tool name and use 'prefer_linux_gnu' field in base manifest.
case "${tool}" in case "${tool}" in
cargo-nextest) cargo-nextest)
# TODO: don't hardcode required glibc version # TODO: don't hardcode required glibc version
required_glibc_version=2.27 required_glibc_version=2.27
higher_glibc_version=$(LC_ALL=C sort -Vu <<<"${required_glibc_version}"$'\n'"${host_glibc_version}" | tail -1) higher_glibc_version=$(printf '%s\n%s\n' "${required_glibc_version}" "${host_glibc_version}" | LC_ALL=C sort -Vu | tail -1)
if [[ "${higher_glibc_version}" == "${host_glibc_version}" ]]; then if [[ "${higher_glibc_version}" == "${host_glibc_version}" ]]; then
# musl build of nextest is slow, so use glibc build if host_env is gnu. # musl build of nextest is slow, so use glibc build if host_env is gnu.
# https://github.com/taiki-e/install-action/issues/13 # https://github.com/taiki-e/install-action/issues/13
host_platform="${host_arch}_linux_gnu" host_platform="${host_arch}_linux_gnu"
download_info=$(jq -r ".${host_platform}" <<<"${manifest}") download_info=$(printf '%s\n' "${manifest}" | jq -r ".${host_platform}")
fi fi
;; ;;
esac esac
@@ -289,10 +290,10 @@ read_manifest() {
# Binaries compiled for x86_64 macOS will usually also work on AArch64 macOS. # Binaries compiled for x86_64 macOS will usually also work on AArch64 macOS.
# Binaries compiled for x86_64 Windows will usually also work on AArch64 Windows 11+. # Binaries compiled for x86_64 Windows will usually also work on AArch64 Windows 11+.
host_platform="${host_arch}_${host_os}" host_platform="${host_arch}_${host_os}"
download_info=$(jq -r ".${host_platform}" <<<"${manifest}") download_info=$(printf '%s\n' "${manifest}" | jq -r ".${host_platform}")
if [[ "${download_info}" == "null" ]] && [[ "${host_arch}" != "x86_64" ]]; then if [[ "${download_info}" == "null" ]] && [[ "${host_arch}" != "x86_64" ]]; then
host_platform="x86_64_${host_os}" host_platform="x86_64_${host_os}"
download_info=$(jq -r ".${host_platform}" <<<"${manifest}") download_info=$(printf '%s\n' "${manifest}" | jq -r ".${host_platform}")
fi fi
;; ;;
*) bail "unsupported OS type '${host_os}' for ${tool}" ;; *) bail "unsupported OS type '${host_os}' for ${tool}" ;;
@@ -304,25 +305,25 @@ read_download_info() {
if [[ "${download_info}" == "null" ]]; then if [[ "${download_info}" == "null" ]]; then
bail "${tool}@${version} for '${host_os}' is not supported" bail "${tool}@${version} for '${host_os}' is not supported"
fi fi
checksum=$(jq -r '.checksum' <<<"${download_info}") checksum=$(printf '%s\n' "${download_info}" | jq -r '.checksum')
url=$(jq -r '.url' <<<"${download_info}") url=$(printf '%s\n' "${download_info}" | jq -r '.url')
local tmp local tmp
bin_in_archive=() bin_in_archive=()
if [[ "${url}" == "null" ]]; then if [[ "${url}" == "null" ]]; then
local template local template
template=$(jq -c ".template.${host_platform}" "${manifest_dir}/${tool}.json") template=$(jq -c ".template.${host_platform}" "${manifest_dir}/${tool}.json")
template="${template//\$\{version\}/${exact_version}}" template="${template//\$\{version\}/${exact_version}}"
url=$(jq -r '.url' <<<"${template}") url=$(printf '%s\n' "${template}" | jq -r '.url')
tmp=$(jq -r '.bin' <<<"${template}") tmp=$(printf '%s\n' "${template}" | jq -r '.bin')
if [[ "${tmp}" == *"["* ]]; then if [[ "${tmp}" == *"["* ]]; then
# shellcheck disable=SC2207 # shellcheck disable=SC2207
bin_in_archive=($(jq -r '.bin[]' <<<"${template}")) bin_in_archive=($(printf '%s\n' "${template}" | jq -r '.bin[]'))
fi fi
else else
tmp=$(jq -r '.bin' <<<"${download_info}") tmp=$(printf '%s\n' "${download_info}" | jq -r '.bin')
if [[ "${tmp}" == *"["* ]]; then if [[ "${tmp}" == *"["* ]]; then
# shellcheck disable=SC2207 # shellcheck disable=SC2207
bin_in_archive=($(jq -r '.bin[]' <<<"${download_info}")) bin_in_archive=($(printf '%s\n' "${download_info}" | jq -r '.bin[]'))
fi fi
fi fi
if [[ ${#bin_in_archive[@]} -eq 0 ]]; then if [[ ${#bin_in_archive[@]} -eq 0 ]]; then
@@ -431,7 +432,7 @@ init_install_action_bin_dir() {
} }
canonicalize_windows_path() { canonicalize_windows_path() {
case "${host_os}" in case "${host_os}" in
windows) sed -E 's/^\/cygdrive\//\//; s/^\/c\//C:\\/; s/\//\\/g' <<<"$1" ;; windows) printf '%s\n' "$1" | sed -E 's/^\/cygdrive\//\//; s/^\/c\//C:\\/; s/\//\\/g' ;;
*) printf '%s\n' "$1" ;; *) printf '%s\n' "$1" ;;
esac esac
} }
@@ -483,11 +484,11 @@ 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 -Fq musl <<<"${ldd_version}"; then if printf '%s\n' "${ldd_version}" | grep -Fq musl; then
host_env=musl host_env=musl
else else
host_env=gnu host_env=gnu
host_glibc_version=$(grep -E "GLIBC|GNU libc" <<<"${ldd_version}" | sed -E "s/.* //g") host_glibc_version=$(printf '%s\n' "${ldd_version}" | grep -E "GLIBC|GNU libc" | sed -E "s/.* //g")
fi fi
if [[ -e /etc/os-release ]]; then if [[ -e /etc/os-release ]]; then
if grep -Eq '^ID_LIKE=' /etc/os-release; then if grep -Eq '^ID_LIKE=' /etc/os-release; then
@@ -654,9 +655,9 @@ case "${host_os}" in
jq() { "${install_action_dir}/jq/bin/jq.exe" -b "$@"; } jq() { "${install_action_dir}/jq/bin/jq.exe" -b "$@"; }
elif type -P jq >/dev/null; then elif type -P jq >/dev/null; then
# https://github.com/jqlang/jq/issues/1854 # https://github.com/jqlang/jq/issues/1854
_tmp=$(jq -r .a <<<'{}' | wc -c) _tmp=$(printf '{}\n' | jq -r .a | wc -c)
if [[ "${_tmp}" != 5 ]]; then if [[ "${_tmp}" != 5 ]]; then
_tmp=$({ jq -b -r .a 2>/dev/null <<<'{}' || true; } | wc -c) _tmp=$({ printf '{}\n' | jq -b -r .a 2>/dev/null || true; } | wc -c)
if [[ "${_tmp}" == 5 ]]; then if [[ "${_tmp}" == 5 ]]; then
jq() { command jq -b "$@"; } jq() { command jq -b "$@"; }
else else
@@ -685,8 +686,8 @@ for tool in "${tools[@]}"; do
if [[ "${tool}" == *"@"* ]]; then if [[ "${tool}" == *"@"* ]]; then
version="${tool#*@}" version="${tool#*@}"
tool="${tool%@*}" tool="${tool%@*}"
if [[ ! "${version}" =~ ^([1-9][0-9]*(\.[0-9]+(\.[0-9]+)?)?|0\.[1-9][0-9]*(\.[0-9]+)?|^0\.0\.[0-9]+)(-[0-9A-Za-z\.-]+)?$|^latest$ ]]; then if ! printf '%s\n' "${version}" | grep -Eq '^([1-9][0-9]*(\.[0-9]+(\.[0-9]+)?)?|0\.[1-9][0-9]*(\.[0-9]+)?|^0\.0\.[0-9]+)(-[0-9A-Za-z\.-]+)?$|^latest$'; then
if [[ ! "${version}" =~ ^([1-9][0-9]*(\.[0-9]+(\.[0-9]+)?)?|0\.[1-9][0-9]*(\.[0-9]+)?|^0\.0\.[0-9]+)(-[0-9A-Za-z\.-]+)?(\+[0-9A-Za-z\.-]+)?$|^latest$ ]]; then if ! printf '%s\n' "${version}" | grep -Eq '^([1-9][0-9]*(\.[0-9]+(\.[0-9]+)?)?|0\.[1-9][0-9]*(\.[0-9]+)?|^0\.0\.[0-9]+)(-[0-9A-Za-z\.-]+)?(\+[0-9A-Za-z\.-]+)?$|^latest$'; then
bail "install-action does not support semver operators: '${version}'" bail "install-action does not support semver operators: '${version}'"
fi fi
bail "install-action v2 does not support semver build-metadata: '${version}'; if you need these supports again, please submit an issue at <https://github.com/taiki-e/install-action>" bail "install-action v2 does not support semver build-metadata: '${version}'; if you need these supports again, please submit an issue at <https://github.com/taiki-e/install-action>"

View File

@@ -22,32 +22,32 @@
}, },
"license_markdown": "[GPL-3.0](https://github.com/cargo-bins/cargo-binstall/blob/HEAD/crates/bin/LICENSE)", "license_markdown": "[GPL-3.0](https://github.com/cargo-bins/cargo-binstall/blob/HEAD/crates/bin/LICENSE)",
"latest": { "latest": {
"version": "1.17.4" "version": "1.17.5"
}, },
"1.17.4": { "1.17.5": {
"x86_64_linux_musl": { "x86_64_linux_musl": {
"etag": "0x8DE5E1D0450D24B", "etag": "0x8DE6B056582AD30",
"checksum": "8822793dd22a1fcfba6d7581ed130ec935fb26a0db58fb9b0f01f0fae17d28f8" "checksum": "c0f247726165afc445076a9d58cf3795512b6e5787ae469297a39b8c9e30a51f"
}, },
"x86_64_macos": { "x86_64_macos": {
"etag": "0x8DE5E1D0A6870BF", "etag": "0x8DE6B056D57BB61",
"checksum": "278a12a049397b9f73df0c1e6c83c15fe184e3f5d824ee9a66460c41e519cfd6" "checksum": "2471743078bbf1685e8493121b03c6555042690ea10661e0fddba647bceac13c"
}, },
"x86_64_windows": { "x86_64_windows": {
"etag": "0x8DE5E1D085D608D", "etag": "0x8DE6B056AB691BF",
"checksum": "9c6df6ed7e0eef153fdd6aa0fe0c873496431ea44e2b209331b2dbd29d0d3c06" "checksum": "501697fe946b691d215600d144b53b696cc6fb03f3e1773f582b375672c26be6"
}, },
"aarch64_linux_musl": { "aarch64_linux_musl": {
"etag": "0x8DE5E1D12C0247F", "etag": "0x8DE6B0577EF5F64",
"checksum": "1410ec72b4f23fa6cf8ebb4b55fe03ebca63e14adadf4501d78e91fa004e9689" "checksum": "6a82fd5207e0647fcb28fc8db30b0186a2e6223aaa5411a588f0573c77d620e3"
}, },
"aarch64_macos": { "aarch64_macos": {
"etag": "0x8DE5E1D1990CCCD", "etag": "0x8DE6B058118E22B",
"checksum": "c689061413598fa32b77b6fd2a7300c6392faf008137194ab8a4cdb93c12040a" "checksum": "896e75a79773a11ad651649dce449a223ddd1dc718e687301988b46ee26fe58f"
}, },
"aarch64_windows": { "aarch64_windows": {
"etag": "0x8DE5E1D1757B480", "etag": "0x8DE6B057E156D80",
"checksum": "6096f3a5da155fcf06f5fe48ee86a0b40427e48d0abb7206e2bc54572f875400" "checksum": "ad0d0d0d51fdbb66becab98886dd5500968b37dac7f4efb7d2f6ed0cf7847939"
} }
} }
} }

View File

@@ -3,10 +3,57 @@
"template": null, "template": null,
"license_markdown": "[Apache-2.0](https://github.com/taiki-e/cargo-hack/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/cargo-hack/blob/main/LICENSE-MIT)", "license_markdown": "[Apache-2.0](https://github.com/taiki-e/cargo-hack/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/cargo-hack/blob/main/LICENSE-MIT)",
"latest": { "latest": {
"version": "0.6.42" "version": "0.6.43"
}, },
"0.6": { "0.6": {
"version": "0.6.42" "version": "0.6.43"
},
"0.6.43": {
"x86_64_linux_musl": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.43/cargo-hack-x86_64-unknown-linux-musl.tar.gz",
"etag": "0x8DE6AFC0BACBCA3",
"checksum": "e8516415020c9d40d8d6df6bca9ec6bf653a03b46f82c0d2fe5180312cc04c93"
},
"x86_64_macos": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.43/cargo-hack-x86_64-apple-darwin.tar.gz",
"etag": "0x8DE6AFCB41BCDFE",
"checksum": "f4e2d0ee405dbf2ae4812469458dd2f3e5b2d95755839b527fc88d18efc94e2e"
},
"x86_64_windows": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.43/cargo-hack-x86_64-pc-windows-msvc.tar.gz",
"etag": "0x8DE6AFBDC9105E7",
"checksum": "95de9fcf93eeed60c190163e753235c49a80298a051d57158beb29a3298b3105"
},
"aarch64_linux_musl": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.43/cargo-hack-aarch64-unknown-linux-musl.tar.gz",
"etag": "0x8DE6AFBF9CD8386",
"checksum": "fc94951598b1168d7369152ad3ba2765c0f31d8aa3c63ef7433ffff46cdcf5a9"
},
"aarch64_macos": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.43/cargo-hack-aarch64-apple-darwin.tar.gz",
"etag": "0x8DE6AFCD460293B",
"checksum": "6d2235668e591fdd28c44810553848726602bf8454fa36c31e4b63fc2490be18"
},
"aarch64_windows": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.43/cargo-hack-aarch64-pc-windows-msvc.tar.gz",
"etag": "0x8DE6AFC14675438",
"checksum": "68fd95d58fb92c550e0629e124002c12a06028494d1e23f91dbe585d89a425ff"
},
"powerpc64le_linux_musl": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.43/cargo-hack-powerpc64le-unknown-linux-musl.tar.gz",
"etag": "0x8DE6AFBAD1A75E3",
"checksum": "fadefc0f77f236e2de92373a5c444b6766d419cf6b4204029b90eaf644b04d60"
},
"riscv64_linux_musl": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.43/cargo-hack-riscv64gc-unknown-linux-musl.tar.gz",
"etag": "0x8DE6AFBAE8B2B9B",
"checksum": "5b3cc06fdbf1224fc0fff56c7fbfb75e440b558621d7b469dba5519dd1d1f425"
},
"s390x_linux_gnu": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.43/cargo-hack-s390x-unknown-linux-gnu.tar.gz",
"etag": "0x8DE6AFBBAAF2663",
"checksum": "66a59ec733faadaf106ed7dab93040e4b7b4de52fed81f756c6b413e754060ac"
}
}, },
"0.6.42": { "0.6.42": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

View File

@@ -31,10 +31,48 @@
}, },
"license_markdown": "[Apache-2.0](https://github.com/taiki-e/cargo-minimal-versions/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/cargo-minimal-versions/blob/main/LICENSE-MIT)", "license_markdown": "[Apache-2.0](https://github.com/taiki-e/cargo-minimal-versions/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/cargo-minimal-versions/blob/main/LICENSE-MIT)",
"latest": { "latest": {
"version": "0.1.35" "version": "0.1.36"
}, },
"0.1": { "0.1": {
"version": "0.1.35" "version": "0.1.36"
},
"0.1.36": {
"x86_64_linux_musl": {
"etag": "0x8DE6AFC0C4234EC",
"checksum": "d552f47b217ff77ac211ae506730f6c0ee822b5084c6f7a9c16148994fe9ecc0"
},
"x86_64_macos": {
"etag": "0x8DE6AFBEC46F5C2",
"checksum": "127b5084d895d06949bbf02033f0c6ce98dfe2d13ea8783bec15fd80d54dfe5e"
},
"x86_64_windows": {
"etag": "0x8DE6AFC03207836",
"checksum": "2dd6c637c644a658744f5d9ba302862c80e68ff6c37e115bcba02cf5451008ac"
},
"aarch64_linux_musl": {
"etag": "0x8DE6AFBF84ED324",
"checksum": "7eb4c46f08df2889a710f4ca570bc535d99372ecd156138f919c4c5b17555373"
},
"aarch64_macos": {
"etag": "0x8DE6AFD0ABC97B7",
"checksum": "ba6d67e1e5a11ffd81f4b896099d8a63095b0548900acb391028f6820e1009ce"
},
"aarch64_windows": {
"etag": "0x8DE6AFBC085EDED",
"checksum": "1c7f3e323c2eb2a6f4a122a0687a2b4d8d71de5c89cccda6356aabc74a434341"
},
"powerpc64le_linux_musl": {
"etag": "0x8DE6AFC0587BE56",
"checksum": "ccc40b864d355e66bbb6d570dc561cf204f592fbdddbf82320ea3a0b7eebb4b0"
},
"riscv64_linux_musl": {
"etag": "0x8DE6AFC06D11ADF",
"checksum": "7748301edc592a6ef93768fef1becd29777dab62de699a298a9e25dafee20979"
},
"s390x_linux_gnu": {
"etag": "0x8DE6AFC14F531DE",
"checksum": "f85738868242ef526bfb1cd72b8cb9555e2a6425e18f2b93f8d2dd2a9a3fb90b"
}
}, },
"0.1.35": { "0.1.35": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

View File

@@ -19,10 +19,33 @@
}, },
"license_markdown": "[Apache-2.0](https://github.com/nextest-rs/nextest/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/nextest-rs/nextest/blob/main/LICENSE-MIT)", "license_markdown": "[Apache-2.0](https://github.com/nextest-rs/nextest/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/nextest-rs/nextest/blob/main/LICENSE-MIT)",
"latest": { "latest": {
"version": "0.9.126" "version": "0.9.127"
}, },
"0.9": { "0.9": {
"version": "0.9.126" "version": "0.9.127"
},
"0.9.127": {
"previous_stable_version": "0.9.126",
"x86_64_linux_gnu": {
"etag": "0x8DE6B2F56693476",
"checksum": "0a9d356170528ba92a65fd0157ec0445a67d1f7c2c5726085656e55ba8a1b976"
},
"x86_64_linux_musl": {
"etag": "0x8DE6B2ED81EC9E7",
"checksum": "51648aa64c76c87e6357195c9bbb702bda8b2b6fbeeae0960926556b7aea37bc"
},
"x86_64_macos": {
"etag": "0x8DE6B2F967EE463",
"checksum": "c814033126902b9f06fc5d01651c6dafc634b3a7a27d3ad87a893f749027f661"
},
"x86_64_windows": {
"etag": "0x8DE6B30804FF2E7",
"checksum": "c00d48d96a5fdbac7664532fa81a07602242f5b9618980350997664d109d222b"
},
"aarch64_linux_gnu": {
"etag": "0x8DE6B2E95DD5A04",
"checksum": "ce9f682227a131497227f84328e0b2eb36d2a7f43515f867a47bdb35c69516e4"
}
}, },
"0.9.126": { "0.9.126": {
"previous_stable_version": "0.9.125", "previous_stable_version": "0.9.125",

View File

@@ -31,10 +31,48 @@
}, },
"license_markdown": "[Apache-2.0](https://github.com/taiki-e/cargo-no-dev-deps/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/cargo-no-dev-deps/blob/main/LICENSE-MIT)", "license_markdown": "[Apache-2.0](https://github.com/taiki-e/cargo-no-dev-deps/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/cargo-no-dev-deps/blob/main/LICENSE-MIT)",
"latest": { "latest": {
"version": "0.2.20" "version": "0.2.21"
}, },
"0.2": { "0.2": {
"version": "0.2.20" "version": "0.2.21"
},
"0.2.21": {
"x86_64_linux_musl": {
"etag": "0x8DE6AFC3E8431E1",
"checksum": "5a32f020fb678debd1c2af85b6c822714cf9d158a2089cfd2c4e1f2796a41f4f"
},
"x86_64_macos": {
"etag": "0x8DE6AFD07092CA8",
"checksum": "61ae4fea3de88cf32b27395aab176cc3071db35fef73128485d0351c537c2272"
},
"x86_64_windows": {
"etag": "0x8DE6AFC76C0DB8B",
"checksum": "ed66350f835e95837280312d2eb8e2fe24e47264da67955d57bd93656ec2c597"
},
"aarch64_linux_musl": {
"etag": "0x8DE6AFC528E5E70",
"checksum": "9e04305a5e8119c103a9d8017192d611d7208192772cf725c49c23ccc44f1881"
},
"aarch64_macos": {
"etag": "0x8DE6AFD24C51E90",
"checksum": "e2466aa92b2e7454210a4ff8f0e59988fd0d4b471124ee6a483d8aef62564418"
},
"aarch64_windows": {
"etag": "0x8DE6AFC57C9635F",
"checksum": "54c032f6093a3335e380732907a520857dd327902a56ec1b4e0aeccfed942372"
},
"powerpc64le_linux_musl": {
"etag": "0x8DE6AFC3ADEA618",
"checksum": "6359b49a16172e9c05637d1399535050ebfd40d22330589319372e811375acd5"
},
"riscv64_linux_musl": {
"etag": "0x8DE6AFC6CCE8870",
"checksum": "22cd4b624667fa559347f11c2871d43a07f40fe322f25399aa270b7b0706e7ad"
},
"s390x_linux_gnu": {
"etag": "0x8DE6AFC6B65E02E",
"checksum": "cf06f516481072b25d017f6b0d5fded19f86f2008ba5aee5c43f80fb25f80062"
}
}, },
"0.2.20": { "0.2.20": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

View File

@@ -22,7 +22,36 @@
}, },
"license_markdown": "[Apache-2.0](https://github.com/CycloneDX/cyclonedx-cli/blob/main/LICENSE)", "license_markdown": "[Apache-2.0](https://github.com/CycloneDX/cyclonedx-cli/blob/main/LICENSE)",
"latest": { "latest": {
"version": "0.29.2" "version": "0.30.0"
},
"0.30": {
"version": "0.30.0"
},
"0.30.0": {
"x86_64_linux_gnu": {
"etag": "0x8DE68A19FDBA5D3",
"checksum": "f89876326620f5fc78a9b27cc1af57d6ed13d019aab87490e1246a44a910babb"
},
"x86_64_macos": {
"etag": "0x8DE68A1ABCE684B",
"checksum": "1603264fd2968b8d617e48aa7e9cf17bee1d25a8ffe717aec37caf1605a21961"
},
"x86_64_windows": {
"etag": "0x8DE68A1A68CD9DF",
"checksum": "1f563ba9644d2f2966fc8029fd701ca4af4f388d44c017c1d60559a1ecc9114f"
},
"aarch64_linux_gnu": {
"etag": "0x8DE68A1A4F518E5",
"checksum": "190da406177311aa1081edd0c717df10271eba7e4356a56215494a70e1a4b459"
},
"aarch64_macos": {
"etag": "0x8DE68A1C975B445",
"checksum": "dabbaf07e543e7996f708147475e2daa69ddf8a8683c5b06febc7d3f074e5e24"
},
"aarch64_windows": {
"etag": "0x8DE68A1A9DB32B2",
"checksum": "866809c6e2617c39d0b11713872ae35b88c98941c22dc66d9a4b633fa56db82a"
}
}, },
"0.29": { "0.29": {
"version": "0.29.2" "version": "0.29.2"

24
manifests/martin.json generated
View File

@@ -32,13 +32,31 @@
}, },
"license_markdown": "[MIT](https://github.com/maplibre/martin/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/maplibre/martin/blob/main/LICENSE-APACHE)", "license_markdown": "[MIT](https://github.com/maplibre/martin/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/maplibre/martin/blob/main/LICENSE-APACHE)",
"latest": { "latest": {
"version": "1.3.0" "version": "1.3.1"
}, },
"1": { "1": {
"version": "1.3.0" "version": "1.3.1"
}, },
"1.3": { "1.3": {
"version": "1.3.0" "version": "1.3.1"
},
"1.3.1": {
"x86_64_linux_musl": {
"etag": "0x8DE69BEEF1273C5",
"checksum": "efae063aa2faa85f5ccadb00d5321bb10adeb2b439ef8422a41951f532f68133"
},
"x86_64_macos": {
"etag": "0x8DE69BEEEB00219",
"checksum": "15c7ae65e14df86f0b70d6c081332beba038cbc421386477fcd6507604d27677"
},
"aarch64_linux_musl": {
"etag": "0x8DE69BEEEDE310E",
"checksum": "88bdff3fd145c242b047ec70c3ccb57eec19ac1817eb8819d68d840aaca6cc81"
},
"aarch64_macos": {
"etag": "0x8DE69BEEEB00219",
"checksum": "f7e91fed05a219db1ebc5a6b33c006991fb472a3963b3602c230ee0864748111"
}
}, },
"1.3.0": { "1.3.0": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

110
manifests/mise.json generated
View File

@@ -28,13 +28,117 @@
}, },
"license_markdown": "[MIT](https://github.com/jdx/mise/blob/main/LICENSE)", "license_markdown": "[MIT](https://github.com/jdx/mise/blob/main/LICENSE)",
"latest": { "latest": {
"version": "2026.2.7" "version": "2026.2.11"
}, },
"2026": { "2026": {
"version": "2026.2.7" "version": "2026.2.11"
}, },
"2026.2": { "2026.2": {
"version": "2026.2.7" "version": "2026.2.11"
},
"2026.2.11": {
"x86_64_linux_musl": {
"etag": "0x8DE6A5CCF811E95",
"checksum": "f396f680305ef1546cb65623dab4e48e7666e25ddb33517c60288a1b69d79b73"
},
"x86_64_macos": {
"etag": "0x8DE6A5CD43ECFA0",
"checksum": "d4f88990f9e9bf16cac1b87135c3f8bb94fbdf3c3d2c39d45acc44bbd788f9f4"
},
"x86_64_windows": {
"etag": "0x8DE6A5CD569F132",
"checksum": "099fc24154ed2d44fea9edd6a08465f32d5be425acd1c2375a53281e9f9f49e7"
},
"aarch64_linux_musl": {
"etag": "0x8DE6A5CC817C92E",
"checksum": "f06b71a3f59b3b8478b8f3767db53696dbd28154e2d62c657287a10dce3d5392"
},
"aarch64_macos": {
"etag": "0x8DE6A5CD2A9A3BC",
"checksum": "bf93ff18c6bc52bfc321a7968053571537224e4d3ed38203ec504ddbdcd50d6a"
},
"aarch64_windows": {
"etag": "0x8DE6A5CD545068C",
"checksum": "62b92064b3f1e77ad7a8a7233b0f32025370e22fe9835903934edc2283a3f957"
}
},
"2026.2.10": {
"x86_64_linux_musl": {
"etag": "0x8DE69E5F2D14B42",
"checksum": "cb1f06969bf020a5b5d35780e09f6f9316c499c337081771404b42549493ab32"
},
"x86_64_macos": {
"etag": "0x8DE69E5F4E59F2B",
"checksum": "c247d61a2e47bfa1820f3a4ec27b7d8c0f21fce370e94172ee6cdfab80c8d073"
},
"x86_64_windows": {
"etag": "0x8DE69E5F5D3398C",
"checksum": "d320e1d0b675a83a9ea44d7f9956650e2dc0d5068cf91f970bb2e516bc789c8f"
},
"aarch64_linux_musl": {
"etag": "0x8DE69E5EFA7B642",
"checksum": "1324b2965b97b057546d7d90bb64edfbd039ded690c78e58c305e5352207920a"
},
"aarch64_macos": {
"etag": "0x8DE69E5F44A5C0D",
"checksum": "c2f1316305a515242e7618409f6118cc779c96cd7c84b130cd7a70d5b5bd5f15"
},
"aarch64_windows": {
"etag": "0x8DE69E5F5BA4F5F",
"checksum": "9b3d550934f58097eb06913ee626b7320be7c222736625cff365a5186b197727"
}
},
"2026.2.9": {
"x86_64_linux_musl": {
"etag": "0x8DE689BE32A59FC",
"checksum": "6a20d73f01439c04dd06b711ef06f753278dcfb1146350acc89fe7863af03077"
},
"x86_64_macos": {
"etag": "0x8DE689BE635B257",
"checksum": "fcc6b91b993ea52e2b064fda54301fd0ffdd4bab102eaf7ccc59ec9b99a13d39"
},
"x86_64_windows": {
"etag": "0x8DE689BE7234C5A",
"checksum": "ee57ac35653c710a424c5f690f85ee5ce3921992bd3793835865ac50d450b086"
},
"aarch64_linux_musl": {
"etag": "0x8DE689BDE9451F9",
"checksum": "341e0ff2eb967ba502dc7bdd7457c4a536714a54684b7bdf1946dc4287689ca0"
},
"aarch64_macos": {
"etag": "0x8DE689BE56E60F5",
"checksum": "5bfa886a537e07e50089712d6b0fa46bb1a37b08f218c4878d6a2e715e1cefd1"
},
"aarch64_windows": {
"etag": "0x8DE689BE6D5D1C1",
"checksum": "332d2c4023c0f70717e92f3bd357479fc703519a98d4db8969554e7564c8a6a0"
}
},
"2026.2.8": {
"x86_64_linux_musl": {
"etag": "0x8DE67CCEBAB42CD",
"checksum": "b98f0e59347cfc5e39f2e4e643069dcc775c8b161850b89d02c884c7768e67df"
},
"x86_64_macos": {
"etag": "0x8DE67CCED89F601",
"checksum": "01fcb2600aff54f09ed009cc1c345b05379bd0b0424296973d32974788192dd7"
},
"x86_64_windows": {
"etag": "0x8DE67CCEE5FDD4B",
"checksum": "a6e7201f66b41ee668861538a7e48cd8021fde406dd83396c494b7277d943577"
},
"aarch64_linux_musl": {
"etag": "0x8DE67CCE893C200",
"checksum": "c76a3016bb5133fa6115fa9ad3994746d0ff7e8151b0ed9a3270838680fbecc2"
},
"aarch64_macos": {
"etag": "0x8DE67CCECC4025E",
"checksum": "135b686641f4220224660492f0a8dd71de6ca8e0573e4c5f75c71be8127492f2"
},
"aarch64_windows": {
"etag": "0x8DE67CCEE106905",
"checksum": "d312d15a0ce02651a52fb0f8191772b1663718257fdedec37fc65acfbb1bded4"
}
}, },
"2026.2.7": { "2026.2.7": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

View File

@@ -3,13 +3,45 @@
"template": null, "template": null,
"license_markdown": "[Apache-2.0](https://github.com/google/osv-scanner/blob/main/LICENSE)", "license_markdown": "[Apache-2.0](https://github.com/google/osv-scanner/blob/main/LICENSE)",
"latest": { "latest": {
"version": "2.3.2" "version": "2.3.3"
}, },
"2": { "2": {
"version": "2.3.2" "version": "2.3.3"
}, },
"2.3": { "2.3": {
"version": "2.3.2" "version": "2.3.3"
},
"2.3.3": {
"x86_64_linux_musl": {
"url": "https://github.com/google/osv-scanner/releases/download/v2.3.3/osv-scanner_linux_amd64",
"etag": "0x8DE69CAD5311860",
"checksum": "777b4bb7ddd10bdcc8a1aa398d37d05e91e866e7586f9cff3fca2f72b8153033"
},
"x86_64_macos": {
"url": "https://github.com/google/osv-scanner/releases/download/v2.3.3/osv-scanner_darwin_amd64",
"etag": "0x8DE69CAD4300C11",
"checksum": "a188059bb2046bb65ff5ba1b5beec95fea1096b873c227b629fe02f550a6e339"
},
"x86_64_windows": {
"url": "https://github.com/google/osv-scanner/releases/download/v2.3.3/osv-scanner_windows_amd64.exe",
"etag": "0x8DE69CAD3E7E2A1",
"checksum": "8a41dcb9377937e78299fbb22f494f69019002b79a0c18d174de621b0638ae46"
},
"aarch64_linux_musl": {
"url": "https://github.com/google/osv-scanner/releases/download/v2.3.3/osv-scanner_linux_arm64",
"etag": "0x8DE69CAD537C793",
"checksum": "0a503893df39863edc65edef01fd6d82b45c6e47fa9132538593d5a2d33f2616"
},
"aarch64_macos": {
"url": "https://github.com/google/osv-scanner/releases/download/v2.3.3/osv-scanner_darwin_arm64",
"etag": "0x8DE69CAD3E6D261",
"checksum": "ef72b1af51ee4c72dcf7286771353b363e5901c998020f41ac0079fb50026fa0"
},
"aarch64_windows": {
"url": "https://github.com/google/osv-scanner/releases/download/v2.3.3/osv-scanner_windows_arm64.exe",
"etag": "0x8DE69CAD3B32B51",
"checksum": "3c29b84b496d10a2932724a540e4594b35750840d20bf416edcaf32a6cddf326"
}
}, },
"2.3.2": { "2.3.2": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

View File

@@ -31,10 +31,48 @@
}, },
"license_markdown": "[Apache-2.0](https://github.com/taiki-e/parse-dockerfile/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/parse-dockerfile/blob/main/LICENSE-MIT)", "license_markdown": "[Apache-2.0](https://github.com/taiki-e/parse-dockerfile/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/parse-dockerfile/blob/main/LICENSE-MIT)",
"latest": { "latest": {
"version": "0.1.3" "version": "0.1.4"
}, },
"0.1": { "0.1": {
"version": "0.1.3" "version": "0.1.4"
},
"0.1.4": {
"x86_64_linux_musl": {
"etag": "0x8DE698A3B4092E8",
"checksum": "2ee28fd2e807ace8edb6fbb2df063791d7c23d4e926f9806a175bb1d0a37d846"
},
"x86_64_macos": {
"etag": "0x8DE698A334E80E1",
"checksum": "117dd15cf58785ed9ab30f73d192663ac37e744acd3befe50116ede6c8c85d49"
},
"x86_64_windows": {
"etag": "0x8DE698A4B6BD684",
"checksum": "d97f0f18b3a214f4b054b4306541910b24c1a1a980ad3eca2e2925ea6d75d579"
},
"aarch64_linux_musl": {
"etag": "0x8DE698A3ADBB2AD",
"checksum": "e08dcabec80d9bd9e06730e3c58eb466fd8023564a9c1862af5423367e6cef20"
},
"aarch64_macos": {
"etag": "0x8DE698A350173FF",
"checksum": "db836ffb2b891ca5b1b6e4060102e73ac4aad4513e271fdd2255f79977a4b263"
},
"aarch64_windows": {
"etag": "0x8DE698A4AC4B946",
"checksum": "4a02b72c58b60beb39fd8613f4427d48ca2a9bf0cb021c342434aa1649e9af42"
},
"powerpc64le_linux_musl": {
"etag": "0x8DE698A38375889",
"checksum": "5293e81f63885c3b9e6cefea81031608d4fdb5e65fdda46a406f8b290e80476f"
},
"riscv64_linux_musl": {
"etag": "0x8DE698A384EE4BA",
"checksum": "2fa01a64f99a330e4bec5625ea280044873d2f693f2560b1089128506149a6ca"
},
"s390x_linux_gnu": {
"etag": "0x8DE698A3F57EB51",
"checksum": "c7782bfc23116d2205281990259464c6bba94033e6230d2b48487e3cb7e05334"
}
}, },
"0.1.3": { "0.1.3": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

31
manifests/sccache.json generated
View File

@@ -28,7 +28,36 @@
}, },
"license_markdown": "[Apache-2.0](https://github.com/mozilla/sccache/blob/main/LICENSE)", "license_markdown": "[Apache-2.0](https://github.com/mozilla/sccache/blob/main/LICENSE)",
"latest": { "latest": {
"version": "0.13.0" "version": "0.14.0"
},
"0.14": {
"version": "0.14.0"
},
"0.14.0": {
"x86_64_linux_musl": {
"etag": "0x8DE67ED6CAA0762",
"checksum": "8424b38cda4ecce616a1557d81328f3d7c96503a171eab79942fad618b42af44"
},
"x86_64_macos": {
"etag": "0x8DE67ED6AD92778",
"checksum": "f86c5ecf9b9a1aee53022601725c5cea0e1d9318d80a8233017101063936ab62"
},
"x86_64_windows": {
"etag": "0x8DE67ED6BB8C7B5",
"checksum": "22c5030437639b15b138e9cd082db8eedf9d8b1a0de05b6072b53f819ea9d299"
},
"aarch64_linux_musl": {
"etag": "0x8DE67ED656BD8EE",
"checksum": "62a6c942c47c93333bc0174704800cef7edfa0416d08e1356c1d3e39f0b462f2"
},
"aarch64_macos": {
"etag": "0x8DE67ED6393873A",
"checksum": "a781e8018260ab128e7690d8497736fa231b6ca895d57131d5b5b966ca987594"
},
"aarch64_windows": {
"etag": "0x8DE67ED6470B953",
"checksum": "b416e81f946c607467c5383022842649569d73f468a8e42b4536998e3d784224"
}
}, },
"0.13": { "0.13": {
"version": "0.13.0" "version": "0.13.0"

37
manifests/syft.json generated
View File

@@ -32,10 +32,43 @@
}, },
"license_markdown": "[Apache-2.0](https://github.com/anchore/syft/blob/main/LICENSE)", "license_markdown": "[Apache-2.0](https://github.com/anchore/syft/blob/main/LICENSE)",
"latest": { "latest": {
"version": "1.41.2" "version": "1.42.0"
}, },
"1": { "1": {
"version": "1.41.2" "version": "1.42.0"
},
"1.42": {
"version": "1.42.0"
},
"1.42.0": {
"x86_64_linux_musl": {
"etag": "0x8DE68CB5EAEDD3E",
"checksum": "23bec7de5db0ba05590c676a338a8cd49e635df63e6c404c34d437e2c57f1a77"
},
"x86_64_macos": {
"etag": "0x8DE68CB5E6F8381",
"checksum": "675824f08b63e609ba077f2d4684510ac6bd7bd71db8b1a6c6f2d59d3b6450df"
},
"x86_64_windows": {
"etag": "0x8DE68CB5E712F54",
"checksum": "4c2b0ef868c4fdc602257089ac73a1b8b4c3c1099b809d80e81ae7f6488fff32"
},
"aarch64_linux_musl": {
"etag": "0x8DE68CB5DDF09C3",
"checksum": "cbc39a5f29b0bd32c1bf6bf61c363373f20a1be39dd901e1869228d42d082121"
},
"aarch64_macos": {
"etag": "0x8DE68CB5E70BAAB",
"checksum": "eb5faccd882a1d45fb25a07848bef652e27ff141bc656dca83a250211c2036fc"
},
"powerpc64le_linux_musl": {
"etag": "0x8DE68CB5DCFB1BD",
"checksum": "5eb490e2ee959603b50d6353f190164b7cc2428c8cb7931c91646fbf550fe04c"
},
"s390x_linux_musl": {
"etag": "0x8DE68CB5EABAC84",
"checksum": "7283d35fd50655e008ba18df182a496638c881eda8aa8aafc0b395c51db2121c"
}
}, },
"1.41": { "1.41": {
"version": "1.41.2" "version": "1.41.2"

28
manifests/typos.json generated
View File

@@ -22,13 +22,35 @@
}, },
"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.43.3" "version": "1.43.4"
}, },
"1": { "1": {
"version": "1.43.3" "version": "1.43.4"
}, },
"1.43": { "1.43": {
"version": "1.43.3" "version": "1.43.4"
},
"1.43.4": {
"x86_64_linux_musl": {
"etag": "0x8DE67E6F87AEE49",
"checksum": "f05f9da84ba714789271a2915060f8b7d329411b5c11e83b8d2c367ef592036c"
},
"x86_64_macos": {
"etag": "0x8DE67E72B2003AB",
"checksum": "24e104185f1522d1906f7e8299e43e39faefe527dbe73b163cfaadad8012a113"
},
"x86_64_windows": {
"etag": "0x8DE67E74CEF9B0A",
"checksum": "6f1e5688724d347bfbb6419cc76c364b54a97afef75cdbcf02cc838852dbb6cd"
},
"aarch64_linux_musl": {
"etag": "0x8DE67E6EF474661",
"checksum": "7eeb93b5dbd4590ef60f6a09ab94e0dae70d2f333c0447284f1cad0379786f5b"
},
"aarch64_macos": {
"etag": "0x8DE67E73DF4DD13",
"checksum": "bd5b1e04de8710813464cc510fd33a2e4a797320901d23f49042e1d1863ef023"
}
}, },
"1.43.3": { "1.43.3": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

80
manifests/uv.json generated
View File

@@ -40,10 +40,86 @@
}, },
"license_markdown": "[Apache-2.0](https://github.com/astral-sh/uv/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/astral-sh/uv/blob/main/LICENSE-MIT)", "license_markdown": "[Apache-2.0](https://github.com/astral-sh/uv/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/astral-sh/uv/blob/main/LICENSE-MIT)",
"latest": { "latest": {
"version": "0.10.0" "version": "0.10.2"
}, },
"0.10": { "0.10": {
"version": "0.10.0" "version": "0.10.2"
},
"0.10.2": {
"x86_64_linux_musl": {
"etag": "0x8DE68D97A0ACC48",
"checksum": "c162182ba7dd692794362d76dd183990d6e51553217954106da19bdb6ced211b"
},
"x86_64_macos": {
"etag": "0x8DE68D9798C8D0B",
"checksum": "3cdbd038333cfe861ce04f3d91678547bf2e726224acf5f42d3f0affa6740e19"
},
"x86_64_windows": {
"etag": "0x8DE68D979E37342",
"checksum": "493ebbe0e06128d6ee4905e1ed5e2a433fb0f7cfc08b0eaca9fab4ca76778ae1"
},
"aarch64_linux_musl": {
"etag": "0x8DE68D97746D797",
"checksum": "685e47f8f88b6845a9fc2ca27c3d246c0f53af8c017daf8e98ac0a97fe20365b"
},
"aarch64_macos": {
"etag": "0x8DE68D97694F118",
"checksum": "3828b2de196687f60e9d199aea8b504299629300831eea0935ff3fe339903d0a"
},
"aarch64_windows": {
"etag": "0x8DE68D976C5B56A",
"checksum": "826e4ee3a03ec245e54c449e272fdf8aab749e039cc49c950ad43cc13702221f"
},
"powerpc64le_linux_gnu": {
"etag": "0x8DE68D978DC048C",
"checksum": "9b7f8e3ced416276a9e6321369f69234552d9cbf39d68d96a67e85cee4cd611f"
},
"riscv64_linux_gnu": {
"etag": "0x8DE68D979289622",
"checksum": "1ad005a361293175170f3c193b50d5a5c7f1da631649236cd857721ce8c9cbde"
},
"s390x_linux_gnu": {
"etag": "0x8DE68D9794269C9",
"checksum": "d4832c85f3e8e17f7ae4ced90059dc2b6927939a47fea3e92e5712e7148b9c09"
}
},
"0.10.1": {
"x86_64_linux_musl": {
"etag": "0x8DE689A8616BF52",
"checksum": "d1a3b08dd9abf9e500541cadd0e2f4b144c99b9265fb00e500c2b5c82a3b4ee8"
},
"x86_64_macos": {
"etag": "0x8DE689A8578C054",
"checksum": "f61f1122193698a53fc2d4cc6fb5a5849b283817509778ac8f1a7d2a36a218de"
},
"x86_64_windows": {
"etag": "0x8DE689A85AFBEF6",
"checksum": "64c297ef1cd8e3a50966dee20cbe039564cd59e41186e0d1dd38fa4e627fc285"
},
"aarch64_linux_musl": {
"etag": "0x8DE689A8341A2F8",
"checksum": "ae9ae536be5b4d1cf7a6560d52a20711f267e7b21e23ee6cc538a4afa236b757"
},
"aarch64_macos": {
"etag": "0x8DE689A82A6ADCC",
"checksum": "37c101cd8a745a43d69bc3832c41866ab721467a1d58881f57b73b705abc2851"
},
"aarch64_windows": {
"etag": "0x8DE689A83112C9C",
"checksum": "9644d0e37c41c19aa65137a928bf6fad78dc887f820202c0cfcf010cceb416a0"
},
"powerpc64le_linux_gnu": {
"etag": "0x8DE689A84FE74D1",
"checksum": "aa2ed9587a9ad5127662da9ceccaa747b941f37cbd9e6d9334c7c6c3286c9587"
},
"riscv64_linux_gnu": {
"etag": "0x8DE689A850E4188",
"checksum": "bda96a9ff8be79f780ff4711a2515061fe80d6f135ba55a47c41e1c6739d048e"
},
"s390x_linux_gnu": {
"etag": "0x8DE689A853096EC",
"checksum": "091eeeecfcdb15a954f2488be6b89d8709709003ada81d215d6ca88145826049"
}
}, },
"0.10.0": { "0.10.0": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

View File

@@ -16,7 +16,7 @@ serde_derive = "1"
serde_json = "1" serde_json = "1"
spdx = "0.13" spdx = "0.13"
tar = "0.4" tar = "0.4"
toml = { version = "0.9", default-features = false, features = ["parse", "serde"] } toml = { version = "1", default-features = false, features = ["parse", "serde"] }
# TODO: call curl command instead of using ureq? # TODO: call curl command instead of using ureq?
ureq = { version = "2", features = ["json"] } ureq = { version = "2", features = ["json"] }

View File

@@ -4,12 +4,15 @@
Structured access to the install-action manifests. Structured access to the install-action manifests.
*/ */
#![no_std]
#![doc(test( #![doc(test(
no_crate_inject, no_crate_inject,
attr( attr(allow(
deny(warnings, rust_2018_idioms, single_use_lifetimes), dead_code,
allow(dead_code, unused_variables) unused_variables,
) clippy::undocumented_unsafe_blocks,
clippy::unused_trait_names,
))
))] ))]
#![warn( #![warn(
// Lints that may help when writing public library. // Lints that may help when writing public library.
@@ -26,8 +29,13 @@ Structured access to the install-action manifests.
#![allow(clippy::missing_panics_doc, clippy::too_long_first_doc_paragraph)] #![allow(clippy::missing_panics_doc, clippy::too_long_first_doc_paragraph)]
extern crate alloc; extern crate alloc;
extern crate std;
use alloc::collections::BTreeMap; use alloc::{
collections::BTreeMap,
string::{String, ToString as _},
vec::Vec,
};
use core::{ use core::{
cmp::{self, Reverse}, cmp::{self, Reverse},
fmt, slice, fmt, slice,

View File

@@ -894,10 +894,19 @@ EOF
for job in $(jq -c '.jobs | to_entries[] | select(.value.steps)' <<<"${workflow}"); do for job in $(jq -c '.jobs | to_entries[] | select(.value.steps)' <<<"${workflow}"); do
name=$(jq -r '.key' <<<"${job}") name=$(jq -r '.key' <<<"${job}")
job=$(jq -r '.value' <<<"${job}") job=$(jq -r '.value' <<<"${job}")
eval "$(jq -r '@sh "RUNS_ON=\(."runs-on") TIMEOUT_MINUTES=\(."timeout-minutes") JOB_DEFAULT_SHELL=\(.defaults.run.shell)"' <<<"${job}")"
if [[ "${TIMEOUT_MINUTES}" == 'null' ]]; then
error ".jobs.${name}.timeout-minutes must be set"
fi
if [[ "${RUNS_ON}" == 'ubuntu-slim' ]]; then
case "${TIMEOUT_MINUTES}" in
? | 1[0-5]) ;;
*) error ".jobs.${name}.timeout-minutes must be <= 15 because max execution time of ubuntu-slim runner is 15 minutes" ;;
esac
fi
n=0 n=0
job_default_shell=$(jq -r '.defaults.run.shell' <<<"${job}") if [[ "${JOB_DEFAULT_SHELL}" == 'null' ]]; then
if [[ "${job_default_shell}" == 'null' ]]; then JOB_DEFAULT_SHELL="${default_shell}"
job_default_shell="${default_shell}"
fi fi
for step in $(jq -c '.steps[]' <<<"${job}"); do for step in $(jq -c '.steps[]' <<<"${job}"); do
prepare='' prepare=''
@@ -908,7 +917,7 @@ EOF
fi fi
if [[ "${shell}" == 'null' ]]; then if [[ "${shell}" == 'null' ]]; then
if [[ -z "${prepare}" ]]; then if [[ -z "${prepare}" ]]; then
shell="${job_default_shell}" shell="${JOB_DEFAULT_SHELL}"
elif grep -Eq '^ *chsh +-s +[^ ]+/bash' <<<"${prepare}"; then elif grep -Eq '^ *chsh +-s +[^ ]+/bash' <<<"${prepare}"; then
shell='bash' shell='bash'
else else