Compare commits

...

100 Commits

Author SHA1 Message Date
Taiki Endo
a3bd4a6f9c Release 2.49.2 2025-02-25 09:17:00 +09:00
Taiki Endo
a124e0a223 Update sccache@latest to 0.10.0 2025-02-25 06:13:23 +09:00
Taiki Endo
77262c00ec Update cargo-machete@latest to 0.8.0 2025-02-25 06:13:23 +09:00
Taiki Endo
ae97ff9daf Release 2.49.1 2025-02-24 18:50:52 +09:00
Taiki Endo
4226e24080 Update cargo-deny@latest to 0.18.0 2025-02-24 18:44:52 +09:00
Taiki Endo
e03236526a Release 2.49.0 2025-02-24 03:58:48 +09:00
Taiki Endo
7cd5fd4051 Update changelog 2025-02-24 03:58:09 +09:00
Taiki Endo
bfd7aadad6 Allow installing pre-release versions using binstall 2025-02-24 03:57:25 +09:00
Taiki Endo
011a3fc5ce rustfmt: set style_edition = "2024" 2025-02-23 22:32:18 +09:00
Taiki Endo
eb454bad93 Release 2.48.22 2025-02-23 13:39:07 +09:00
Taiki Endo
d041e4befe Update cargo-binstall@latest to 1.11.1 2025-02-23 13:22:51 +09:00
Taiki Endo
1f8ff2cc46 Update release-plz@latest to 0.3.122 2025-02-23 06:12:03 +09:00
Taiki Endo
6a4015d722 Release 2.48.21 2025-02-22 12:37:02 +09:00
Taiki Endo
817fcd18a5 Update wasmtime@latest to 30.0.1 2025-02-22 09:28:46 +09:00
Taiki Endo
dee334f610 Update syft@latest to 1.20.0 2025-02-22 06:14:30 +09:00
Taiki Endo
38c7691f46 Update scripts 2025-02-21 23:48:30 +09:00
Taiki Endo
2dbeb927f5 Release 2.48.20 2025-02-21 20:15:39 +09:00
Taiki Endo
7852930e42 Update cargo-udeps@latest to 0.1.55 2025-02-21 09:31:15 +09:00
Taiki Endo
46724b7a3e Revert "ci: Temporarily disable buggy ubuntu-24.04-arm runner"
This reverts commit 0b0596dd1e.
2025-02-21 00:40:15 +09:00
Taiki Endo
55451daf94 Release 2.48.19 2025-02-21 00:15:51 +09:00
Taiki Endo
964cdcf277 Update typos@latest to 1.29.9 2025-02-21 00:13:17 +09:00
Taiki Endo
dd548c6593 Release 2.48.18 2025-02-20 20:18:57 +09:00
Taiki Endo
de33aea2e5 Update cargo-deny@latest to 0.17.0 2025-02-20 20:09:17 +09:00
Taiki Endo
69a1d2b891 Release 2.48.17 2025-02-20 20:02:50 +09:00
Taiki Endo
c57ce37e13 Update wasmtime@latest to 30.0.0 2025-02-20 13:15:42 +09:00
Taiki Endo
7afac3d3be Release 2.48.16 2025-02-20 03:39:57 +09:00
Taiki Endo
c036d35ea6 Update typos@latest to 1.29.8 2025-02-20 03:36:15 +09:00
Taiki Endo
54b836426b Release 2.48.15 2025-02-19 02:10:33 +09:00
Taiki Endo
9fff09cbe0 Update xh@latest to 0.24.0 2025-02-18 18:14:12 +09:00
Taiki Endo
13b3c51a32 Release 2.48.14 2025-02-18 09:08:33 +09:00
Taiki Endo
3ccbe21af2 Update mdbook@latest to 0.4.45 2025-02-18 06:13:44 +09:00
Taiki Endo
ad0904967b Release 2.48.13 2025-02-17 02:17:11 +09:00
Taiki Endo
3fc69e7246 tools: Update publish.sh 2025-02-17 02:16:54 +09:00
Taiki Endo
f45576468f codegen: zola now provides AArch64 Linux binary 2025-02-17 02:16:06 +09:00
Taiki Endo
7b30dcdca1 Mark zola as glibc_pre_2_35_incompat
```
zola: /lib64/libm.so.6: version `GLIBC_2.35' not found (required by zola)
```
2025-02-17 02:16:06 +09:00
Taiki Endo
f188d3633d Update zola@latest to 0.20.0 2025-02-17 02:16:06 +09:00
Taiki Endo
83080f843d Update cargo-binstall@latest to 1.11.0 2025-02-17 02:16:06 +09:00
Taiki Endo
7bcfa52bea Release 2.48.12 2025-02-15 03:15:59 +09:00
Taiki Endo
f8ea9d2f10 Update rclone@latest to 1.69.1 2025-02-15 03:14:15 +09:00
Taiki Endo
dfe4a92949 Update cargo-tarpaulin@latest to 0.32.0 2025-02-14 21:15:19 +09:00
Taiki Endo
85f2be18a0 Update cargo-nextest@latest to 0.9.91 2025-02-14 11:03:25 +09:00
Taiki Endo
297054b274 Release 2.48.11 2025-02-14 10:55:03 +09:00
Taiki Endo
bdbb267a22 Update typos@latest to 1.29.7 2025-02-14 03:18:51 +09:00
Taiki Endo
ae9d9ea210 Release 2.48.10 2025-02-13 10:48:20 +09:00
Taiki Endo
df7d9c70b5 Update cargo-nextest@latest to 0.9.90 2025-02-13 09:29:48 +09:00
Taiki Endo
174dd15542 Update cargo-binstall@latest to 1.10.23 2025-02-12 13:09:48 +09:00
Taiki Endo
995f97569c Release 2.48.9 2025-02-11 21:28:32 +09:00
Taiki Endo
8492d65459 Update cargo-spellcheck@latest to 0.15.2 2025-02-11 21:19:24 +09:00
Taiki Endo
23db74cab2 Release 2.48.8 2025-02-11 19:00:49 +09:00
Taiki Endo
b95243b2fd Simplify template version replace in read_download_info 2025-02-11 18:55:50 +09:00
Taiki Endo
804d0fbae7 Revert "codegen: Update ureq from 2 to 3"
This reverts commit bee06ee963.

See https://github.com/taiki-e/install-action/pull/831#issuecomment-2650284580.
2025-02-11 18:45:46 +09:00
Taiki Endo
c92f25fe23 codegen: Dedup x86_64_windows/aarch64_windows 2025-02-11 18:41:00 +09:00
Taiki Endo
771bd4fef9 codegen: Tweak code around BufWriter 2025-02-11 18:40:20 +09:00
Taiki Endo
dd213e8db4 Update cargo-no-dev-deps@latest to 0.2.15 2025-02-11 18:38:26 +09:00
Taiki Endo
63b321e245 Update cargo-minimal-versions@latest to 0.1.30 2025-02-11 18:38:26 +09:00
Taiki Endo
f8eeeb3526 Update cargo-hack@latest to 0.6.35 2025-02-11 18:38:26 +09:00
Taiki Endo
82c3ccf997 Release 2.48.7 2025-02-11 06:35:24 +09:00
Taiki Endo
4ba684457e Update cargo-nextest@latest to 0.9.89 2025-02-11 06:33:50 +09:00
Taiki Endo
5bc300ae62 Release 2.48.6 2025-02-10 19:58:20 +09:00
Taiki Endo
a07119b7b1 Update cargo-spellcheck@latest to 0.15.1 2025-02-10 18:40:38 +09:00
Taiki Endo
c1952a69c3 Release 2.48.5 2025-02-10 10:50:11 +09:00
Taiki Endo
b24387dafd Update release-plz@latest to 0.3.120 2025-02-10 06:33:09 +09:00
Taiki Endo
5ae641ad51 Release 2.48.4 2025-02-10 00:39:10 +09:00
Taiki Endo
4fa427fe8e Update cargo-zigbuild@latest to 0.19.8 2025-02-10 00:36:11 +09:00
Taiki Endo
1bfd4d7803 Release 2.48.3 2025-02-09 21:56:18 +09:00
Taiki Endo
128658a456 Update release-plz@latest to 0.3.119 2025-02-09 21:39:11 +09:00
Taiki Endo
a2e9aff0dd Release 2.48.2 2025-02-09 10:10:00 +09:00
Taiki Endo
cc0065f838 Update release-plz@latest to 0.3.118 2025-02-09 10:09:19 +09:00
Taiki Endo
be9e3c2b45 Update readme 2025-02-09 02:54:59 +09:00
Taiki Endo
e067f32759 Remove needless escape 2025-02-09 02:54:13 +09:00
Taiki Endo
98c0ece291 Update comments 2025-02-08 15:38:36 +09:00
Taiki Endo
bee06ee963 codegen: Update ureq from 2 to 3 2025-02-06 23:24:03 +09:00
Taiki Endo
daca891144 Update parse-dockerfile@latest to 0.1.1 2025-02-06 22:24:27 +09:00
Taiki Endo
de09ec7413 Update parse-changelog@latest to 0.6.12 2025-02-06 22:24:27 +09:00
Taiki Endo
20d06c5ef0 Fix jq handling on Windows
Fix regression introduced in unreleased 400052b460.
2025-02-05 21:24:56 +09:00
Taiki Endo
8fe89aa3e0 gitattributes: Disable linguist detection for tools/tidy.sh 2025-02-05 15:55:23 +09:00
Taiki Endo
4666e04560 tools: Update tidy.sh and related configs 2025-02-04 01:29:05 +09:00
Taiki Endo
400052b460 Clean up scripts 2025-02-04 01:28:26 +09:00
Taiki Endo
f9f8058789 Add .git-blame-ignore-revs 2025-02-04 01:10:30 +09:00
Taiki Endo
72827a9779 ci: Move manifest job to its own workflow to reduce needless test runs 2025-02-04 00:23:41 +09:00
Taiki Endo
55ec4a4d53 Remove duplicate in action.yml 2025-02-03 22:15:36 +09:00
Taiki Endo
dc9bc151a3 Update .cspell.json 2025-02-03 07:27:19 +09:00
Taiki Endo
510b3ecd79 Release 2.48.1 2025-02-02 17:05:06 +09:00
Taiki Endo
536c746821 Update dprint@latest to 0.49.0 2025-02-02 13:18:01 +09:00
Taiki Endo
0dfccb316f Release 2.48.0 2025-02-02 05:33:29 +09:00
Taiki Endo
ceb86e31f0 Update changelog 2025-02-02 05:33:04 +09:00
Taiki Endo
33d49f65f5 Add parse-dockerfile 2025-02-02 05:32:11 +09:00
Taiki Endo
1182afdbd1 ci: Update reusable workflows 2025-02-02 05:23:22 +09:00
Taiki Endo
bf0c8c6dfb Update release-plz@latest to 0.3.116 2025-02-02 04:43:07 +09:00
Taiki Endo
ebb53fb1a9 ci: Use taiki-e/github-actions/.github/workflows/test.yml reusable workflow 2025-02-01 03:10:51 +09:00
Taiki Endo
0b0596dd1e ci: Temporarily disable buggy ubuntu-24.04-arm runner
cargo-binstall or cargo called from it sometime crashes.
2025-02-01 03:10:22 +09:00
Taiki Endo
65835784ac Release 2.47.32 2025-01-31 14:32:14 +09:00
Taiki Endo
01f3d2d227 Update typos@latest to 1.29.5 2025-01-31 09:36:13 +09:00
Taiki Endo
76a1fec160 Release 2.47.31 2025-01-30 14:14:31 +09:00
Taiki Endo
78b9ec82a6 Update changelog 2025-01-30 14:14:11 +09:00
Taiki Endo
be22d29d34 Fix clippy::unnecessary_semicolon warning
```
error: unnecessary semicolon
   --> tools/codegen/src/main.rs:251:10
    |
251 |         };
    |          ^ help: remove
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_semicolon
    = note: `-D clippy::unnecessary-semicolon` implied by `-D warnings`
    = help: to override `-D warnings` add `#[allow(clippy::unnecessary_semicolon)]`
```
2025-01-30 14:03:36 +09:00
Taiki Endo
e466aa8e34 Update wash manifest 2025-01-30 06:14:20 +09:00
Taiki Endo
afbe5c1715 Release 2.47.30 2025-01-29 08:24:34 +09:00
Taiki Endo
6fde044d27 codegen: Address cargo-cyclonedx 0.5.1 asset change 2025-01-29 08:18:24 +09:00
Taiki Endo
544f616845 ci: Remove not triggered manifest_sync workflow 2025-01-29 08:17:10 +09:00
52 changed files with 2705 additions and 745 deletions

View File

@@ -27,24 +27,25 @@
"ignoreRegExpList": [ "ignoreRegExpList": [
// Copyright notice // Copyright notice
"Copyright .*", "Copyright .*",
"SPDX-(File|Snippet)CopyrightText: .*",
// GHA actions/workflows // GHA actions/workflows
"uses: .+@", "uses: .+@[\\w_.-]+",
// GHA context (repo name, owner name, etc.) // GHA context (repo name, owner name, etc.)
"github.\\w+ (=|!)= '.+'", "github.[\\w_.-]+ (=|!)= '[^']+'",
// GH username // GH username
"( |\\[)@[\\w_-]+", "( |\\[)@[\\w_-]+",
// Git config username // Git config username
"git config user.name .*", "git config( --[^ ]+)? user.name .*",
// Username in todo comment // Username in TODO|FIXME comment
"(TODO|FIXME)\\([\\w_., -]+\\)", "(TODO|FIXME)\\([\\w_., -]+\\)",
// Cargo.toml authors // Cargo.toml authors
"authors *= *\\[.*\\]", "authors *= *\\[[^\\]]*\\]",
"\".* <[\\w_.+-]+@[\\w.-]+>\"" "\"[^\"]* <[\\w_.+-]+@[\\w.-]+>\""
], ],
"languageSettings": [ "languageSettings": [
{ {
"languageId": ["*"], "languageId": ["*"],
"dictionaries": ["bash", "rust"] "dictionaries": ["bash", "cpp-refined", "rust"]
} }
], ],
"ignorePaths": [] "ignorePaths": []

View File

@@ -11,12 +11,14 @@ indent_style = space
insert_final_newline = true insert_final_newline = true
trim_trailing_whitespace = true trim_trailing_whitespace = true
[*.{json,md,rb,sh,yml,yaml}] [*.{css,html,json,md,rb,sh,yml,yaml}]
indent_size = 2 indent_size = 2
[*.{js,yml,yaml}] [*.{js,yml,yaml}]
quote_type = single quote_type = single
[*.sh] [*.sh]
# https://google.github.io/styleguide/shellguide.html#s5.3-pipelines
binary_next_line = true binary_next_line = true
# https://google.github.io/styleguide/shellguide.html#s5.5-case-statement
switch_case_indent = true switch_case_indent = true

2
.git-blame-ignore-revs Normal file
View File

@@ -0,0 +1,2 @@
# Change indent size of shell script files to match scripts in CI config
946918579413996845b77e146aa8eb3c6f40f7ab

1
.gitattributes vendored
View File

@@ -1,3 +1,4 @@
* text=auto eol=lf * text=auto eol=lf
tools/tidy.sh linguist-detectable=false
.github/.cspell/rust-dependencies.txt linguist-generated .github/.cspell/rust-dependencies.txt linguist-generated
manifests/** linguist-generated manifests/** linguist-generated

View File

@@ -6,6 +6,9 @@ updates:
interval: daily interval: daily
commit-message: commit-message:
prefix: '' prefix: ''
ignore:
# https://github.com/taiki-e/install-action/pull/831#issuecomment-2650284580
- dependency-name: ureq
labels: [] labels: []
- package-ecosystem: github-actions - package-ecosystem: github-actions
directory: / directory: /

View File

@@ -11,7 +11,7 @@ on:
- dev - dev
- ci-* - ci-*
schedule: schedule:
- cron: '0 0,3,6,9,12,15,18,21 * * *' - cron: '0 0 * * *'
workflow_dispatch: workflow_dispatch:
env: env:
@@ -22,8 +22,6 @@ env:
RUST_BACKTRACE: 1 RUST_BACKTRACE: 1
RUSTFLAGS: -D warnings RUSTFLAGS: -D warnings
RUSTUP_MAX_RETRIES: 10 RUSTUP_MAX_RETRIES: 10
# NB: sync with miri job's --exclude option
EXCLUDE: --exclude install-action-internal-codegen
defaults: defaults:
run: run:
@@ -37,13 +35,16 @@ jobs:
miri: miri:
uses: taiki-e/github-actions/.github/workflows/miri.yml@main uses: taiki-e/github-actions/.github/workflows/miri.yml@main
with: with:
event_name: ${{ github.event_name }} # NB: sync with test job's --exclude option
# NB: sync with env.EXCLUDE
args: --exclude install-action-internal-codegen args: --exclude install-action-internal-codegen
msrv: msrv:
uses: taiki-e/github-actions/.github/workflows/msrv.yml@main uses: taiki-e/github-actions/.github/workflows/msrv.yml@main
test-manifest-schema:
uses: taiki-e/github-actions/.github/workflows/test.yml@main
with: with:
event_name: ${{ github.event_name }} # NB: sync with miri job's --exclude option
test-args: --exclude install-action-internal-codegen
no-std: false
tidy: tidy:
uses: taiki-e/github-actions/.github/workflows/tidy.yml@main uses: taiki-e/github-actions/.github/workflows/tidy.yml@main
permissions: permissions:
@@ -231,71 +232,3 @@ jobs:
shell: sh shell: sh
# TODO: OCI runtime exec failed: exec failed: unable to start container process: exec: "sh": executable file not found in $PATH: unknown # 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')) if: (!startsWith(matrix.container, 'opensuse'))
manifest:
runs-on: ubuntu-latest
timeout-minutes: 60
permissions:
contents: read
pull-requests: write # for gh pr review --approve
steps:
- uses: taiki-e/checkout-action@v1
- uses: taiki-e/github-actions/install-rust@stable
- name: Generate Cargo.lock
run: cargo update
- uses: Swatinem/rust-cache@v2
with:
cache-all-crates: 'true'
- run: tools/manifest.sh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Handle diff
id: diff
run: tools/ci/manifest.sh
if: github.repository_owner == 'taiki-e' && (github.event_name == 'schedule' || github.event_name == 'push' && github.ref == 'refs/heads/main')
- run: git add -N . && git diff --exit-code
- id: create-pull-request
uses: peter-evans/create-pull-request@v7
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 == '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 == '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 == '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')
manifest-schema:
strategy:
fail-fast: false
matrix:
rust:
- stable
- beta
- nightly
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: taiki-e/checkout-action@v1
- uses: taiki-e/github-actions/install-rust@main
with:
toolchain: ${{ matrix.rust }}
- uses: taiki-e/install-action@cargo-hack
- uses: taiki-e/install-action@cargo-minimal-versions
- run: cargo test --workspace --all-features ${EXCLUDE}
- run: cargo hack build --workspace --no-private --feature-powerset --no-dev-deps
- run: cargo minimal-versions build --workspace --no-private --detach-path-deps=skip-exact --all-features
- run: cargo minimal-versions build --workspace --no-private --detach-path-deps=skip-exact --all-features --direct

79
.github/workflows/manifest.yml vendored Normal file
View File

@@ -0,0 +1,79 @@
name: Manifest
permissions:
contents: read
on:
pull_request:
push:
branches:
- main
- dev
- ci-*
schedule:
- cron: '0 0,3,6,9,12,15,18,21 * * *'
workflow_dispatch:
env:
CARGO_INCREMENTAL: 0
CARGO_NET_GIT_FETCH_WITH_CLI: true
CARGO_NET_RETRY: 10
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
RUSTFLAGS: -D warnings
RUSTUP_MAX_RETRIES: 10
defaults:
run:
shell: bash --noprofile --norc -CeEuxo pipefail {0}
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
jobs:
manifest:
runs-on: ubuntu-latest
timeout-minutes: 60
permissions:
contents: read
pull-requests: write # for gh pr review --approve
steps:
- uses: taiki-e/checkout-action@v1
- uses: taiki-e/github-actions/install-rust@stable
- name: Generate Cargo.lock
run: cargo update
- uses: Swatinem/rust-cache@v2
with:
cache-all-crates: 'true'
- run: tools/manifest.sh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Handle diff
id: diff
run: tools/ci/manifest.sh
if: github.repository_owner == 'taiki-e' && (github.event_name == 'schedule' || 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@v7
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 == '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 == '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 == '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

@@ -1,51 +0,0 @@
name: Manifest Synchronization
permissions:
contents: read
on:
release:
types: [published]
env:
WORKSPACE: /tmp/workspace
defaults:
run:
shell: bash --noprofile --norc -CeEuxo pipefail {0}
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: true
- name: Checkout manifest-schema branch
run: ./tools/ci/checkout-manifest-schema-branch.sh "${WORKSPACE}"
- name: Copy over schema
run: cp -- ./manifests/* "${WORKSPACE}"
- name: Stage changes
working-directory: ${{ env.WORKSPACE }}
run: git add .
- name: Show diff
working-directory: ${{ env.WORKSPACE }}
run: git diff HEAD
- name: Detect changes
id: changes
working-directory: ${{ env.WORKSPACE }}
run: |
# This output boolean tells us if the dependencies have actually changed
printf "count=%s\n" "$(git status --porcelain=v1 | wc -l)" >>"${GITHUB_OUTPUT}"
- name: Commit and push
# Only push if changes exist
if: steps.changes.outputs.count > 0
working-directory: ${{ env.WORKSPACE }}
run: |
git commit -m "Update manifest schema" && git push origin HEAD

View File

@@ -2,7 +2,7 @@
config: config:
line-length: false # MD013 line-length: false # MD013
no-duplicate-heading: false # MD024 no-duplicate-heading: false # MD024
no-blanks-blockquote: false # MD028 no-blanks-blockquote: false # MD028 (this warns valid GFM alerts usage)
no-inline-html: false # MD033 no-inline-html: false # MD033
no-emphasis-as-heading: false # MD036 no-emphasis-as-heading: false # MD036

View File

@@ -8,7 +8,6 @@ error_on_line_overflow = true
# Override the default formatting style. # Override the default formatting style.
# See https://internals.rust-lang.org/t/running-rustfmt-on-rust-lang-rust-and-other-rust-lang-repositories/8732/81. # See https://internals.rust-lang.org/t/running-rustfmt-on-rust-lang-rust-and-other-rust-lang-repositories/8732/81.
use_small_heuristics = "Max" use_small_heuristics = "Max"
# This is the default of 2024 edition https://github.com/rust-lang/rust/pull/114764.
# This is unstable (tracking issue: https://github.com/rust-lang/rustfmt/issues/3370) # This is unstable (tracking issue: https://github.com/rust-lang/rustfmt/issues/3370)
overflow_delimited_expr = true overflow_delimited_expr = true
# This is unstable (tracking issue: https://github.com/rust-lang/rustfmt/issues/4991). # This is unstable (tracking issue: https://github.com/rust-lang/rustfmt/issues/4991).
@@ -27,6 +26,7 @@ use_try_shorthand = true
# Set the default settings again to always apply the proper formatting without # Set the default settings again to always apply the proper formatting without
# being affected by the editor settings. # being affected by the editor settings.
edition = "2021" edition = "2021"
style_edition = "2024"
hard_tabs = false hard_tabs = false
newline_style = "Unix" newline_style = "Unix"
tab_spaces = 4 tab_spaces = 4

View File

@@ -2,13 +2,34 @@
# https://github.com/koalaman/shellcheck/blob/HEAD/shellcheck.1.md#rc-files # https://github.com/koalaman/shellcheck/blob/HEAD/shellcheck.1.md#rc-files
# See also: # See also:
# https://www.shellcheck.net/wiki/Optional # https://github.com/koalaman/shellcheck/wiki/Optional
# https://google.github.io/styleguide/shellguide.html # https://google.github.io/styleguide/shellguide.html
# https://www.shellcheck.net/wiki/SC2292 # https://github.com/koalaman/shellcheck/wiki/SC2249
# enable=add-default-case
# https://github.com/koalaman/shellcheck/wiki/SC2244
enable=avoid-nullary-conditions
# https://github.com/koalaman/shellcheck/wiki/SC2312
# enable=check-extra-masked-returns
# https://github.com/koalaman/shellcheck/wiki/SC2310
# https://github.com/koalaman/shellcheck/wiki/SC2311
# enable=check-set-e-suppressed
# enable=check-unassigned-uppercase
# https://github.com/koalaman/shellcheck/wiki/SC2230
enable=deprecate-which
# https://github.com/koalaman/shellcheck/wiki/SC2248
enable=quote-safe-variables
# https://github.com/koalaman/shellcheck/wiki/SC2292
# https://google.github.io/styleguide/shellguide.html#s6.3-tests # https://google.github.io/styleguide/shellguide.html#s6.3-tests
enable=require-double-brackets enable=require-double-brackets
# https://www.shellcheck.net/wiki/SC2250 # https://github.com/koalaman/shellcheck/wiki/SC2250
# https://google.github.io/styleguide/shellguide.html#s5.6-variable-expansion # https://google.github.io/styleguide/shellguide.html#s5.6-variable-expansion
enable=require-variable-braces enable=require-variable-braces

View File

@@ -10,6 +10,152 @@ Note: In this file, do not use the hard wrap in the middle of a sentence for com
## [Unreleased] ## [Unreleased]
## [2.49.2] - 2025-02-25
- Update `sccache@latest` to 0.10.0.
- Update `cargo-machete@latest` to 0.8.0.
## [2.49.1] - 2025-02-24
- Update `cargo-deny@latest` to 0.18.0.
## [2.49.0] - 2025-02-23
- Allow installing pre-release versions using binstall. ([#868](https://github.com/taiki-e/install-action/pull/868))
## [2.48.22] - 2025-02-23
- Update `cargo-binstall@latest` to 1.11.1.
- Update `release-plz@latest` to 0.3.122.
## [2.48.21] - 2025-02-22
- Update `wasmtime@latest` to 30.0.1.
- Update `syft@latest` to 1.20.0.
## [2.48.20] - 2025-02-21
- Update `cargo-udeps@latest` to 0.1.55.
## [2.48.19] - 2025-02-20
- Update `typos@latest` to 1.29.9.
## [2.48.18] - 2025-02-20
- Update `cargo-deny@latest` to 0.17.0.
## [2.48.17] - 2025-02-20
- Update `wasmtime@latest` to 30.0.0.
## [2.48.16] - 2025-02-19
- Update `typos@latest` to 1.29.8.
## [2.48.15] - 2025-02-18
- Update `xh@latest` to 0.24.0.
## [2.48.14] - 2025-02-18
- Update `mdbook@latest` to 0.4.45.
## [2.48.13] - 2025-02-16
- Support `zola` on AArch64 Linux.
- Update `zola@latest` to 0.20.0.
- Update `cargo-binstall@latest` to 1.11.0.
## [2.48.12] - 2025-02-14
- Update `rclone@latest` to 1.69.1.
- Update `cargo-tarpaulin@latest` to 0.32.0.
- Update `cargo-nextest@latest` to 0.9.91.
## [2.48.11] - 2025-02-14
- Update `typos@latest` to 1.29.7.
## [2.48.10] - 2025-02-13
- Update `cargo-nextest@latest` to 0.9.90.
- Update `cargo-binstall@latest` to 1.10.23.
## [2.48.9] - 2025-02-11
- Update `cargo-spellcheck@latest` to 0.15.2.
## [2.48.8] - 2025-02-11
- Update `cargo-no-dev-deps@latest` to 0.2.15.
- Update `cargo-minimal-versions@latest` to 0.1.30.
- Update `cargo-hack@latest` to 0.6.35.
## [2.48.7] - 2025-02-10
- Update `cargo-nextest@latest` to 0.9.89.
## [2.48.6] - 2025-02-10
- Update `cargo-spellcheck@latest` to 0.15.1.
## [2.48.5] - 2025-02-10
- Update `release-plz@latest` to 0.3.120.
## [2.48.4] - 2025-02-09
- Update `cargo-zigbuild@latest` to 0.19.8.
## [2.48.3] - 2025-02-09
- Update `release-plz@latest` to 0.3.119.
## [2.48.2] - 2025-02-09
- Update `release-plz@latest` to 0.3.118.
- Update `parse-dockerfile@latest` to 0.1.1.
- Update `parse-changelog@latest` to 0.6.12.
## [2.48.1] - 2025-02-02
- Update `dprint@latest` to 0.49.0.
## [2.48.0] - 2025-02-01
- Support `parse-dockerfile`. ([#838](https://github.com/taiki-e/install-action/pull/838))
- Update `release-plz@latest` to 0.3.116.
## [2.47.32] - 2025-01-31
- Update `typos@latest` to 1.29.5.
## [2.47.31] - 2025-01-30
- Fix checksum error with `wash@0.38.0` on macOS. (They rebuilt binaries for some reason.)
## [2.47.30] - 2025-01-28
- Support `cargo-cyclonedx` on x86_64 Linux (musl).
- Support installing native binary for `cargo-cyclonedx` on AArch64 macOS. (Previously x86_64 macOS binary is used as fallback.)
- Update `cargo-cyclonedx@latest` to 0.5.7.
## [2.47.29] - 2025-01-28 ## [2.47.29] - 2025-01-28
- Support `cargo-semver-checks` on AArch64 Linux. - Support `cargo-semver-checks` on AArch64 Linux.
@@ -3422,7 +3568,36 @@ 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.29...HEAD [Unreleased]: https://github.com/taiki-e/install-action/compare/v2.49.2...HEAD
[2.49.2]: https://github.com/taiki-e/install-action/compare/v2.49.1...v2.49.2
[2.49.1]: https://github.com/taiki-e/install-action/compare/v2.49.0...v2.49.1
[2.49.0]: https://github.com/taiki-e/install-action/compare/v2.48.22...v2.49.0
[2.48.22]: https://github.com/taiki-e/install-action/compare/v2.48.21...v2.48.22
[2.48.21]: https://github.com/taiki-e/install-action/compare/v2.48.20...v2.48.21
[2.48.20]: https://github.com/taiki-e/install-action/compare/v2.48.19...v2.48.20
[2.48.19]: https://github.com/taiki-e/install-action/compare/v2.48.18...v2.48.19
[2.48.18]: https://github.com/taiki-e/install-action/compare/v2.48.17...v2.48.18
[2.48.17]: https://github.com/taiki-e/install-action/compare/v2.48.16...v2.48.17
[2.48.16]: https://github.com/taiki-e/install-action/compare/v2.48.15...v2.48.16
[2.48.15]: https://github.com/taiki-e/install-action/compare/v2.48.14...v2.48.15
[2.48.14]: https://github.com/taiki-e/install-action/compare/v2.48.13...v2.48.14
[2.48.13]: https://github.com/taiki-e/install-action/compare/v2.48.12...v2.48.13
[2.48.12]: https://github.com/taiki-e/install-action/compare/v2.48.11...v2.48.12
[2.48.11]: https://github.com/taiki-e/install-action/compare/v2.48.10...v2.48.11
[2.48.10]: https://github.com/taiki-e/install-action/compare/v2.48.9...v2.48.10
[2.48.9]: https://github.com/taiki-e/install-action/compare/v2.48.8...v2.48.9
[2.48.8]: https://github.com/taiki-e/install-action/compare/v2.48.7...v2.48.8
[2.48.7]: https://github.com/taiki-e/install-action/compare/v2.48.6...v2.48.7
[2.48.6]: https://github.com/taiki-e/install-action/compare/v2.48.5...v2.48.6
[2.48.5]: https://github.com/taiki-e/install-action/compare/v2.48.4...v2.48.5
[2.48.4]: https://github.com/taiki-e/install-action/compare/v2.48.3...v2.48.4
[2.48.3]: https://github.com/taiki-e/install-action/compare/v2.48.2...v2.48.3
[2.48.2]: https://github.com/taiki-e/install-action/compare/v2.48.1...v2.48.2
[2.48.1]: https://github.com/taiki-e/install-action/compare/v2.48.0...v2.48.1
[2.48.0]: https://github.com/taiki-e/install-action/compare/v2.47.32...v2.48.0
[2.47.32]: https://github.com/taiki-e/install-action/compare/v2.47.31...v2.47.32
[2.47.31]: https://github.com/taiki-e/install-action/compare/v2.47.30...v2.47.31
[2.47.30]: https://github.com/taiki-e/install-action/compare/v2.47.29...v2.47.30
[2.47.29]: https://github.com/taiki-e/install-action/compare/v2.47.28...v2.47.29 [2.47.29]: https://github.com/taiki-e/install-action/compare/v2.47.28...v2.47.29
[2.47.28]: https://github.com/taiki-e/install-action/compare/v2.47.27...v2.47.28 [2.47.28]: https://github.com/taiki-e/install-action/compare/v2.47.27...v2.47.28
[2.47.27]: https://github.com/taiki-e/install-action/compare/v2.47.26...v2.47.27 [2.47.27]: https://github.com/taiki-e/install-action/compare/v2.47.26...v2.47.27

View File

@@ -3,7 +3,7 @@ resolver = "2"
members = ["tools/codegen", "tools/manifest-schema"] members = ["tools/codegen", "tools/manifest-schema"]
# This table is shared by projects under github.com/taiki-e. # This table is shared by projects under github.com/taiki-e.
# It is not intended for manual editing. # Expect for unexpected_cfgs.check-cfg, it is not intended for manual editing.
[workspace.lints.rust] [workspace.lints.rust]
deprecated_safe = "warn" deprecated_safe = "warn"
improper_ctypes = "warn" improper_ctypes = "warn"

View File

@@ -116,7 +116,7 @@ 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+
- jq 1.3+ - 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).

View File

@@ -52,6 +52,7 @@ See the [Supported tools section in README.md](README.md#supported-tools) for ho
| [**mdbook-linkcheck**](https://github.com/Michael-F-Bryan/mdbook-linkcheck) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/Michael-F-Bryan/mdbook-linkcheck/releases) | Linux, macOS, Windows | [MIT](https://github.com/Michael-F-Bryan/mdbook-linkcheck/blob/master/LICENSE) | | [**mdbook-linkcheck**](https://github.com/Michael-F-Bryan/mdbook-linkcheck) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/Michael-F-Bryan/mdbook-linkcheck/releases) | Linux, macOS, Windows | [MIT](https://github.com/Michael-F-Bryan/mdbook-linkcheck/blob/master/LICENSE) |
| [**osv-scanner**](https://github.com/google/osv-scanner) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/google/osv-scanner/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/google/osv-scanner/blob/main/LICENSE) | | [**osv-scanner**](https://github.com/google/osv-scanner) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/google/osv-scanner/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/google/osv-scanner/blob/main/LICENSE) |
| [**parse-changelog**](https://github.com/taiki-e/parse-changelog) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/taiki-e/parse-changelog/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/taiki-e/parse-changelog/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/parse-changelog/blob/main/LICENSE-MIT) | | [**parse-changelog**](https://github.com/taiki-e/parse-changelog) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/taiki-e/parse-changelog/releases) | Linux, macOS, Windows | [Apache-2.0](https://github.com/taiki-e/parse-changelog/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/parse-changelog/blob/main/LICENSE-MIT) |
| [**parse-dockerfile**](https://github.com/taiki-e/parse-dockerfile) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/taiki-e/parse-dockerfile/releases) | Linux, macOS, Windows | [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) |
| [**protoc**](https://github.com/protocolbuffers/protobuf) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/protocolbuffers/protobuf/releases) | Linux, macOS, Windows | [BSD-3-Clause](https://github.com/protocolbuffers/protobuf/blob/HEAD/LICENSE) | | [**protoc**](https://github.com/protocolbuffers/protobuf) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/protocolbuffers/protobuf/releases) | Linux, macOS, Windows | [BSD-3-Clause](https://github.com/protocolbuffers/protobuf/blob/HEAD/LICENSE) |
| [**rclone**](https://github.com/rclone/rclone) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/rclone/rclone/releases) | Linux, macOS, Windows | [MIT](https://github.com/rclone/rclone/blob/master/COPYING) | | [**rclone**](https://github.com/rclone/rclone) | `$HOME/.install-action/bin` | [GitHub Releases](https://github.com/rclone/rclone/releases) | Linux, macOS, Windows | [MIT](https://github.com/rclone/rclone/blob/master/COPYING) |
| [**release-plz**](https://release-plz.dev/) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/release-plz/release-plz/releases) | Linux, macOS, Windows | [MIT](https://github.com/release-plz/release-plz/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/release-plz/release-plz/blob/main/LICENSE-APACHE) | | [**release-plz**](https://release-plz.dev/) | `$CARGO_HOME/bin` | [GitHub Releases](https://github.com/release-plz/release-plz/releases) | Linux, macOS, Windows | [MIT](https://github.com/release-plz/release-plz/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/release-plz/release-plz/blob/main/LICENSE-APACHE) |

View File

@@ -40,14 +40,8 @@ runs:
exit 1 exit 1
fi fi
fi fi
bash --noprofile --norc "${GITHUB_ACTION_PATH:?}/main.sh"
shell: sh shell: sh
env: if: runner.os == 'Linux'
INPUT_TOOL: ${{ inputs.tool }}
INPUT_CHECKSUM: ${{ inputs.checksum }}
INPUT_FALLBACK: ${{ inputs.fallback }}
DEFAULT_GITHUB_TOKEN: ${{ github.token }}
if: runner.os != 'Windows'
- run: bash --noprofile --norc "${GITHUB_ACTION_PATH:?}/main.sh" - run: bash --noprofile --norc "${GITHUB_ACTION_PATH:?}/main.sh"
shell: bash shell: bash
env: env:
@@ -55,4 +49,3 @@ runs:
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 }}
if: runner.os == 'Windows'

305
main.sh
View File

@@ -1,14 +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'
rx() { rx() {
local cmd="$1"
shift
( (
set -x set -x
"${cmd}" "$@" "$@"
) )
} }
retry() { retry() {
@@ -22,17 +20,17 @@ retry() {
"$@" "$@"
} }
bail() { bail() {
echo "::error::$*" printf '::error::%s\n' "$*"
exit 1 exit 1
} }
warn() { warn() {
echo "::warning::$*" printf '::warning::%s\n' "$*"
} }
info() { info() {
echo "info: $*" printf >&2 'info: %s\n' "$*"
} }
_sudo() { _sudo() {
if type -P sudo &>/dev/null; then if type -P sudo >/dev/null; then
sudo "$@" sudo "$@"
else else
"$@" "$@"
@@ -42,15 +40,15 @@ download_and_checksum() {
local url="$1" local url="$1"
local checksum="$2" local checksum="$2"
if [[ -z "${enable_checksum}" ]]; then if [[ -z "${enable_checksum}" ]]; then
checksum="" checksum=''
fi fi
info "downloading ${url}" info "downloading ${url}"
retry curl --proto '=https' --tlsv1.2 -fsSL --retry 10 "${url}" -o tmp retry curl --proto '=https' --tlsv1.2 -fsSL --retry 10 "${url}" -o tmp
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" sha256sum -c - >/dev/null <<<"${checksum} *tmp"
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" shasum -a 256 -c - >/dev/null <<<"${checksum} *tmp"
@@ -80,7 +78,7 @@ download_and_extract() {
editorconfig-checker) installed_bin=("${bin_dir}/${tool}${exe}") ;; editorconfig-checker) installed_bin=("${bin_dir}/${tool}${exe}") ;;
*) *)
for tmp in "${bin_in_archive[@]}"; do for tmp in "${bin_in_archive[@]}"; do
installed_bin+=("${bin_dir}/$(basename "${tmp}")") installed_bin+=("${bin_dir}/$(basename -- "${tmp}")")
done done
;; ;;
esac esac
@@ -88,70 +86,70 @@ download_and_extract() {
local tar_args=() local tar_args=()
case "${url}" in case "${url}" in
*.tar.gz | *.tgz) *.tar.gz | *.tgz)
tar_args+=("xzf") tar_args+=('xzf')
if ! type -P gzip &>/dev/null; then if ! type -P gzip >/dev/null; then
case "${base_distro}" in case "${base_distro}" in
debian | fedora | suse | arch | alpine) debian | fedora | suse | arch | alpine)
echo "::group::Install packages required for installation (gzip)" printf '::group::Install packages required for installation (gzip)\n'
sys_install gzip sys_install gzip
echo "::endgroup::" printf '::endgroup::\n'
;; ;;
esac esac
fi fi
;; ;;
*.tar.bz2 | *.tbz2) *.tar.bz2 | *.tbz2)
tar_args+=("xjf") tar_args+=('xjf')
if ! type -P bzip2 &>/dev/null; then if ! type -P bzip2 >/dev/null; then
case "${base_distro}" in case "${base_distro}" in
debian | fedora | suse | arch | alpine) debian | fedora | suse | arch | alpine)
echo "::group::Install packages required for installation (bzip2)" printf '::group::Install packages required for installation (bzip2)\n'
sys_install bzip2 sys_install bzip2
echo "::endgroup::" printf '::endgroup::\n'
;; ;;
esac esac
fi fi
;; ;;
*.tar.xz | *.txz) *.tar.xz | *.txz)
tar_args+=("xJf") tar_args+=('xJf')
if ! type -P xz &>/dev/null; then if ! type -P xz >/dev/null; then
case "${base_distro}" in case "${base_distro}" in
debian) debian)
echo "::group::Install packages required for installation (xz-utils)" printf '::group::Install packages required for installation (xz-utils)\n'
sys_install xz-utils sys_install xz-utils
echo "::endgroup::" printf '::endgroup::\n'
;; ;;
fedora | suse | arch | alpine) fedora | suse | arch | alpine)
echo "::group::Install packages required for installation (xz)" printf '::group::Install packages required for installation (xz)\n'
sys_install xz sys_install xz
echo "::endgroup::" printf '::endgroup::\n'
;; ;;
esac esac
fi fi
;; ;;
*.zip) *.zip)
if ! type -P unzip &>/dev/null; then if ! type -P unzip >/dev/null; then
case "${base_distro}" in case "${base_distro}" in
debian | fedora | suse | arch | alpine) debian | fedora | suse | arch | alpine)
echo "::group::Install packages required for installation (unzip)" printf '::group::Install packages required for installation (unzip)\n'
sys_install unzip sys_install unzip
echo "::endgroup::" printf '::endgroup::\n'
;; ;;
esac esac
fi fi
;; ;;
esac esac
mkdir -p "${tmp_dir}" mkdir -p -- "${tmp_dir}"
( (
cd "${tmp_dir}" cd -- "${tmp_dir}"
download_and_checksum "${url}" "${checksum}" download_and_checksum "${url}" "${checksum}"
if [[ ${#tar_args[@]} -gt 0 ]]; then if [[ ${#tar_args[@]} -gt 0 ]]; then
tar_args+=("tmp") tar_args+=("tmp")
tar "${tar_args[@]}" tar "${tar_args[@]}"
for tmp in "${bin_in_archive[@]}"; do for tmp in "${bin_in_archive[@]}"; do
case "${tool}" in case "${tool}" in
editorconfig-checker) mv "${tmp}" "${bin_dir}/${tool}${exe}" ;; editorconfig-checker) mv -- "${tmp}" "${bin_dir}/${tool}${exe}" ;;
*) mv "${tmp}" "${bin_dir}/" ;; *) mv -- "${tmp}" "${bin_dir}/" ;;
esac esac
done done
else else
@@ -160,20 +158,20 @@ download_and_extract() {
unzip -q tmp "${bin_in_archive#\./}" unzip -q tmp "${bin_in_archive#\./}"
for tmp in "${bin_in_archive[@]}"; do for tmp in "${bin_in_archive[@]}"; do
case "${tool}" in case "${tool}" in
editorconfig-checker) mv "${tmp}" "${bin_dir}/${tool}${exe}" ;; editorconfig-checker) mv -- "${tmp}" "${bin_dir}/${tool}${exe}" ;;
*) mv "${tmp}" "${bin_dir}/" ;; *) mv -- "${tmp}" "${bin_dir}/" ;;
esac esac
done done
;; ;;
*) *)
for tmp in "${installed_bin[@]}"; do for tmp in "${installed_bin[@]}"; do
mv tmp "${tmp}" mv -- tmp "${tmp}"
done done
;; ;;
esac esac
fi fi
) )
rm -rf "${tmp_dir}" rm -rf -- "${tmp_dir}"
case "${host_os}" in case "${host_os}" in
linux | macos) linux | macos)
@@ -189,28 +187,28 @@ read_manifest() {
local tool="$1" local tool="$1"
local version="$2" local version="$2"
local manifest local manifest
rust_crate=$(call_jq -r ".rust_crate" "${manifest_dir}/${tool}.json") rust_crate=$(jq -r '.rust_crate' "${manifest_dir}/${tool}.json")
manifest=$(call_jq -r ".[\"${version}\"]" "${manifest_dir}/${tool}.json") manifest=$(jq -r ".[\"${version}\"]" "${manifest_dir}/${tool}.json")
if [[ "${manifest}" == "null" ]]; then if [[ "${manifest}" == "null" ]]; then
download_info="null" download_info="null"
return 0 return 0
fi fi
exact_version=$(call_jq <<<"${manifest}" -r '.version') exact_version=$(jq -r '.version' <<<"${manifest}")
if [[ "${exact_version}" == "null" ]]; then if [[ "${exact_version}" == "null" ]]; then
exact_version="${version}" exact_version="${version}"
else else
manifest=$(call_jq -r ".[\"${exact_version}\"]" "${manifest_dir}/${tool}.json") manifest=$(jq -r ".[\"${exact_version}\"]" "${manifest_dir}/${tool}.json")
if [[ "${rust_crate}" != "null" ]]; then if [[ "${rust_crate}" != "null" ]]; then
# TODO: don't hardcode tool name and use 'immediate_yank_reflection' field in base manifest. # TODO: don't hardcode tool name and use 'immediate_yank_reflection' field in base manifest.
case "${tool}" in case "${tool}" in
cargo-nextest | nextest) cargo-nextest | nextest)
crate_info=$(retry curl --proto '=https' --tlsv1.2 -fsSL --retry 10 "https://crates.io/api/v1/crates/${rust_crate}") crate_info=$(retry curl --proto '=https' --tlsv1.2 -fsSL --retry 10 "https://crates.io/api/v1/crates/${rust_crate}")
while true; do while true; do
yanked=$(jq <<<"${crate_info}" -r ".versions[] | select(.num == \"${exact_version}\") | .yanked") yanked=$(jq -r ".versions[] | select(.num == \"${exact_version}\") | .yanked" <<<"${crate_info}")
if [[ "${yanked}" != "true" ]]; then if [[ "${yanked}" != "true" ]]; then
break break
fi fi
previous_stable_version=$(jq <<<"${manifest}" -r '.previous_stable_version') previous_stable_version=$(jq -r '.previous_stable_version' <<<"${manifest}")
if [[ "${previous_stable_version}" == "null" ]]; then if [[ "${previous_stable_version}" == "null" ]]; then
break break
fi fi
@@ -229,26 +227,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=$(call_jq <<<"${manifest}" -r ".${host_platform}") download_info=$(jq -r ".${host_platform}" <<<"${manifest}")
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=$(call_jq <<<"${manifest}" -r ".${host_platform}") download_info=$(jq -r ".${host_platform}" <<<"${manifest}")
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 | nextest) cargo-nextest | 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=$(sort <<<"${required_glibc_version}"$'\n'"${host_glibc_version}" -Vu | tail -1) higher_glibc_version=$(LC_ALL=C sort -Vu <<<"${required_glibc_version}"$'\n'"${host_glibc_version}" | 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 <<<"${manifest}" -r ".${host_platform}") download_info=$(jq -r ".${host_platform}" <<<"${manifest}")
fi fi
;; ;;
esac esac
@@ -258,10 +256,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=$(call_jq <<<"${manifest}" -r ".${host_platform}") download_info=$(jq -r ".${host_platform}" <<<"${manifest}")
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=$(call_jq <<<"${manifest}" -r ".${host_platform}") download_info=$(jq -r ".${host_platform}" <<<"${manifest}")
fi fi
;; ;;
*) bail "unsupported OS type '${host_os}' for ${tool}" ;; *) bail "unsupported OS type '${host_os}' for ${tool}" ;;
@@ -273,25 +271,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=$(call_jq <<<"${download_info}" -r '.checksum') checksum=$(jq -r '.checksum' <<<"${download_info}")
url=$(call_jq <<<"${download_info}" -r '.url') url=$(jq -r '.url' <<<"${download_info}")
local tmp local tmp
bin_in_archive=() bin_in_archive=()
if [[ "${url}" == "null" ]]; then if [[ "${url}" == "null" ]]; then
local template local template
template=$(call_jq -r ".template.${host_platform}" "${manifest_dir}/${tool}.json") template=$(jq -c ".template.${host_platform}" "${manifest_dir}/${tool}.json")
url=$(call_jq <<<"${template}" -r '.url') template="${template//\$\{version\}/${exact_version}}"
url="${url//\$\{version\}/${exact_version}}" url=$(jq -r '.url' <<<"${template}")
tmp=$(call_jq <<<"${template}" -r '.bin' | sed -E "s/\\$\\{version\\}/${exact_version}/g") tmp=$(jq -r '.bin' <<<"${template}")
if [[ "${tmp}" == *"["* ]]; then if [[ "${tmp}" == *"["* ]]; then
# shellcheck disable=SC2207 # shellcheck disable=SC2207
bin_in_archive=($(call_jq <<<"${template}" -r '.bin[]' | sed -E "s/\\$\\{version\\}/${exact_version}/g")) bin_in_archive=($(jq -r '.bin[]' <<<"${template}"))
fi fi
else else
tmp=$(call_jq <<<"${download_info}" -r '.bin') tmp=$(jq -r '.bin' <<<"${download_info}")
if [[ "${tmp}" == *"["* ]]; then if [[ "${tmp}" == *"["* ]]; then
# shellcheck disable=SC2207 # shellcheck disable=SC2207
bin_in_archive=($(call_jq <<<"${download_info}" -r '.bin[]')) bin_in_archive=($(jq -r '.bin[]' <<<"${download_info}"))
fi fi
fi fi
if [[ ${#bin_in_archive[@]} -eq 0 ]]; then if [[ ${#bin_in_archive[@]} -eq 0 ]]; then
@@ -318,23 +316,23 @@ download_from_download_info() {
} }
install_cargo_binstall() { install_cargo_binstall() {
local binstall_version local binstall_version
binstall_version=$(call_jq -r '.latest.version' "${manifest_dir}/cargo-binstall.json") binstall_version=$(jq -r '.latest.version' "${manifest_dir}/cargo-binstall.json")
local install_binstall='1' local install_binstall=1
_binstall_version=$("cargo-binstall${exe}" binstall -V 2>/dev/null || echo "") _binstall_version=$("cargo-binstall${exe}" binstall -V 2>/dev/null || true)
if [[ -n "${_binstall_version}" ]]; then if [[ -n "${_binstall_version}" ]]; then
if [[ "${_binstall_version}" == "${binstall_version}" ]]; then if [[ "${_binstall_version}" == "${binstall_version}" ]]; then
info "cargo-binstall already installed at ${cargo_bin}/cargo-binstall${exe}" info "cargo-binstall already installed at ${cargo_bin}/cargo-binstall${exe}"
install_binstall='' install_binstall=''
else else
info "cargo-binstall already installed at ${cargo_bin}/cargo-binstall${exe}, but is not compatible version with install-action, upgrading" info "cargo-binstall already installed at ${cargo_bin}/cargo-binstall${exe}, but is not compatible version with install-action, upgrading"
rm "${cargo_bin}/cargo-binstall${exe}" rm -- "${cargo_bin}/cargo-binstall${exe}"
fi fi
fi fi
if [[ -n "${install_binstall}" ]]; then if [[ -n "${install_binstall}" ]]; then
info "installing cargo-binstall@latest (${binstall_version})" info "installing cargo-binstall@latest (${binstall_version})"
download_from_manifest "cargo-binstall" "latest" download_from_manifest "cargo-binstall" "latest"
installed_at=$(type -P "cargo-binstall${exe}" || echo "") installed_at=$(type -P "cargo-binstall${exe}" || true)
if [[ -n "${installed_at}" ]]; then if [[ -n "${installed_at}" ]]; then
info "cargo-binstall installed at ${installed_at}" info "cargo-binstall installed at ${installed_at}"
else else
@@ -369,9 +367,9 @@ pacman_install() {
retry _sudo pacman -Sy --noconfirm "$@" retry _sudo pacman -Sy --noconfirm "$@"
} }
apk_install() { apk_install() {
if type -P sudo &>/dev/null; then if type -P sudo >/dev/null; then
retry sudo apk --no-cache add "$@" retry sudo apk --no-cache add "$@"
elif type -P doas &>/dev/null; then elif type -P doas >/dev/null; then
retry doas apk --no-cache add "$@" retry doas apk --no-cache add "$@"
else else
retry apk --no-cache add "$@" retry apk --no-cache add "$@"
@@ -389,19 +387,19 @@ sys_install() {
init_install_action_bin_dir() { init_install_action_bin_dir() {
if [[ -z "${init_install_action_bin:-}" ]]; then if [[ -z "${init_install_action_bin:-}" ]]; then
init_install_action_bin=1 init_install_action_bin=1
mkdir -p "${bin_dir}" mkdir -p -- "${bin_dir}"
export PATH="${PATH}:${bin_dir}" export PATH="${PATH}:${bin_dir}"
local _bin_dir local _bin_dir
_bin_dir=$(canonicalize_windows_path "${bin_dir}") _bin_dir=$(canonicalize_windows_path "${bin_dir}")
# TODO: avoid this when already added # TODO: avoid this when already added
info "adding '${_bin_dir}' to PATH" info "adding '${_bin_dir}' to PATH"
echo "${_bin_dir}" >>"${GITHUB_PATH}" printf '%s\n' "${_bin_dir}" >>"${GITHUB_PATH}"
fi fi
} }
canonicalize_windows_path() { canonicalize_windows_path() {
case "${host_os}" in case "${host_os}" in
windows) sed <<<"$1" 's/^\/cygdrive\//\//; s/^\/c\//C:\\/; s/\//\\/g' ;; windows) sed -E 's/^\/cygdrive\//\//; s/^\/c\//C:\\/; s/\//\\/g' <<<"$1" ;;
*) echo "$1" ;; *) printf '%s\n' "$1" ;;
esac esac
} }
@@ -415,7 +413,7 @@ if [[ $# -gt 0 ]]; then
fi fi
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
manifest_dir="$(dirname "$0")/manifests" manifest_dir="$(dirname -- "$0")/manifests"
# Inputs # Inputs
tool="${INPUT_TOOL:-}" tool="${INPUT_TOOL:-}"
@@ -446,17 +444,17 @@ case "${fallback}" in
esac esac
# Refs: https://github.com/rust-lang/rustup/blob/HEAD/rustup-init.sh # Refs: https://github.com/rust-lang/rustup/blob/HEAD/rustup-init.sh
base_distro="" base_distro=''
exe="" exe=''
case "$(uname -s)" in 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
host_env="musl" host_env=musl
else else
host_env="gnu" host_env=gnu
host_glibc_version=$(grep <<<"${ldd_version}" -E "GLIBC|GNU libc" | sed "s/.* //g") host_glibc_version=$(grep -E "GLIBC|GNU libc" <<<"${ldd_version}" | 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
@@ -471,14 +469,19 @@ case "$(uname -s)" in
else else
base_distro=$(grep -E '^ID=' /etc/os-release | cut -d= -f2) base_distro=$(grep -E '^ID=' /etc/os-release | cut -d= -f2)
fi fi
base_distro="${base_distro//\"/}"
elif [[ -e /etc/redhat-release ]]; then elif [[ -e /etc/redhat-release ]]; then
# /etc/os-release is available on RHEL/CentOS 7+
base_distro=fedora base_distro=fedora
elif [[ -e /etc/debian_version ]]; then
# /etc/os-release is available on Debian 7+
base_distro=debian
fi fi
case "${base_distro}" in case "${base_distro}" in
fedora) fedora)
dnf=dnf dnf=dnf
if ! type -P dnf &>/dev/null; then if ! type -P dnf >/dev/null; then
if type -P microdnf &>/dev/null; then if type -P microdnf >/dev/null; then
# fedora-based distributions have "minimal" images that # fedora-based distributions have "minimal" images that
# use microdnf instead of dnf. # use microdnf instead of dnf.
dnf=microdnf dnf=microdnf
@@ -495,12 +498,12 @@ case "$(uname -s)" in
Darwin) host_os=macos ;; Darwin) host_os=macos ;;
MINGW* | MSYS* | CYGWIN* | Windows_NT) MINGW* | MSYS* | CYGWIN* | Windows_NT)
host_os=windows host_os=windows
exe=".exe" exe=.exe
;; ;;
*) bail "unrecognized OS type '$(uname -s)'" ;; *) bail "unrecognized OS type '$(uname -s)'" ;;
esac esac
case "$(uname -m)" in case "$(uname -m)" in
aarch64 | arm64) host_arch="aarch64" ;; aarch64 | arm64) host_arch=aarch64 ;;
xscale | arm | armv*l) xscale | arm | armv*l)
# Ignore Arm for now, as we need to consider the version and whether hard-float is supported. # Ignore Arm for now, as we need to consider the version and whether hard-float is supported.
# https://github.com/rust-lang/rustup/pull/593 # https://github.com/rust-lang/rustup/pull/593
@@ -515,19 +518,19 @@ case "$(uname -m)" in
# https://github.com/actions/runner/blob/v2.321.0/.github/workflows/build.yml#L21 # https://github.com/actions/runner/blob/v2.321.0/.github/workflows/build.yml#L21
# https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners#supported-architectures-and-operating-systems-for-self-hosted-runners # https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners#supported-architectures-and-operating-systems-for-self-hosted-runners
# So we can assume x86_64 unless it is AArch64 or Arm. # So we can assume x86_64 unless it is AArch64 or Arm.
*) host_arch="x86_64" ;; *) host_arch=x86_64 ;;
esac esac
info "host platform: ${host_arch}_${host_os}" info "host platform: ${host_arch}_${host_os}"
home="${HOME}" home="${HOME}"
if [[ "${host_os}" == "windows" ]]; then if [[ "${host_os}" == "windows" ]]; then
if [[ "${home}" == "/home/"* ]]; then if [[ "${home}" == "/home/"* ]]; then
if [[ -d "${home/\/home\//\/c\/Users\/}" ]]; then if [[ -d "${home/\/home\///c/Users/}" ]]; then
# MSYS2 https://github.com/taiki-e/install-action/pull/518#issuecomment-2160736760 # MSYS2 https://github.com/taiki-e/install-action/pull/518#issuecomment-2160736760
home="${home/\/home\//\/c\/Users\/}" home="${home/\/home\///c/Users/}"
elif [[ -d "${home/\/home\//\/cygdrive\/c\/Users\/}" ]]; then elif [[ -d "${home/\/home\///cygdrive/c/Users/}" ]]; then
# Cygwin https://github.com/taiki-e/install-action/issues/224#issuecomment-1720196288 # Cygwin https://github.com/taiki-e/install-action/issues/224#issuecomment-1720196288
home="${home/\/home\//\/cygdrive\/c\/Users\/}" home="${home/\/home\///cygdrive/c/Users/}"
else else
warn "\$HOME starting /home/ (${home}) on Windows bash is usually fake path, this may cause installation issue" warn "\$HOME starting /home/ (${home}) on Windows bash is usually fake path, this may cause installation issue"
fi fi
@@ -540,37 +543,36 @@ cargo_bin="${CARGO_HOME:-"${home}/.cargo"}/bin"
# is used ($CARGO_HOME/bin is most likely not included in the PATH), fallback to # is used ($CARGO_HOME/bin is most likely not included in the PATH), fallback to
# $install_action_dir/bin. # $install_action_dir/bin.
if [[ "${host_os}" == "windows" ]]; then if [[ "${host_os}" == "windows" ]]; then
if type -P cargo &>/dev/null; then if type -P cargo >/dev/null; then
info "cargo is located at $(type -P cargo)" info "cargo is located at $(type -P cargo)"
cargo_bin=$(dirname "$(type -P cargo)") cargo_bin=$(dirname -- "$(type -P cargo)")
else else
cargo_bin="${install_action_dir}/bin" cargo_bin="${install_action_dir}/bin"
fi fi
elif [[ ! -e "${cargo_bin}" ]] || [[ "$(type -P cargo || true)" != "${cargo_bin}/cargo"* ]]; then elif [[ ! -e "${cargo_bin}" ]] || [[ "$(type -P cargo || true)" != "${cargo_bin}/cargo"* ]]; then
if type -P cargo &>/dev/null; then if type -P cargo >/dev/null; then
info "cargo is located at $(type -P cargo)" info "cargo is located at $(type -P cargo)"
fi fi
# Moving files to /usr/local/bin requires sudo in some environments, so do not use it: https://github.com/taiki-e/install-action/issues/543 # Moving files to /usr/local/bin requires sudo in some environments, so do not use it: https://github.com/taiki-e/install-action/issues/543
cargo_bin="${install_action_dir}/bin" cargo_bin="${install_action_dir}/bin"
fi fi
jq_use_b=''
case "${host_os}" in case "${host_os}" in
linux) linux)
if ! type -P jq &>/dev/null || ! type -P curl &>/dev/null || ! type -P tar &>/dev/null; then if ! type -P jq >/dev/null || ! type -P curl >/dev/null || ! type -P tar >/dev/null; then
case "${base_distro}" in case "${base_distro}" in
debian | fedora | suse | arch | alpine) debian | fedora | suse | arch | alpine)
echo "::group::Install packages required for installation (jq, curl, and/or tar)" printf '::group::Install packages required for installation (jq, curl, and/or tar)\n'
sys_packages=() sys_packages=()
if ! type -P curl &>/dev/null; then if ! type -P curl >/dev/null; then
sys_packages+=(ca-certificates curl) sys_packages+=(ca-certificates curl)
fi fi
if ! type -P tar &>/dev/null; then if ! type -P tar >/dev/null; then
sys_packages+=(tar) sys_packages+=(tar)
fi fi
if [[ "${dnf:-}" == "yum" ]]; then if [[ "${dnf:-}" == "yum" ]]; then
# On RHEL7-based distribution jq requires EPEL # On RHEL7-based distribution jq requires EPEL
if ! type -P jq &>/dev/null; then if ! type -P jq >/dev/null; then
sys_packages+=(epel-release) sys_packages+=(epel-release)
sys_install "${sys_packages[@]}" sys_install "${sys_packages[@]}"
sys_install jq --enablerepo=epel sys_install jq --enablerepo=epel
@@ -578,7 +580,7 @@ case "${host_os}" in
sys_install "${sys_packages[@]}" sys_install "${sys_packages[@]}"
fi fi
else else
if ! type -P jq &>/dev/null; then if ! type -P jq >/dev/null; then
# https://github.com/taiki-e/install-action/issues/521 # https://github.com/taiki-e/install-action/issues/521
if [[ "${base_distro}" == "arch" ]]; then if [[ "${base_distro}" == "arch" ]]; then
sys_packages+=(glibc) sys_packages+=(glibc)
@@ -587,73 +589,64 @@ case "${host_os}" in
fi fi
sys_install "${sys_packages[@]}" sys_install "${sys_packages[@]}"
fi fi
echo "::endgroup::" printf '::endgroup::\n'
;; ;;
*) warn "install-action requires at least jq and curl on non-Debian/Fedora/SUSE/Arch/Alpine-based Linux" ;; *) warn "install-action requires at least jq and curl on non-Debian/Fedora/SUSE/Arch/Alpine-based Linux" ;;
esac esac
fi fi
;; ;;
macos) macos)
if ! type -P jq &>/dev/null || ! type -P curl &>/dev/null; then if ! type -P jq >/dev/null || ! type -P curl >/dev/null; then
warn "install-action requires at least jq and curl on macOS" warn "install-action requires at least jq and curl on macOS"
fi fi
;; ;;
windows) windows)
if ! type -P curl &>/dev/null; then if ! type -P curl >/dev/null; then
warn "install-action requires at least curl on Windows" warn "install-action requires at least curl on Windows"
fi fi
# https://github.com/jqlang/jq/issues/1854 if [[ -f "${install_action_dir}/jq/bin/jq.exe" ]]; then
jq_use_b=1 jq() { "${install_action_dir}/jq/bin/jq.exe" -b "$@"; }
jq="${install_action_dir}/jq/bin/jq.exe" elif type -P jq >/dev/null; then
if [[ ! -f "${jq}" ]]; then # https://github.com/jqlang/jq/issues/1854
jq_version=$(jq --version || echo "") _tmp=$(jq -r .a <<<'{}')
case "${jq_version}" in if [[ "${_tmp}" != "null" ]]; then
jq-1.[7-9]* | jq-1.[1-9][0-9]*) jq='' ;; _tmp=$(jq -b -r .a 2>/dev/null <<<'{}' || true)
*) if [[ "${_tmp}" == "null" ]]; then
_tmp=$(jq <<<"{}" -r .a || echo "") jq() { command jq -b "$@"; }
if [[ "${_tmp}" == "null" ]]; then else
jq='' jq() { command jq "$@" | tr -d '\r'; }
jq_use_b='' fi
else fi
info "old jq (${jq_version}) has bug on Windows; downloading jq 1.7 (will not be added to PATH)" else
mkdir -p "${install_action_dir}/jq/bin" printf '::group::Install packages required for installation (jq)\n'
url='https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-windows-amd64.exe' mkdir -p -- "${install_action_dir}/jq/bin"
checksum='7451fbbf37feffb9bf262bd97c54f0da558c63f0748e64152dd87b0a07b6d6ab' url='https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-windows-amd64.exe'
( checksum='7451fbbf37feffb9bf262bd97c54f0da558c63f0748e64152dd87b0a07b6d6ab'
cd "${install_action_dir}/jq/bin" (
download_and_checksum "${url}" "${checksum}" cd -- "${install_action_dir}/jq/bin"
mv tmp jq.exe download_and_checksum "${url}" "${checksum}"
) mv -- tmp jq.exe
echo )
fi printf '::endgroup::\n'
;; jq() { "${install_action_dir}/jq/bin/jq.exe" -b "$@"; }
esac
fi fi
;; ;;
*) bail "unsupported host OS '${host_os}'" ;; *) bail "unsupported host OS '${host_os}'" ;;
esac esac
call_jq() {
# https://github.com/jqlang/jq/issues/1854
if [[ -n "${jq_use_b}" ]]; then
"${jq:-jq}" -b "$@"
else
"${jq:-jq}" "$@"
fi
}
unsupported_tools=() unsupported_tools=()
for tool in "${tools[@]}"; do 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]+)$|^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\.-]+)?$|^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 [[ ! "${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
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 pre-release and 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>"
fi fi
else else
version="latest" version=latest
fi fi
installed_bin=() installed_bin=()
case "${tool}" in case "${tool}" in
@@ -666,32 +659,32 @@ for tool in "${tools[@]}"; do
include_dir="${install_action_dir}/include" include_dir="${install_action_dir}/include"
init_install_action_bin_dir init_install_action_bin_dir
if [[ ! -e "${include_dir}" ]]; then if [[ ! -e "${include_dir}" ]]; then
mkdir -p "${include_dir}" mkdir -p -- "${include_dir}"
fi fi
if ! type -P unzip &>/dev/null; then if ! type -P unzip >/dev/null; then
case "${base_distro}" in case "${base_distro}" in
debian | fedora | suse | arch | alpine) debian | fedora | suse | arch | alpine)
echo "::group::Install packages required for installation (unzip)" printf '::group::Install packages required for installation (unzip)\n'
sys_install unzip sys_install unzip
echo "::endgroup::" printf '::endgroup::\n'
;; ;;
esac esac
fi fi
mkdir -p "${tmp_dir}" mkdir -p -- "${tmp_dir}"
( (
cd "${tmp_dir}" cd -- "${tmp_dir}"
download_and_checksum "${url}" "${checksum}" download_and_checksum "${url}" "${checksum}"
unzip -q tmp unzip -q tmp
mv "bin/protoc${exe}" "${bin_dir}/" mv -- "bin/protoc${exe}" "${bin_dir}/"
mkdir -p "${include_dir}/" mkdir -p -- "${include_dir}/"
cp -r include/. "${include_dir}/" cp -r -- include/. "${include_dir}/"
if [[ -z "${PROTOC:-}" ]]; then if [[ -z "${PROTOC:-}" ]]; then
_bin_dir=$(canonicalize_windows_path "${bin_dir}") _bin_dir=$(canonicalize_windows_path "${bin_dir}")
info "setting PROTOC environment variable to '${_bin_dir}/protoc${exe}'" info "setting PROTOC environment variable to '${_bin_dir}/protoc${exe}'"
echo "PROTOC=${_bin_dir}/protoc${exe}" >>"${GITHUB_ENV}" printf '%s\n' "PROTOC=${_bin_dir}/protoc${exe}" >>"${GITHUB_ENV}"
fi fi
) )
rm -rf "${tmp_dir}" rm -rf -- "${tmp_dir}"
installed_bin=("${tool}${exe}") installed_bin=("${tool}${exe}")
;; ;;
valgrind) valgrind)
@@ -702,7 +695,7 @@ for tool in "${tools[@]}"; do
esac esac
case "${host_os}" in case "${host_os}" in
linux) ;; linux) ;;
macos | windows) bail "${tool} for non-linux is not supported yet by this action" ;; macos | windows) bail "${tool} for non-Linux is not supported yet by this action" ;;
*) bail "unsupported host OS '${host_os}' for ${tool}" ;; *) bail "unsupported host OS '${host_os}' for ${tool}" ;;
esac esac
# libc6-dbg is needed to run Valgrind # libc6-dbg is needed to run Valgrind
@@ -718,13 +711,13 @@ for tool in "${tools[@]}"; do
*) warn "specifying the version of ${tool} is not supported by this action" ;; *) warn "specifying the version of ${tool} is not supported by this action" ;;
esac esac
install_cargo_binstall install_cargo_binstall
echo printf '\n'
continue continue
;; ;;
*) *)
# Handle aliases # Handle aliases
case "${tool}" in case "${tool}" in
cargo-nextest | nextest) tool="cargo-nextest" ;; cargo-nextest | nextest) tool=cargo-nextest ;;
esac esac
# Use cargo-binstall fallback if tool is not available. # Use cargo-binstall fallback if tool is not available.
@@ -757,7 +750,7 @@ for tool in "${tools[@]}"; do
shellcheck) shellcheck)
case "${host_os}" in case "${host_os}" in
linux) linux)
if type -P shellcheck &>/dev/null; then if type -P shellcheck >/dev/null; then
apt_remove -y shellcheck apt_remove -y shellcheck
fi fi
;; ;;
@@ -771,12 +764,12 @@ for tool in "${tools[@]}"; do
tool_bin_stems=() tool_bin_stems=()
for tool_bin in "${installed_bin[@]}"; do for tool_bin in "${installed_bin[@]}"; do
tool_bin=$(basename "${tool_bin}") tool_bin=$(basename -- "${tool_bin}")
tool_bin_stem="${tool_bin%.exe}" tool_bin_stem="${tool_bin%.exe}"
installed_at=$(type -P "${tool_bin}" || echo "") installed_at=$(type -P "${tool_bin}" || true)
if [[ -z "${installed_at}" ]]; then if [[ -z "${installed_at}" ]]; then
tool_bin="${tool_bin_stem}" tool_bin="${tool_bin_stem}"
installed_at=$(type -P "${tool_bin}" || echo "") installed_at=$(type -P "${tool_bin}" || true)
fi fi
if [[ -n "${installed_at}" ]]; then if [[ -n "${installed_at}" ]]; then
info "${tool_bin_stem} installed at ${installed_at}" info "${tool_bin_stem} installed at ${installed_at}"
@@ -818,7 +811,7 @@ for tool in "${tools[@]}"; do
;; ;;
esac esac
done done
echo printf '\n'
done done
if [[ ${#unsupported_tools[@]} -gt 0 ]]; then if [[ ${#unsupported_tools[@]} -gt 0 ]]; then
@@ -840,6 +833,6 @@ if [[ ${#unsupported_tools[@]} -gt 0 ]]; then
_bin_dir=$(canonicalize_windows_path "${home}/.cargo/bin") _bin_dir=$(canonicalize_windows_path "${home}/.cargo/bin")
# TODO: avoid this when already added # TODO: avoid this when already added
info "adding '${_bin_dir}' to PATH" info "adding '${_bin_dir}' to PATH"
echo "${_bin_dir}" >>"${GITHUB_PATH}" printf '%s\n' "${_bin_dir}" >>"${GITHUB_PATH}"
fi fi
fi fi

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.10.22" "version": "1.11.1"
}, },
"1.10.22": { "1.11.1": {
"x86_64_linux_musl": { "x86_64_linux_musl": {
"etag": "0x8DD38568770C382", "etag": "0x8DD53AD432C0E1E",
"checksum": "74d7c647c7e60bb8464fa551702fdd38a7241f5cedb2c4edc3b11639cd1dae47" "checksum": "e4ee181b2d8fc814b340f5da849dd67acfc985b18c92bcd654c9d223d205e4d5"
}, },
"x86_64_macos": { "x86_64_macos": {
"etag": "0x8DD38560D10F1DA", "etag": "0x8DD53AD12F83C0F",
"checksum": "0abaad286197df9e5a3d25bfdca682fa91fef65fef13f42e20ec24a98165c71a" "checksum": "fca395de3047f7868c3b57d7563a8342b2b446b0c6839509527fff56e2156068"
}, },
"x86_64_windows": { "x86_64_windows": {
"etag": "0x8DD3857BFED715A", "etag": "0x8DD53AE25C0C75B",
"checksum": "36d6ea24db049a36d0eab33003e6ee007955f01a8ce89fef46d4026adb86db96" "checksum": "b092d9f1dea240fb7269e25bd097575fd8bd7b0acd9b44cf5319e5a52adb9952"
}, },
"aarch64_linux_musl": { "aarch64_linux_musl": {
"etag": "0x8DD38563219A538", "etag": "0x8DD53ACE9F477BA",
"checksum": "b8c32b1b007482f42f6c4b5f8cfeb168f9674ec6448bfa29ae0c4ba01b7a370b" "checksum": "096f2d7afb87856f58a8c95a5a99130b60ad2763f38378c62b1ffa3ec8e93c1f"
}, },
"aarch64_macos": { "aarch64_macos": {
"etag": "0x8DD3856413081F7", "etag": "0x8DD53AD22027CC8",
"checksum": "97ce4a2f18181f052dda266b042d8bb220e48ffe40ca75e796ae4c5e418b9e01" "checksum": "2837ffc3ad798eec1629638ed43ca85a52abf9d0db5ab38d498d803fd65c38c3"
}, },
"aarch64_windows": { "aarch64_windows": {
"etag": "0x8DD3857931A5667", "etag": "0x8DD53ADFC1A99F6",
"checksum": "d86dfba0c13f7c84724e1d21fcec35b8a42633733215a61d1ee183455b12db5e" "checksum": "d675ea21614f99482569f4bae2a24cd312b98755c8f3708766baa7cb502b640b"
} }
} }
} }

View File

@@ -1,33 +1,208 @@
{ {
"rust_crate": "cargo-cyclonedx", "rust_crate": "cargo-cyclonedx",
"template": { "template": null,
"x86_64_linux_gnu": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-${version}/cargo-cyclonedx-linux-amd64.tar.gz"
},
"x86_64_macos": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-${version}/cargo-cyclonedx-Darwin-x86_64.tar.gz"
},
"x86_64_windows": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-${version}/cargo-cyclonedx-Win-x86_64.zip"
}
},
"license_markdown": "[Apache-2.0](https://github.com/CycloneDX/cyclonedx-rust-cargo/blob/main/LICENSE)", "license_markdown": "[Apache-2.0](https://github.com/CycloneDX/cyclonedx-rust-cargo/blob/main/LICENSE)",
"latest": { "latest": {
"version": "0.5.0" "version": "0.5.7"
}, },
"0.5": { "0.5": {
"version": "0.5.0" "version": "0.5.7"
},
"0.5.7": {
"x86_64_linux_musl": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.7/cargo-cyclonedx-x86_64-unknown-linux-musl.tar.xz",
"etag": "0x8DD10E0A0B0BBB1",
"checksum": "8ffbc91fa29b82f0b0438939a0421a164a0297b5387208f6170c793bdd22a4c9",
"bin": "cargo-cyclonedx-x86_64-unknown-linux-musl/cargo-cyclonedx"
},
"x86_64_macos": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.7/cargo-cyclonedx-x86_64-apple-darwin.tar.xz",
"etag": "0x8DD10E0A03AD770",
"checksum": "f96401f427ec096162493f85ecf67d907ff2fc845d14de3e8fbf62660858afab",
"bin": "cargo-cyclonedx-x86_64-apple-darwin/cargo-cyclonedx"
},
"x86_64_windows": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.7/cargo-cyclonedx-x86_64-pc-windows-msvc.zip",
"etag": "0x8DD10E0A0B6CF5E",
"checksum": "f9f39802660c25fa2a841ca098158462b36e59567ed3ea07a57b23bed63f6474",
"bin": "cargo-cyclonedx.exe"
},
"aarch64_macos": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.7/cargo-cyclonedx-aarch64-apple-darwin.tar.xz",
"etag": "0x8DD10E0A0395289",
"checksum": "39ae80025f67a98974b4bd9e072ea09d42d3e11d05ef1375e6ff6b8345cf3cfe",
"bin": "cargo-cyclonedx-aarch64-apple-darwin/cargo-cyclonedx"
}
},
"0.5.6": {
"x86_64_linux_musl": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.6/cargo-cyclonedx-x86_64-unknown-linux-musl.tar.xz",
"etag": "0x8DCFF38D5B5ABE0",
"checksum": "2238e1be087623eb139fa03896271612f9bb5d0fe3c67bdc5bcdccae078d53a4",
"bin": "cargo-cyclonedx-x86_64-unknown-linux-musl/cargo-cyclonedx"
},
"x86_64_macos": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.6/cargo-cyclonedx-x86_64-apple-darwin.tar.xz",
"etag": "0x8DCFF38D55CA58A",
"checksum": "66d5b8550ccdc07161fa2052e64e63710717978a32ceefe3c780e17b9817d686",
"bin": "cargo-cyclonedx-x86_64-apple-darwin/cargo-cyclonedx"
},
"x86_64_windows": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.6/cargo-cyclonedx-x86_64-pc-windows-msvc.zip",
"etag": "0x8DCFF38D5A5916F",
"checksum": "bdd6048a476edaa59e15902ff277f906f28ab74267b44b02b6019242e1ad7f50",
"bin": "cargo-cyclonedx.exe"
},
"aarch64_macos": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.6/cargo-cyclonedx-aarch64-apple-darwin.tar.xz",
"etag": "0x8DCFF38D561F6C1",
"checksum": "77d1d014e9ef6a9b0e9481b80c35f4d22bf446ddabfbbc9ebd2e17b4167343f1",
"bin": "cargo-cyclonedx-aarch64-apple-darwin/cargo-cyclonedx"
}
},
"0.5.5": {
"x86_64_linux_musl": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.5/cargo-cyclonedx-x86_64-unknown-linux-musl.tar.xz",
"etag": "0x8DCB605BF2376BB",
"checksum": "e0a872a5a8e32b9621334636e9da444d70527fb138aa75380e0dc20db8b0714b",
"bin": "cargo-cyclonedx-x86_64-unknown-linux-musl/cargo-cyclonedx"
},
"x86_64_macos": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.5/cargo-cyclonedx-x86_64-apple-darwin.tar.xz",
"etag": "0x8DCB605BECCDE9E",
"checksum": "98beb669323396428b5c6c7003adc4235207442c7b025743366ee98759b2c3a6",
"bin": "cargo-cyclonedx-x86_64-apple-darwin/cargo-cyclonedx"
},
"x86_64_windows": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.5/cargo-cyclonedx-x86_64-pc-windows-msvc.zip",
"etag": "0x8DCB605BF0BEA8D",
"checksum": "7b4507cb8fb260df35bed0ad59f675d569f9bde3423228e8b44c7c378876a410",
"bin": "cargo-cyclonedx.exe"
},
"aarch64_macos": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.5/cargo-cyclonedx-aarch64-apple-darwin.tar.xz",
"etag": "0x8DCB605BEC91251",
"checksum": "c296b0821c02ad13cbea6a7173ba6c37fa777acc7d066c5ff8570a600aeb62a7",
"bin": "cargo-cyclonedx-aarch64-apple-darwin/cargo-cyclonedx"
}
},
"0.5.4": {
"x86_64_linux_musl": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.4/cargo-cyclonedx-x86_64-unknown-linux-musl.tar.xz",
"etag": "0x8DCA65134CEC9A1",
"checksum": "8a499153bf20c2e6c180b21404f0a0c8b229f4c254c4b5d1623ae15d130afe49",
"bin": "cargo-cyclonedx-x86_64-unknown-linux-musl/cargo-cyclonedx"
},
"x86_64_macos": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.4/cargo-cyclonedx-x86_64-apple-darwin.tar.xz",
"etag": "0x8DCA651345F6E35",
"checksum": "a88e604e696f806559b5a3ade35dccfe0baee885b4e5ad0ef34e280d7073c1c7",
"bin": "cargo-cyclonedx-x86_64-apple-darwin/cargo-cyclonedx"
},
"x86_64_windows": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.4/cargo-cyclonedx-x86_64-pc-windows-msvc.zip",
"etag": "0x8DCA65134B6A1E2",
"checksum": "6f42f40bb0a7dd86337cdd3f9dc698167b601b077eaf199161a4e38d209f003a",
"bin": "cargo-cyclonedx.exe"
},
"aarch64_macos": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.4/cargo-cyclonedx-aarch64-apple-darwin.tar.xz",
"etag": "0x8DCA65134508ADB",
"checksum": "e8751fb79e8dd33286e85acd3ac34af9ecc7a36e634c35720ed3b302b2a936b0",
"bin": "cargo-cyclonedx-aarch64-apple-darwin/cargo-cyclonedx"
}
},
"0.5.3": {
"x86_64_linux_musl": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.3/cargo-cyclonedx-x86_64-unknown-linux-musl.tar.xz",
"etag": "0x8DC84D1C05C733F",
"checksum": "d303058cfdd5151da7645cc642f0d64e9b4e6ce90cfb8e4955329c58c887114b",
"bin": "cargo-cyclonedx-x86_64-unknown-linux-musl/cargo-cyclonedx"
},
"x86_64_macos": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.3/cargo-cyclonedx-x86_64-apple-darwin.tar.xz",
"etag": "0x8DC84D1C1F0DBBC",
"checksum": "e7e19ae5d6f938912c87ea57e27d1549197c4f30ea9e5814ee7dc46d3004a945",
"bin": "cargo-cyclonedx-x86_64-apple-darwin/cargo-cyclonedx"
},
"x86_64_windows": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.3/cargo-cyclonedx-x86_64-pc-windows-msvc.zip",
"etag": "0x8DC84D1C1809711",
"checksum": "abc9408ea8239f6a35be92c1ca34d759a12e6e2b804191fbd39e515450c7a104",
"bin": "cargo-cyclonedx.exe"
},
"aarch64_macos": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.3/cargo-cyclonedx-aarch64-apple-darwin.tar.xz",
"etag": "0x8DC84D1C2D24E48",
"checksum": "7e3ebf1d9074d5b580561509e30c31bb5b80c6cd3b9df4516c49c1e1062c6391",
"bin": "cargo-cyclonedx-aarch64-apple-darwin/cargo-cyclonedx"
}
},
"0.5.2": {
"x86_64_linux_musl": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.2/cargo-cyclonedx-x86_64-unknown-linux-musl.tar.xz",
"etag": "0x8DC849208047BE6",
"checksum": "4018528cd125a8b0f4d1f990a06a67942a6091d6af519af4ada05918eeea70ef",
"bin": "cargo-cyclonedx-x86_64-unknown-linux-musl/cargo-cyclonedx"
},
"x86_64_macos": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.2/cargo-cyclonedx-x86_64-apple-darwin.tar.xz",
"etag": "0x8DC8492096A685B",
"checksum": "aae1a9127a1a7651ec8f648b6924b3139171d2e9faf6548df962feb89f161292",
"bin": "cargo-cyclonedx-x86_64-apple-darwin/cargo-cyclonedx"
},
"x86_64_windows": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.2/cargo-cyclonedx-x86_64-pc-windows-msvc.zip",
"etag": "0x8DC849208F850B0",
"checksum": "f6961d56104fa7755bd16590bd98899822a3e06037a88c6899a56803507671c3",
"bin": "cargo-cyclonedx.exe"
},
"aarch64_macos": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.2/cargo-cyclonedx-aarch64-apple-darwin.tar.xz",
"etag": "0x8DC84920A40EAD3",
"checksum": "f13ff16d6593395e0a18fc41e67cdba7bb2b2cab532b6e990d79e1be2e2a9222",
"bin": "cargo-cyclonedx-aarch64-apple-darwin/cargo-cyclonedx"
}
},
"0.5.1": {
"x86_64_linux_musl": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.1/cargo-cyclonedx-x86_64-unknown-linux-musl.tar.xz",
"etag": "0x8DC7B5D4ACF5327",
"checksum": "e061a15a7dedcea232acbe6de66a6e8494df0a3609ef5435432b06cf2c3a9cb3",
"bin": "cargo-cyclonedx-x86_64-unknown-linux-musl/cargo-cyclonedx"
},
"x86_64_macos": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.1/cargo-cyclonedx-x86_64-apple-darwin.tar.xz",
"etag": "0x8DC7B5D4C6CB2FB",
"checksum": "eedd73b2cf7a1a1f82e991541ea3ab3e15f8393d3267e6775dbcdc3529f04d5e",
"bin": "cargo-cyclonedx-x86_64-apple-darwin/cargo-cyclonedx"
},
"x86_64_windows": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.1/cargo-cyclonedx-x86_64-pc-windows-msvc.zip",
"etag": "0x8DC7B5D4BF0E261",
"checksum": "b0c772f9d0e99d89eab0e39955150b09665b4e0a2417a4a43638d5ad1753a96a",
"bin": "cargo-cyclonedx.exe"
},
"aarch64_macos": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.1/cargo-cyclonedx-aarch64-apple-darwin.tar.xz",
"etag": "0x8DC7B5D4D6A40F2",
"checksum": "bc3857a058cc01ef92a30071084acf20cf6067a23cf0d5569b629276a441e6ee",
"bin": "cargo-cyclonedx-aarch64-apple-darwin/cargo-cyclonedx"
}
}, },
"0.5.0": { "0.5.0": {
"x86_64_linux_gnu": { "x86_64_linux_gnu": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.0/cargo-cyclonedx-linux-amd64.tar.gz",
"etag": "0x8DC3A43C920B085", "etag": "0x8DC3A43C920B085",
"checksum": "7daa885e9b6f59bf7674a2972bf1f37d9e21ab7461c3e2f9c59e99a966ab6026" "checksum": "7daa885e9b6f59bf7674a2972bf1f37d9e21ab7461c3e2f9c59e99a966ab6026"
}, },
"x86_64_macos": { "x86_64_macos": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.0/cargo-cyclonedx-Darwin-x86_64.tar.gz",
"etag": "0x8DC3A43C9165BEA", "etag": "0x8DC3A43C9165BEA",
"checksum": "70b197f8095fe2473baef1d96dd4409abb1aef20aeeea00f8a0cbebc25528ddb" "checksum": "70b197f8095fe2473baef1d96dd4409abb1aef20aeeea00f8a0cbebc25528ddb"
}, },
"x86_64_windows": { "x86_64_windows": {
"url": "https://github.com/CycloneDX/cyclonedx-rust-cargo/releases/download/cargo-cyclonedx-0.5.0/cargo-cyclonedx-Win-x86_64.zip",
"etag": "0x8DC3A43C95B54A5", "etag": "0x8DC3A43C95B54A5",
"checksum": "11e063c29bdd85ceb061b30aa11073238a8c93302b1ff3f5ac37e91ac90b425a" "checksum": "11e063c29bdd85ceb061b30aa11073238a8c93302b1ff3f5ac37e91ac90b425a"
} }

View File

@@ -24,7 +24,57 @@
}, },
"license_markdown": "[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)", "license_markdown": "[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)",
"latest": { "latest": {
"version": "0.16.4" "version": "0.18.0"
},
"0.18": {
"version": "0.18.0"
},
"0.18.0": {
"x86_64_linux_musl": {
"etag": "0x8DD54AD3CA8695C",
"checksum": "9f0c7b5b84242db9b1d4c47155c4cecc006a9dd657aa730a186939379a8c2200"
},
"x86_64_macos": {
"etag": "0x8DD54AD2A210547",
"checksum": "b131c2871d982aa1e322a65c09c5c2971dffb24689921df287d73f423c888991"
},
"x86_64_windows": {
"etag": "0x8DD54ADAE24EDA7",
"checksum": "5f1d1ad125f2e626b2c393d71e2ab36b4f468c47711547832c1f4da19f892ca0"
},
"aarch64_linux_musl": {
"etag": "0x8DD54AD5819A2C2",
"checksum": "1a6f16dbaf308a64dfa1fb310a717a268f2b38bfd1bc32d5ce2c1f8b72adeec2"
},
"aarch64_macos": {
"etag": "0x8DD54AD34C97FE5",
"checksum": "e1cb27af1d1020a19dd3c48019071b0c21b2641b8fbc49a2806223f6cb47e2ff"
}
},
"0.17": {
"version": "0.17.0"
},
"0.17.0": {
"x86_64_linux_musl": {
"etag": "0x8DD518E866BDAA6",
"checksum": "eafaffd87b2c7e97a644ed6eeac267b2af471a5bcf9cff7435852661caadf353"
},
"x86_64_macos": {
"etag": "0x8DD518E713313D0",
"checksum": "fdd12d35aee874abcebe1ce9aff10fb224219326895edd5d5eb23e014366b301"
},
"x86_64_windows": {
"etag": "0x8DD518F2975306A",
"checksum": "95d72fd9a079e83e93ddc345227fd9dfb4d4133275f5d0cb0f7df322eac6d3b7"
},
"aarch64_linux_musl": {
"etag": "0x8DD518E96C67017",
"checksum": "147422f4914e0c322ac8f2d0676afddfcd40c91a226d69b5b799af8c6978cf21"
},
"aarch64_macos": {
"etag": "0x8DD518E9D5EDDB7",
"checksum": "8f59efe8d4785ba4febe0e8b079952a03d435f50345533c3dd4ef2b107ba18e0"
}
}, },
"0.16": { "0.16": {
"version": "0.16.4" "version": "0.16.4"

View File

@@ -3,10 +3,42 @@
"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.34" "version": "0.6.35"
}, },
"0.6": { "0.6": {
"version": "0.6.34" "version": "0.6.35"
},
"0.6.35": {
"x86_64_linux_musl": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.35/cargo-hack-x86_64-unknown-linux-musl.tar.gz",
"etag": "0x8DD4A6E5EB58C77",
"checksum": "eff70993a6da63125e378ff37b029e8ec3df738d8f52e100a003d0f1bb999a46"
},
"x86_64_macos": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.35/cargo-hack-x86_64-apple-darwin.tar.gz",
"etag": "0x8DD4A6E7EFB6D18",
"checksum": "04a5849fe5d8da9f41cb9a784c0a3f9a4c572db6dfcb2bd585da565cba51b5f2"
},
"x86_64_windows": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.35/cargo-hack-x86_64-pc-windows-msvc.tar.gz",
"etag": "0x8DD4A6E6C197A37",
"checksum": "bb00d151d1acd36f2c545941cbc1c84ad6efbd54dd5a284d1699b10c9175c97d"
},
"aarch64_linux_musl": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.35/cargo-hack-aarch64-unknown-linux-musl.tar.gz",
"etag": "0x8DD4A6E34F0549E",
"checksum": "917a14465547ca09b7e0872ca2532e877c5a2ed1f919bc52ff297d812ee34012"
},
"aarch64_macos": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.35/cargo-hack-aarch64-apple-darwin.tar.gz",
"etag": "0x8DD4A6E44BEE1EA",
"checksum": "4a147720e1ab3ef295af88d6c26781999b2c23bd6d40f9f7ddad7cf2e68441ed"
},
"aarch64_windows": {
"url": "https://github.com/taiki-e/cargo-hack/releases/download/v0.6.35/cargo-hack-aarch64-pc-windows-msvc.tar.gz",
"etag": "0x8DD4A6E338AB5BB",
"checksum": "43e878cb91d845cbfc396e146d0e9eb174e7b28623dbf4f8b7d8039f120a6a45"
}
}, },
"0.6.34": { "0.6.34": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

View File

@@ -3,7 +3,36 @@
"template": null, "template": null,
"license_markdown": "[MIT](https://github.com/bnjbvr/cargo-machete/blob/main/LICENSE.md)", "license_markdown": "[MIT](https://github.com/bnjbvr/cargo-machete/blob/main/LICENSE.md)",
"latest": { "latest": {
"version": "0.7.0" "version": "0.8.0"
},
"0.8": {
"version": "0.8.0"
},
"0.8.0": {
"x86_64_linux_musl": {
"url": "https://github.com/bnjbvr/cargo-machete/releases/download/v0.8.0/cargo-machete-v0.8.0-x86_64-unknown-linux-musl.tar.gz",
"etag": "0x8DD550F01B09F95",
"checksum": "020f6608f9be1562d1fb601e5808e541ccb8806e7e4dfde27d48bc22254a002c",
"bin": "cargo-machete-v0.8.0-x86_64-unknown-linux-musl/cargo-machete"
},
"x86_64_macos": {
"url": "https://github.com/bnjbvr/cargo-machete/releases/download/v0.8.0/cargo-machete-v0.8.0-x86_64-apple-darwin.tar.gz",
"etag": "0x8DD550F074262C8",
"checksum": "f1304100fef4012e6b3f4b74fa7d6a71ff0de3cc3d8a3e67773a434f2854a0d8",
"bin": "cargo-machete-v0.8.0-x86_64-apple-darwin/cargo-machete"
},
"x86_64_windows": {
"url": "https://github.com/bnjbvr/cargo-machete/releases/download/v0.8.0/cargo-machete-v0.8.0-x86_64-pc-windows-msvc.tar.gz",
"etag": "0x8DD550F250F5178",
"checksum": "19f15db89529f0e01fa0afb56d1d3c3d54bfb709086479bd190a0f4a3e2efd8c",
"bin": "cargo-machete-v0.8.0-x86_64-pc-windows-msvc/cargo-machete.exe"
},
"aarch64_macos": {
"url": "https://github.com/bnjbvr/cargo-machete/releases/download/v0.8.0/cargo-machete-v0.8.0-aarch64-apple-darwin.tar.gz",
"etag": "0x8DD550F00F685B8",
"checksum": "9047eacf791e23ff2b3b7b3489a9537c34df02dbdbbfe46541720e9ed3308adf",
"bin": "cargo-machete-v0.8.0-aarch64-apple-darwin/cargo-machete"
}
}, },
"0.7": { "0.7": {
"version": "0.7.0" "version": "0.7.0"

View File

@@ -22,10 +22,36 @@
}, },
"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.29" "version": "0.1.30"
}, },
"0.1": { "0.1": {
"version": "0.1.29" "version": "0.1.30"
},
"0.1.30": {
"x86_64_linux_musl": {
"etag": "0x8DD4A6E25DB06C6",
"checksum": "72a89985f39e12285b7d8e63cf26d8f41c97d72aea83478dc685d513d9e75044"
},
"x86_64_macos": {
"etag": "0x8DD4A6E0A5AE6A1",
"checksum": "3cacfaedc52499c4a2875148ede335c504e6dadd605a726baafc76929d6f7ddc"
},
"x86_64_windows": {
"etag": "0x8DD4A6E000C0CDA",
"checksum": "58516125269596aa451e524663f30e70fbacacf252bff6f35ca606abf1be43ec"
},
"aarch64_linux_musl": {
"etag": "0x8DD4A6E044102DA",
"checksum": "60371ed27eb44193774ada646fd58608fa6441b89913268880168795d9cd0a65"
},
"aarch64_macos": {
"etag": "0x8DD4A6DDE1DB827",
"checksum": "99c141466361587a6e9c5a0455245e1379ada63d7258b6a6765bc0f715a4444e"
},
"aarch64_windows": {
"etag": "0x8DD4A6E17E7FE9E",
"checksum": "3e226428d21c4db9dd9aaf34b8ea7046be87af3ef9b294b80ac14d8cb6a75845"
}
}, },
"0.1.29": { "0.1.29": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

View File

@@ -19,10 +19,79 @@
}, },
"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.88" "version": "0.9.91"
}, },
"0.9": { "0.9": {
"version": "0.9.88" "version": "0.9.91"
},
"0.9.91": {
"previous_stable_version": "0.9.90",
"x86_64_linux_gnu": {
"etag": "0x8DD4C9803365D77",
"checksum": "c28e4d7380662860eff0bc407d9830f59c2ac0a4b2d1c73d0d9c671139fa2eac"
},
"x86_64_linux_musl": {
"etag": "0x8DD4C9831FCF8ED",
"checksum": "e5e319f562b250ef2d806201a0b023aa1ab3e9880f11c4176d6fbf6e366d3c50"
},
"x86_64_macos": {
"etag": "0x8DD4C98297BA941",
"checksum": "104ba3670bb3a277fdfd2e94f4eb09909165ef114f2808e887332d859ba1ca92"
},
"x86_64_windows": {
"etag": "0x8DD4C98D37ED80B",
"checksum": "54d18079329ce85af4dd77f15662eb97eab08a3f36b36290363a919b48714e5e"
},
"aarch64_linux_gnu": {
"etag": "0x8DD4C9823CE6601",
"checksum": "9169fe49cd6cc432e233d75ba8a6f35e0797ee2ea8ca917703c99ff9cc08922a"
}
},
"0.9.90": {
"previous_stable_version": "0.9.89",
"x86_64_linux_gnu": {
"etag": "0x8DD4BC2B4419A0D",
"checksum": "c713b60d9612cd63cad22e65fa368d44e60a7708dc06f43c35ef1210a3176e48"
},
"x86_64_linux_musl": {
"etag": "0x8DD4BC2FD016D79",
"checksum": "2d41dcd1766be58d96aa6b312eb82f75c059c2a4738ff5ff9b748a5ed0b7b7ae"
},
"x86_64_macos": {
"etag": "0x8DD4BC2F506FD01",
"checksum": "062f0e5a4470122304e2e1d91ee26d1aa4e4d4b931ce8969dc2f233e0185fd40"
},
"x86_64_windows": {
"etag": "0x8DD4BC326350110",
"checksum": "7d953a469fe271a6085f203ab000d80bc03c022c10adf6026aa665b9da4f21cd"
},
"aarch64_linux_gnu": {
"etag": "0x8DD4BC2C54D2DE2",
"checksum": "4b63d96f5624759d8e3543bff2c4ac38556da4a18b114e8ed16aa13ecfd3b29c"
}
},
"0.9.89": {
"previous_stable_version": "0.9.88",
"x86_64_linux_gnu": {
"etag": "0x8DD4A15B96B1A84",
"checksum": "d90785677e767a0b8b50fbaffc465f3ab2d67d1f692137898130ae9d338070b9"
},
"x86_64_linux_musl": {
"etag": "0x8DD4A15D2E5AF8F",
"checksum": "8998b930c766e34975f9ec2490f54fb29ec5bd614340bff79883c78c9c4c5809"
},
"x86_64_macos": {
"etag": "0x8DD4A15D38E51B7",
"checksum": "e7686274224c5e32469cd1da66495663b87620cf2bf800d7b406fb58f4938b82"
},
"x86_64_windows": {
"etag": "0x8DD4A1668EB3B53",
"checksum": "e3651fe04052a654ed613e7368a0a7be08cc85190f2d8c9380cd4702b2604868"
},
"aarch64_linux_gnu": {
"etag": "0x8DD4A1575ED9107",
"checksum": "8f00921063058b650e44246549c476e42e850a4925892b0b1a4f9b2b45bb7035"
}
}, },
"0.9.88": { "0.9.88": {
"previous_stable_version": "0.9.87", "previous_stable_version": "0.9.87",

View File

@@ -22,10 +22,36 @@
}, },
"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.14" "version": "0.2.15"
}, },
"0.2": { "0.2": {
"version": "0.2.14" "version": "0.2.15"
},
"0.2.15": {
"x86_64_linux_musl": {
"etag": "0x8DD4A6E15A58780",
"checksum": "d917d43b52d04a643b8bca6492d2592eeb34d78d76aad26861e15247689f6d6a"
},
"x86_64_macos": {
"etag": "0x8DD4A6E115D44AA",
"checksum": "5f260e5bbc1c8ff760cd68d0a05ea953a3c69940fc1f766209a5310b7ddd910d"
},
"x86_64_windows": {
"etag": "0x8DD4A6DFE0E5EA1",
"checksum": "255d926f677c970a653528e10e159db9d35b70eb6b4363d14a012c39b890c2be"
},
"aarch64_linux_musl": {
"etag": "0x8DD4A6E04BB2D14",
"checksum": "05179148e3e2c84b1e808b52fcd30395a49df3347c932a2ae4dd34a3db5c6dcb"
},
"aarch64_macos": {
"etag": "0x8DD4A6DE379D4E7",
"checksum": "859e6f542b701b279641cc7616214e69c3b951195a4b9372f70a7e8b8a3ec1ac"
},
"aarch64_windows": {
"etag": "0x8DD4A6E0CFFBCF1",
"checksum": "44467a4d4b290edf18ec28dd2e6cb63c4b551cd6c7a96350205a3cd4ceb555b0"
}
}, },
"0.2.14": { "0.2.14": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

View File

@@ -10,7 +10,30 @@
}, },
"license_markdown": "[LGPLv2.1](https://github.com/drahnr/cargo-spellcheck/blob/master/LICENSE-LGPL)", "license_markdown": "[LGPLv2.1](https://github.com/drahnr/cargo-spellcheck/blob/master/LICENSE-LGPL)",
"latest": { "latest": {
"version": "0.14.0" "version": "0.15.2"
},
"0.15": {
"version": "0.15.2"
},
"0.15.2": {
"x86_64_linux_gnu": {
"etag": "0x8DD4A85530EF13A",
"checksum": "9b36eb04e83aaea2c943064fbb2e5a04d37a46bcf51dfd99495b74b09ff56455"
},
"x86_64_windows": {
"etag": "0x8DD4A8564500872",
"checksum": "5d70eac68be1dae5fb69439217581f79e642867ddd4b67ba258e224de6ff82a2"
}
},
"0.15.1": {
"x86_64_linux_gnu": {
"etag": "0x8DD49AEF852F898",
"checksum": "b96e4e73babd959aa138d1629b143180e83ebd8461064fa68e99e2e961560029"
},
"x86_64_windows": {
"etag": "0x8DD49AF09E6176C",
"checksum": "53e697b1016880ffe864dfba9fda68c050694644267557450881d52d9eed987d"
}
}, },
"0.14": { "0.14": {
"version": "0.14.0" "version": "0.14.0"

View File

@@ -19,7 +19,32 @@
}, },
"license_markdown": "[MIT](https://github.com/xd009642/tarpaulin/blob/develop/LICENSE-MIT) OR [Apache-2.0](https://github.com/xd009642/tarpaulin/blob/develop/LICENSE-APACHE)", "license_markdown": "[MIT](https://github.com/xd009642/tarpaulin/blob/develop/LICENSE-MIT) OR [Apache-2.0](https://github.com/xd009642/tarpaulin/blob/develop/LICENSE-APACHE)",
"latest": { "latest": {
"version": "0.31.5" "version": "0.32.0"
},
"0.32": {
"version": "0.32.0"
},
"0.32.0": {
"x86_64_linux_musl": {
"etag": "0x8DD4CE72F1035B0",
"checksum": "a2ccc0792895182dd3df52e356401932fdefdfba17d4ae08831927337eaee337"
},
"x86_64_macos": {
"etag": "0x8DD4CE6F0127B7F",
"checksum": "f595f9dee318c92866c762e43d97005ea30e76f7e1d5713e548300aea4d9a6b4"
},
"x86_64_windows": {
"etag": "0x8DD4CE776A3C8A3",
"checksum": "b9614633539be588314a0ec367a80365d00854dbe54a92bfa0981757cc88b1e5"
},
"aarch64_linux_musl": {
"etag": "0x8DD4CE70205449F",
"checksum": "47236114c45b584f3aba663fecd454d15151785b51ac0e94631f4babfba5700d"
},
"aarch64_macos": {
"etag": "0x8DD4CE6C913BEBF",
"checksum": "e46aabe1f6b0cbee10ed6f4ca3c5efbfc1eec961a6ec8a5a03933622d9804965"
}
}, },
"0.31": { "0.31": {
"version": "0.31.5" "version": "0.31.5"

View File

@@ -32,10 +32,36 @@
}, },
"license_markdown": "[Apache-2.0 OR MIT](https://github.com/est31/cargo-udeps/blob/HEAD/LICENSE)", "license_markdown": "[Apache-2.0 OR MIT](https://github.com/est31/cargo-udeps/blob/HEAD/LICENSE)",
"latest": { "latest": {
"version": "0.1.54" "version": "0.1.55"
}, },
"0.1": { "0.1": {
"version": "0.1.54" "version": "0.1.55"
},
"0.1.55": {
"x86_64_linux_musl": {
"etag": "0x8DD51FD656FD61C",
"checksum": "63b9dd69eef610477ead31a02a8262ec321a0e0272080c8db60d547233b2b55f"
},
"x86_64_macos": {
"etag": "0x8DD51FD3F1522FD",
"checksum": "bf5264e82de4db53dda851cfadf1fc84681e89f839703077b99238562da9b4be"
},
"x86_64_windows": {
"etag": "0x8DD51FDD1BF0962",
"checksum": "b6ac0a3aaa91609924e8f116bedf33f9892f25bea10437b73ac62b886baf0bdd"
},
"aarch64_linux_musl": {
"etag": "0x8DD51FD66F8DA00",
"checksum": "a7b554ce1ad67e7e2c7679496c6bc4e57e35a36be50300670314fa3879405b2a"
},
"aarch64_macos": {
"etag": "0x8DD51FD5B3C7F18",
"checksum": "83727df0216eb08b4af11ab0f6f0699d06cfe807973b7cad83bc0a8a3b61ca1a"
},
"aarch64_windows": {
"etag": "0x8DD51FDD55FDE6B",
"checksum": "d0a2c26f11369c5855ffeaafaf6f299d179eb87afe3f2955fad893a7eff12dd3"
}
}, },
"0.1.54": { "0.1.54": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

View File

@@ -19,10 +19,32 @@
}, },
"license_markdown": "[MIT](https://github.com/rust-cross/cargo-zigbuild/blob/main/LICENSE)", "license_markdown": "[MIT](https://github.com/rust-cross/cargo-zigbuild/blob/main/LICENSE)",
"latest": { "latest": {
"version": "0.19.7" "version": "0.19.8"
}, },
"0.19": { "0.19": {
"version": "0.19.7" "version": "0.19.8"
},
"0.19.8": {
"x86_64_linux_musl": {
"etag": "0x8DD490D612D2ABC",
"checksum": "f7fe3a25727e5b58e1b1d7fb8119a845675d441276214039cd1c2e3e49376180"
},
"x86_64_macos": {
"etag": "0x8DD490D767A3640",
"checksum": "9a807773528537ffd60d3b09a657a0a63b237a6cefb31155584646bf01aae302"
},
"x86_64_windows": {
"etag": "0x8DD490D84454E90",
"checksum": "8a35efb6041d35fea144e05e730531acfd232b1193dd2272804aeb1205452ed6"
},
"aarch64_linux_musl": {
"etag": "0x8DD490D610F8ADB",
"checksum": "ca193cab2f29cb1380992fe51ed7e13ea759be519a4afdd045f70f01508f1853"
},
"aarch64_windows": {
"etag": "0x8DD490DBC8F876E",
"checksum": "2f60fdbe8e2c7b8bd0562225a97a6c66f87f8966f532bc24bd86309961b5728b"
}
}, },
"0.19.7": { "0.19.7": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

27
manifests/dprint.json generated
View File

@@ -25,7 +25,32 @@
}, },
"license_markdown": "[MIT](https://github.com/dprint/dprint/blob/main/LICENSE)", "license_markdown": "[MIT](https://github.com/dprint/dprint/blob/main/LICENSE)",
"latest": { "latest": {
"version": "0.48.0" "version": "0.49.0"
},
"0.49": {
"version": "0.49.0"
},
"0.49.0": {
"x86_64_linux_musl": {
"etag": "0x8DD4320D522D8E0",
"checksum": "0ff81f810da037e6fff7d326daf196eac82c72953bc10c9ae3673b2f45367763"
},
"x86_64_macos": {
"etag": "0x8DD4320D511873C",
"checksum": "56e99ab1da9f8b2424830e8f7220f6a125b784556871cbe689d1d351ad57258f"
},
"x86_64_windows": {
"etag": "0x8DD4320D510EBA2",
"checksum": "6aaf465e4b34e4da1f2fd54297bc31e64d6a2ec93a30dbad8ebd3a6f4f16974c"
},
"aarch64_linux_musl": {
"etag": "0x8DD4320D51A56F1",
"checksum": "53e98e812cf1bc0cca7e0e48cc0346217f064d8d45d6c53daf6eb0d83fa47f83"
},
"aarch64_macos": {
"etag": "0x8DD4320D520B868",
"checksum": "6772b452179a7142710860a8da8d8ec112b84c1b4dd5a7e4458c759c44b76751"
}
}, },
"0.48": { "0.48": {
"version": "0.48.0" "version": "0.48.0"

26
manifests/mdbook.json generated
View File

@@ -22,10 +22,32 @@
}, },
"license_markdown": "[MPL-2.0](https://github.com/rust-lang/mdBook/blob/master/LICENSE)", "license_markdown": "[MPL-2.0](https://github.com/rust-lang/mdBook/blob/master/LICENSE)",
"latest": { "latest": {
"version": "0.4.44" "version": "0.4.45"
}, },
"0.4": { "0.4": {
"version": "0.4.44" "version": "0.4.45"
},
"0.4.45": {
"x86_64_linux_musl": {
"etag": "0x8DD4F82D422F91C",
"checksum": "1b7ff6c18d20f367d97978d82273b5a5b343ef8e2300118c7d7f13d780619609"
},
"x86_64_macos": {
"etag": "0x8DD4F82D91DE44D",
"checksum": "085256959b89a90d476203720e3a9527f49509158f4afd218a532525711164d5"
},
"x86_64_windows": {
"etag": "0x8DD4F832D86EFB3",
"checksum": "ee9025ac339ce151bfb3a9dbfc7bce55580e84b2bcbc02a45a8dcca57dbd8a10"
},
"aarch64_linux_musl": {
"etag": "0x8DD4F82E1F83EAC",
"checksum": "8de76e084888803af4b2b710ac8e874107bbd5686f59323776defb8faa837818"
},
"aarch64_macos": {
"etag": "0x8DD4F82D89B8B35",
"checksum": "7e0368004c6e16c176f74498cc348717578c747759460b6082b62fb184e4f417"
}
}, },
"0.4.44": { "0.4.44": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

View File

@@ -3,10 +3,42 @@
"template": null, "template": null,
"license_markdown": "[Apache-2.0](https://github.com/taiki-e/parse-changelog/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/parse-changelog/blob/main/LICENSE-MIT)", "license_markdown": "[Apache-2.0](https://github.com/taiki-e/parse-changelog/blob/main/LICENSE-APACHE) OR [MIT](https://github.com/taiki-e/parse-changelog/blob/main/LICENSE-MIT)",
"latest": { "latest": {
"version": "0.6.11" "version": "0.6.12"
}, },
"0.6": { "0.6": {
"version": "0.6.11" "version": "0.6.12"
},
"0.6.12": {
"x86_64_linux_musl": {
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.12/parse-changelog-x86_64-unknown-linux-musl.tar.gz",
"etag": "0x8DD4697ED565D46",
"checksum": "619b7512735e294e9f758df6ed6d85a562d126460d71d3349d9f08e667a29225"
},
"x86_64_macos": {
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.12/parse-changelog-x86_64-apple-darwin.tar.gz",
"etag": "0x8DD46982CC23D64",
"checksum": "d88b967f24eee717a34126bd1104a8eeeb561894693d9a2e760b6cf1c0edfbc9"
},
"x86_64_windows": {
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.12/parse-changelog-x86_64-pc-windows-msvc.tar.gz",
"etag": "0x8DD469835945C2B",
"checksum": "29527cf19d1bbc772dcbc9776ec09c28e6e5f75c36c0eeea60ab631d6f2b8c62"
},
"aarch64_linux_musl": {
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.12/parse-changelog-aarch64-unknown-linux-musl.tar.gz",
"etag": "0x8DD4697EDCABBF6",
"checksum": "6cfb4707d0b90a8cf9f2c3b4d3e161d50333f4f4d180bf1e775786eec69c7820"
},
"aarch64_macos": {
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.12/parse-changelog-aarch64-apple-darwin.tar.gz",
"etag": "0x8DD469811E4DFFC",
"checksum": "cad9f0ced004adf49f217da98a28e0a2e8aa720ad082f1a64fa9b3b507405b78"
},
"aarch64_windows": {
"url": "https://github.com/taiki-e/parse-changelog/releases/download/v0.6.12/parse-changelog-aarch64-pc-windows-msvc.tar.gz",
"etag": "0x8DD4698242B5DF1",
"checksum": "aa3fca8305d2aa21246dbcb0a080574bc3b43efe2e71117545a688a15f9e24e7"
}
}, },
"0.6.11": { "0.6.11": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

82
manifests/parse-dockerfile.json generated Normal file
View File

@@ -0,0 +1,82 @@
{
"rust_crate": "parse-dockerfile",
"template": {
"x86_64_linux_musl": {
"url": "https://github.com/taiki-e/parse-dockerfile/releases/download/v${version}/parse-dockerfile-x86_64-unknown-linux-musl.tar.gz"
},
"x86_64_macos": {
"url": "https://github.com/taiki-e/parse-dockerfile/releases/download/v${version}/parse-dockerfile-x86_64-apple-darwin.tar.gz"
},
"x86_64_windows": {
"url": "https://github.com/taiki-e/parse-dockerfile/releases/download/v${version}/parse-dockerfile-x86_64-pc-windows-msvc.tar.gz"
},
"aarch64_linux_musl": {
"url": "https://github.com/taiki-e/parse-dockerfile/releases/download/v${version}/parse-dockerfile-aarch64-unknown-linux-musl.tar.gz"
},
"aarch64_macos": {
"url": "https://github.com/taiki-e/parse-dockerfile/releases/download/v${version}/parse-dockerfile-aarch64-apple-darwin.tar.gz"
},
"aarch64_windows": {
"url": "https://github.com/taiki-e/parse-dockerfile/releases/download/v${version}/parse-dockerfile-aarch64-pc-windows-msvc.tar.gz"
}
},
"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": {
"version": "0.1.1"
},
"0.1": {
"version": "0.1.1"
},
"0.1.1": {
"x86_64_linux_musl": {
"etag": "0x8DD46980448F328",
"checksum": "b72138691c67e48d77b1c69c726bf9815edc9554144fc6eb513c2df02d31ffc9"
},
"x86_64_macos": {
"etag": "0x8DD469864E107C5",
"checksum": "d0f2192e66a9ac52f1624f0ff0543f701c6c8e5a690f63f21c481b5b3e3748eb"
},
"x86_64_windows": {
"etag": "0x8DD46983232CEF8",
"checksum": "c2e8e5da8e377a13eb9e8692dd0ac6793700f43240f4cc49d00aa9831d3d561f"
},
"aarch64_linux_musl": {
"etag": "0x8DD469805997397",
"checksum": "29c0a71340eb1bcc8033ae1f3e6e77afe921f8c5c3d6b2919c50c1d5eaab22b6"
},
"aarch64_macos": {
"etag": "0x8DD46984CFFA486",
"checksum": "c91b6512ef18a51486065164cfd31d0acd5de1e47db94ef447b6d4f24e670ea6"
},
"aarch64_windows": {
"etag": "0x8DD46983C64A17B",
"checksum": "f664f395e639dd6d269c96a3443ca003c46e387701334be9bb527795e4f77234"
}
},
"0.1.0": {
"x86_64_linux_musl": {
"etag": "0x8DD42FBF89625FB",
"checksum": "9619a5811b9cc3cfa109135860469f4557de42cef776bc4b22b9459121ec6149"
},
"x86_64_macos": {
"etag": "0x8DD42FBFE2FF6FD",
"checksum": "b50e59f1e232d64ae568bac1bf5ddd8f80bcd783b1d322373b5d603d63bce66c"
},
"x86_64_windows": {
"etag": "0x8DD42FC0E0FA8E5",
"checksum": "265d4ca8a6c268177dd2e25472247be6b1cf5294005cfa16250bcaf2be9d0d84"
},
"aarch64_linux_musl": {
"etag": "0x8DD42FBFD9C4C90",
"checksum": "68b4822d75300feab0a56d52a3a798ac447319a015e4c2e2de0d353979a109da"
},
"aarch64_macos": {
"etag": "0x8DD42FC022D9F9B",
"checksum": "c4eaff6be100426f2c36a08bc2aa0e3c323880b03fdf88e94c469eedcc9a276d"
},
"aarch64_windows": {
"etag": "0x8DD42FC11EF8AB9",
"checksum": "e8fa1b845c79fa3b478c0c19e34d508ad73b6924ab6ba84c83139d0d318efdf2"
}
}
}

32
manifests/rclone.json generated
View File

@@ -28,13 +28,39 @@
}, },
"license_markdown": "[MIT](https://github.com/rclone/rclone/blob/master/COPYING)", "license_markdown": "[MIT](https://github.com/rclone/rclone/blob/master/COPYING)",
"latest": { "latest": {
"version": "1.69.0" "version": "1.69.1"
}, },
"1": { "1": {
"version": "1.69.0" "version": "1.69.1"
}, },
"1.69": { "1.69": {
"version": "1.69.0" "version": "1.69.1"
},
"1.69.1": {
"x86_64_linux_musl": {
"etag": "0x8DD4D194D7A0994",
"checksum": "231841f8d8029ae6cfca932b601b3b50d0e2c3c2cb9da3166293f1c3eae7d79c"
},
"x86_64_macos": {
"etag": "0x8DD4D1A46FD41A1",
"checksum": "ebe1d5e13b0255605becfafbfa7c1809bc985272bcea0b342675c7e29c57629b"
},
"x86_64_windows": {
"etag": "0x8DD4D1A7D5C54F1",
"checksum": "0803f06d721e5399e48794538294099b195d51cc84b27bdb67e131096ad93ee4"
},
"aarch64_linux_musl": {
"etag": "0x8DD4D199A88035B",
"checksum": "a03de8f700fcda7a1aef6b568f88d44218b698fb4e1637596c024d341bb24124"
},
"aarch64_macos": {
"etag": "0x8DD4D1A4F323719",
"checksum": "09b42295c30ba6b41a0d9c6741e4b5769de9ddecf5069f93c33f01bb46caa228"
},
"aarch64_windows": {
"etag": "0x8DD4D1A847A5706",
"checksum": "0f8a786c1eae54594bd067e05c1d22b3b346c5a8fb02392c446f63bab52be5aa"
}
}, },
"1.69.0": { "1.69.0": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

View File

@@ -22,10 +22,218 @@
}, },
"license_markdown": "[MIT](https://github.com/release-plz/release-plz/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/release-plz/release-plz/blob/main/LICENSE-APACHE)", "license_markdown": "[MIT](https://github.com/release-plz/release-plz/blob/main/LICENSE-MIT) OR [Apache-2.0](https://github.com/release-plz/release-plz/blob/main/LICENSE-APACHE)",
"latest": { "latest": {
"version": "0.3.114" "version": "0.3.122"
}, },
"0.3": { "0.3": {
"version": "0.3.114" "version": "0.3.122"
},
"0.3.122": {
"x86_64_linux_musl": {
"etag": "0x8DD537551B92DC7",
"checksum": "c2d96cccacc03dcfa29d8300bd2acaab1a5e2cab25952d0e4b1d131918ad756a"
},
"x86_64_macos": {
"etag": "0x8DD5375D4F795CB",
"checksum": "eb08314c438a6a4af29dcb574a32ae140156c0f084e46273680660af6dafa082"
},
"x86_64_windows": {
"etag": "0x8DD537619A1C1AF",
"checksum": "74f4d5bc392c2f4cff7fd32d7241ccb8a5531cf60b180e435b22f4a5fe2716b9"
},
"aarch64_linux_musl": {
"etag": "0x8DD53755C4828BF",
"checksum": "1ca3021665e381bda6d10b5e91e24773141e62a6559a2b09d59f558c47977ce8"
},
"aarch64_macos": {
"etag": "0x8DD5375C9894846",
"checksum": "2ad90e487ce5fa010b3349606e6c8d8be483fc9a09cf5853b77c205f0a1cdfb1"
},
"aarch64_windows": {
"etag": "0x8DD53761D58537A",
"checksum": "34feea582a64a179ea9a03824c65299132a557ef7db2c3edba18420195e99e04"
}
},
"0.3.121": {
"x86_64_linux_musl": {
"etag": "0x8DD536DECC2FBC1",
"checksum": "8efd266e4254dc3caf75788645d99df96dfaa6e89ae0370846667f997389ac93"
},
"x86_64_macos": {
"etag": "0x8DD536E8F265D59",
"checksum": "90d89d597cdd4eaa72472ef7f7b07bd691bff98343b155bd3880d5eb5547c8b3"
},
"x86_64_windows": {
"etag": "0x8DD536E96DF0255",
"checksum": "3e896b61d4c98cdf24435df5f6670cc884cfe376e75406f1bcc2e953947591a6"
},
"aarch64_linux_musl": {
"etag": "0x8DD536DFC95334C",
"checksum": "1b4a5a41e473cda09fd07bfb2041dc26172b976a797e341a26b7f1b9b607697c"
},
"aarch64_macos": {
"etag": "0x8DD536E3D04F1FB",
"checksum": "26f81aeee258a3f2dc071bebd82e4c829e1c00f8d0c3c4179880ad2d49012eba"
},
"aarch64_windows": {
"etag": "0x8DD536EA3C7BF48",
"checksum": "eeb321d688421ff73aed37652d7bec2eb68e9399f9bed6f215bed6409c6c6453"
}
},
"0.3.120": {
"x86_64_linux_musl": {
"etag": "0x8DD493BAA7B1A03",
"checksum": "d4098b2256d9d72117a25dfe7cfc668006a55b0056e3e00003c02100c08ca118"
},
"x86_64_macos": {
"etag": "0x8DD493C09063E5E",
"checksum": "d07b769b953bee775de789ad57058d02c1276723dfceac9cdc067620a40a2cb2"
},
"x86_64_windows": {
"etag": "0x8DD493C59593D51",
"checksum": "185dac76c26be85afe87d799e8f4fb432fd23d0acdac3ce5840d8245f931a7ec"
},
"aarch64_linux_musl": {
"etag": "0x8DD493BADBBEC1F",
"checksum": "3b75dd1b9ceb3d40c3c65eb50139b1b67cdb08eec830f48887f1b381fd791b4c"
},
"aarch64_macos": {
"etag": "0x8DD493C7A153DBF",
"checksum": "700f6155c8017b2ee72131e2b707c4298b55c2a970abef6d2af0cf407ef7960f"
},
"aarch64_windows": {
"etag": "0x8DD493C8F1D18C1",
"checksum": "9bcbf23b4f0700a0bb818e33543bf79171d6850620f3eb1d872b1cadeb89f213"
}
},
"0.3.119": {
"x86_64_linux_musl": {
"etag": "0x8DD48EFF131643C",
"checksum": "3b8c3c69d6fcec0578418122dc7b69a0045ba4c91ae982b88f498ae53971d22a"
},
"x86_64_macos": {
"etag": "0x8DD48F0BA80B7C8",
"checksum": "aed372262ed9becc9f47606fdc7129af80787e323888d8a9af8b4415b8391926"
},
"x86_64_windows": {
"etag": "0x8DD48F0E65B8A2D",
"checksum": "a3b58e918f3dc7b577e7eeed670e715bca5901ef76664e096f9fab2230ef07f7"
},
"aarch64_linux_musl": {
"etag": "0x8DD48F0053A7A76",
"checksum": "1b6ad1802f03db6294efcfee57d2badad041d7725868f3418ca344ddf439a2df"
},
"aarch64_macos": {
"etag": "0x8DD48F15FD3FDEE",
"checksum": "39759880db4ca52942589c57a1c293750cc1315ae96f4cd1060ef4fefac9cc1e"
},
"aarch64_windows": {
"etag": "0x8DD48F0EC5D1CD8",
"checksum": "645cc73ecb19571ba8c145015ed80eaadeee0fbc0e5f7a49d481a5a8cc23623b"
}
},
"0.3.118": {
"x86_64_linux_musl": {
"etag": "0x8DD488F61EDB29B",
"checksum": "f751266da808ec38b0426abce0e68387221f3dc323b96400113e040fff0bb130"
},
"x86_64_macos": {
"etag": "0x8DD4890279C0CCC",
"checksum": "2f1ea887591575c3c6e73f9697f030c54d2ba2c90cfc19e7989f16d77e2df010"
},
"x86_64_windows": {
"etag": "0x8DD489048364449",
"checksum": "bcdcb79e2015c1cb73634b8ea797b7e9124332630fda096f5a924c203adb351f"
},
"aarch64_linux_musl": {
"etag": "0x8DD488F7BD66E21",
"checksum": "b9ef712f8946d6522f0052bafd769a28e885ff7b20970aa1a8eea5085fecf80e"
},
"aarch64_macos": {
"etag": "0x8DD488FD9BD6C14",
"checksum": "7eaffdcfebb772b9bff42af2c53102d19f285307df14b061620cafc32f8ab167"
},
"aarch64_windows": {
"etag": "0x8DD489056222AB7",
"checksum": "87850153a0a917c36b6ecf404a952e9a88443872c313a79896131a28e0b56685"
}
},
"0.3.117": {
"x86_64_linux_musl": {
"etag": "0x8DD48765324E4A3",
"checksum": "5cc9089077c1e0f097d9687afacbba241f2ad5a816debf834a45e0f539d6d2ec"
},
"x86_64_macos": {
"etag": "0x8DD48772F752763",
"checksum": "162022c86d213f3ec4cf5aba07dfaae3cae84d0cc89baab02e0856f189e3d99a"
},
"x86_64_windows": {
"etag": "0x8DD487743DFFA65",
"checksum": "cf221437eaa5248685ed4e1b464300af5f132bbe91889a74986a919ed99acb64"
},
"aarch64_linux_musl": {
"etag": "0x8DD48765BCE51C3",
"checksum": "21e4007f9b180fda271ff7ea8f6bd34363b3890eff055fac5cc6b7c0db2db71e"
},
"aarch64_macos": {
"etag": "0x8DD4876A58DECD0",
"checksum": "8c0f638037005a7b8e231dec717846324b7e3f8dd7cb0cdc85feeb59746d5254"
},
"aarch64_windows": {
"etag": "0x8DD48770B3846CE",
"checksum": "7bd493f496c0b55b68600af36b4b9c2225f75db693665832b943526b8253e38f"
}
},
"0.3.116": {
"x86_64_linux_musl": {
"etag": "0x8DD42DE5F06AD6B",
"checksum": "478cd61804a0f680194e087e61f8efeff8f9d4336c6677f6dbf7857caa1bd277"
},
"x86_64_macos": {
"etag": "0x8DD42DEDA2BEEC8",
"checksum": "090475722ef7aaf583fdcc33b9dbb39779859226dab569a243ccc26df5d71adc"
},
"x86_64_windows": {
"etag": "0x8DD42DF1BAAF799",
"checksum": "bd356a00f8d8accc6599edc44847b7501fc0df3b03c1efb3fb6292265ab8c044"
},
"aarch64_linux_musl": {
"etag": "0x8DD42DE7BC7EF8B",
"checksum": "0d346b05dfa6aed484d701343ac1cf5b4686f9a53de67b7514e0f93475640701"
},
"aarch64_macos": {
"etag": "0x8DD42DF056C6C3B",
"checksum": "c79a30c44b15643ff569270b2c7de9b4416784624f50a6d03f49519b2f247a55"
},
"aarch64_windows": {
"etag": "0x8DD42DF27182C76",
"checksum": "29f933fd59d05ca0be99493d0e3cfa6e1134b2b3c3b02cc32eb63ceb17841894"
}
},
"0.3.115": {
"x86_64_linux_musl": {
"etag": "0x8DD42D7BC589A24",
"checksum": "aafca01db66ae647d95b6383300bf966cafe1176655cf40109c4362a7c107812"
},
"x86_64_macos": {
"etag": "0x8DD42D80E66C940",
"checksum": "586542b06db56a82b94741f14b2953a36b2d9129e0678cf71dab1c9d9fda6c4b"
},
"x86_64_windows": {
"etag": "0x8DD42D87237BFB4",
"checksum": "90cf663d1b20240badcc5ef7d1ecb41e51856157412fc0a8565f0d4f1bc7ebe2"
},
"aarch64_linux_musl": {
"etag": "0x8DD42D7C9D3E797",
"checksum": "886eb3d7290c5a46658de62930c7b4377558c8cd27bb7e0c2b20c295f8b1804e"
},
"aarch64_macos": {
"etag": "0x8DD42D804B2C109",
"checksum": "f8ab95bda2f46ba84374120a01baa07e6ccc7962db8d24a682a852d3eca70013"
},
"aarch64_windows": {
"etag": "0x8DD42D88EAB51A1",
"checksum": "2922a0548329847aec6816c06472271be7f27946cd0017b811b3d0e2e3adc95f"
}
}, },
"0.3.114": { "0.3.114": {
"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.9.1" "version": "0.10.0"
},
"0.10": {
"version": "0.10.0"
},
"0.10.0": {
"x86_64_linux_musl": {
"etag": "0x8DD55012416929F",
"checksum": "1fbb35e135660d04a2d5e42b59c7874d39b3deb17de56330b25b713ec59f849b"
},
"x86_64_macos": {
"etag": "0x8DD550122EF3D9A",
"checksum": "6d4a77802ec83607478df7b6338be28171e65e58a38a49497ebec1fbb300fce4"
},
"x86_64_windows": {
"etag": "0x8DD550123829A62",
"checksum": "0d499d0f73fa575f805df014af6ece49b840195fb7de0c552230899d77186ceb"
},
"aarch64_linux_musl": {
"etag": "0x8DD5501211A9151",
"checksum": "d6a1ce4acd02b937cd61bc675a8be029a60f7bc167594c33d75732bbc0a07400"
},
"aarch64_macos": {
"etag": "0x8DD55011FE604AA",
"checksum": "5aba39252e2efa26bd76144f87ac59787d60fe567ab785e27e2a8c8190892eac"
},
"aarch64_windows": {
"etag": "0x8DD5501207F9BF4",
"checksum": "5fd6cd6dd474e91c37510719bf27cfe1826f929e40dd383c22a7b96da9a5458d"
}
}, },
"0.9": { "0.9": {
"version": "0.9.1" "version": "0.9.1"

29
manifests/syft.json generated
View File

@@ -24,10 +24,35 @@
}, },
"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.19.0" "version": "1.20.0"
}, },
"1": { "1": {
"version": "1.19.0" "version": "1.20.0"
},
"1.20": {
"version": "1.20.0"
},
"1.20.0": {
"x86_64_linux_musl": {
"etag": "0x8DD52B9B44D9131",
"checksum": "689e12c5cbf67521ce61b9c126068f9eaabe1223e77971b2fede50033ff6b5cc"
},
"x86_64_macos": {
"etag": "0x8DD52B9B5107ADF",
"checksum": "5fdf7afd0f1bfdbb2a1a575eacef8e10edfcb4783631baaa7572a9f4a4d86441"
},
"x86_64_windows": {
"etag": "0x8DD52B9B4FD568D",
"checksum": "b8bfdedb261de2a69768097422a73bc72273ee92136ff676a20c3161e658881f"
},
"aarch64_linux_musl": {
"etag": "0x8DD52B9B448B4AE",
"checksum": "53f76737ddbf425c89240d5b0be0990b1a71e66890b44f19743221b17e6ee635"
},
"aarch64_macos": {
"etag": "0x8DD52B9B5075D68",
"checksum": "91365712a06af0c0dcd06f5e87fc8791c4332831b3dd6f5474acaaf803d71d82"
}
}, },
"1.19": { "1.19": {
"version": "1.19.0" "version": "1.19.0"

96
manifests/typos.json generated
View File

@@ -16,13 +16,103 @@
}, },
"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.4" "version": "1.29.9"
}, },
"1": { "1": {
"version": "1.29.4" "version": "1.29.9"
}, },
"1.29": { "1.29": {
"version": "1.29.4" "version": "1.29.9"
},
"1.29.9": {
"x86_64_linux_musl": {
"etag": "0x8DD51BEAEB7902D",
"checksum": "ef985fe226e823297c9c2aa8553fb718bb11838b744c54429f2900d5dbfd5415"
},
"x86_64_macos": {
"etag": "0x8DD51BED49B2305",
"checksum": "2dbe0f9ac6a0377592c7d0cf6709caba68765036c00646bd02d608e723b64014"
},
"x86_64_windows": {
"etag": "0x8DD51BF1E2DE6DA",
"checksum": "8e85bf422026ee15b9464796c48bfb26b53a040132ed5cdf905cbf60d4283764"
},
"aarch64_macos": {
"etag": "0x8DD51BEDDC55FCA",
"checksum": "d8cdf714be02e1b5ea78376d257ebd8776e5bf2bd9ea92954b6289e7f5f041f9"
}
},
"1.29.8": {
"x86_64_linux_musl": {
"etag": "0x8DD50FF6B404955",
"checksum": "f1eebf7060e33ff08145bd5f211e75045608b39282c87483033bfe57cbeff3dc"
},
"x86_64_macos": {
"etag": "0x8DD50FF76650FE8",
"checksum": "90deb589e2d41cf808fde17f2036083c3e92a1a067f867860c4e01b37608034e"
},
"x86_64_windows": {
"etag": "0x8DD50FFEAD694DD",
"checksum": "b4590074a208bc62a4194a3ab35fbb776c785c135cb7bd6f9689c920761b962d"
},
"aarch64_macos": {
"etag": "0x8DD50FF9B929E8E",
"checksum": "f30be4284ca2780e999dcbe54c58671dcff38e715cfedd2c3c526123054f5715"
}
},
"1.29.7": {
"x86_64_linux_musl": {
"etag": "0x8DD4C4ABE7A46E8",
"checksum": "27e96ea40ce90c1c81e0c761b3c3161e8b0a0184f89cc938f101e1719754e6e6"
},
"x86_64_macos": {
"etag": "0x8DD4C4AD50F54F0",
"checksum": "5406408d4b701520d06b84b0852b8539a76a68ee28b0cec5fe506544577f6e6b"
},
"x86_64_windows": {
"etag": "0x8DD4C4B1EEE52D2",
"checksum": "4b90d1d6c4f2ef90c5dfffdbc79288576f6a5590783e6f86741c14e62baeaba6"
},
"aarch64_macos": {
"etag": "0x8DD4C4AA38D01D4",
"checksum": "e7f683d02a224515e2e0efb74fee6b8a55bd75698bef6aab0fbedafaacc6298d"
}
},
"1.29.6": {
"x86_64_linux_musl": {
"etag": "0x8DD4C447EF53536",
"checksum": "384dce303c9139f7a2834eedeea1370e5f94665cd15f97340937f070a15431f1"
},
"x86_64_macos": {
"etag": "0x8DD4C448D48BC67",
"checksum": "2d407c1bc8e92f3931138b6612848dc0a60ff1c8d7f01d4bd74ba9549ca2e4b0"
},
"x86_64_windows": {
"etag": "0x8DD4C452CE68A20",
"checksum": "bcb73abfee73a7679ee951d3565c00e4f595bbb4dd0e8b5d6aff561ebcf81262"
},
"aarch64_macos": {
"etag": "0x8DD4C449D3122A1",
"checksum": "5cd7b551962e4d62e7f82d299472d7e8df181d45babc41a46480587bb5c5633c"
}
},
"1.29.5": {
"x86_64_linux_musl": {
"etag": "0x8DD417A6CB2709D",
"checksum": "e4101f822065efd864d09e1c684038cfec8b2805039ba8e1d8e911d1386eac46"
},
"x86_64_macos": {
"etag": "0x8DD417ACDB64ACA",
"checksum": "b2204510baaeb8e7186155c7b38d0ffc146d75e08dd14d300d887a87a4d30669"
},
"x86_64_windows": {
"etag": "0x8DD417AC3813FC9",
"checksum": "804d887c804b13ff26ab46677eb534fc912538c59c049ebaffe133e7f0e70456"
},
"aarch64_macos": {
"etag": "0x8DD417AD33699BA",
"checksum": "ef9eb9a9ec7cfeaba3909b154cc01edcbee4b5c370acd6b70508cd4d4d19c20c"
}
}, },
"1.29.4": { "1.29.4": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

8
manifests/wash.json generated
View File

@@ -30,8 +30,8 @@
"checksum": "8bba2463f4e121fdbbebc4046aabe1ade54aa3bd72ba70a57ad4b0e0e657bec2" "checksum": "8bba2463f4e121fdbbebc4046aabe1ade54aa3bd72ba70a57ad4b0e0e657bec2"
}, },
"x86_64_macos": { "x86_64_macos": {
"etag": "0x8DD3EEC2BF542B2", "etag": "0x8DD40984BD1ED53",
"checksum": "edec0fa45d5ed437322d2813714b5b268d3882bf5ba93f857eefef26f068037b" "checksum": "68b167bbadf17c3807f5b09d7b16287f543f4dc36557f998c307856c09d3aabb"
}, },
"x86_64_windows": { "x86_64_windows": {
"etag": "0x8DD3EEC2C069451", "etag": "0x8DD3EEC2C069451",
@@ -42,8 +42,8 @@
"checksum": "bab4fad652eaa9bb1e890daa0478ec223aaf448fb72eb00e59014034a3bca345" "checksum": "bab4fad652eaa9bb1e890daa0478ec223aaf448fb72eb00e59014034a3bca345"
}, },
"aarch64_macos": { "aarch64_macos": {
"etag": "0x8DD3EEC2BD97591", "etag": "0x8DD40983E271249",
"checksum": "c2d0443264d064c3f975809e945d19fb4180a3a1d21944e43ea261f7c3050450" "checksum": "7fdac7caa9eb3ce8f54447d2e35b37f578555de3ab39b26b59b08eb59e01e4cb"
} }
}, },
"0.37": { "0.37": {

View File

@@ -28,7 +28,65 @@
}, },
"license_markdown": "[Apache-2.0 WITH LLVM-exception](https://github.com/bytecodealliance/wasmtime/blob/main/LICENSE)", "license_markdown": "[Apache-2.0 WITH LLVM-exception](https://github.com/bytecodealliance/wasmtime/blob/main/LICENSE)",
"latest": { "latest": {
"version": "29.0.1" "version": "30.0.1"
},
"30": {
"version": "30.0.1"
},
"30.0": {
"version": "30.0.1"
},
"30.0.1": {
"x86_64_linux_gnu": {
"etag": "0x8DD52CF8F3C37D8",
"checksum": "199ad22a5bd21bb58254a08694ea21736218eb98543d8115fe5b061c86acce88"
},
"x86_64_macos": {
"etag": "0x8DD52CF90715FF0",
"checksum": "14b1c4544e8bd0b5634b8abc6645f067b4805f1cfed888c472311beb171d38a1"
},
"x86_64_windows": {
"etag": "0x8DD52CF956BD41D",
"checksum": "2403df495779198f55199bcf96b4755338bcecc47803ec892280c79936ff5a88"
},
"aarch64_linux_gnu": {
"etag": "0x8DD52CF7F0DAC3F",
"checksum": "3c7898be02de6daf70dae9daba2916dc04916ce1c5c08d7480dc394059f1962b"
},
"aarch64_macos": {
"etag": "0x8DD52CF8028D9DE",
"checksum": "7d5484feb0711efa546173e6db4a7006a8412ec1ff0df01498cf83b1450d4840"
},
"aarch64_windows": {
"etag": "0x8DD52CF82FDA8E7",
"checksum": "378304dd8b05d6ca6547013594e022af923ad047e66d4c8539c0b30f7a4fccbf"
}
},
"30.0.0": {
"x86_64_linux_gnu": {
"etag": "0x8DD515A370042BA",
"checksum": "e5a1539288e5314eacdbace8b39412302f231233bb4f6e90551958ceb4ed5bef"
},
"x86_64_macos": {
"etag": "0x8DD515A38224727",
"checksum": "f85a5d3a13a5ef5a757bac0494cd7053fd894cc9c137e7a8fe56f3a53ec4a998"
},
"x86_64_windows": {
"etag": "0x8DD515A3CED862C",
"checksum": "e3d5f97ffea844a958b2b9a2c266ac60ea090f738ac875bf5ea5172c565be84c"
},
"aarch64_linux_gnu": {
"etag": "0x8DD515A26A641FA",
"checksum": "1b686f8c306ca37b222073ca1fa64a21b4f1a4beaaaf28627d3a0e546635f6b5"
},
"aarch64_macos": {
"etag": "0x8DD515A27E5710B",
"checksum": "04c8711e050229c94f121f62afe87722846d635d31b3ca7dddd7764c3dddf03b"
},
"aarch64_windows": {
"etag": "0x8DD515A2A941EC2",
"checksum": "5cbe71bea3af19a56207a12cd5a636165e32a592b6b55469dc6b17d5650b4c25"
}
}, },
"29": { "29": {
"version": "29.0.1" "version": "29.0.1"

27
manifests/xh.json generated
View File

@@ -24,7 +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.1" "version": "0.24.0"
},
"0.24": {
"version": "0.24.0"
},
"0.24.0": {
"x86_64_linux_musl": {
"etag": "0x8DD4FF88945D0F5",
"checksum": "c65ffd3aca38cb7d9a618342718650957d2f371f21435f62eb1a19229b033825"
},
"x86_64_macos": {
"etag": "0x8DD4FF8787DD46E",
"checksum": "9a16febb0eb25a0c226dbb889985f2cce1b4f3808a18113742f82f93e5a1290b"
},
"x86_64_windows": {
"etag": "0x8DD4FF8D187B278",
"checksum": "ffadf8460c5f16ccf0da36baa3703ea3da64bc74e8ef13cb9e1b5d29aba3c23d"
},
"aarch64_linux_musl": {
"etag": "0x8DD4FF876E9B91B",
"checksum": "e32e714a5babf1196d20c46b198af3083576cd0ffc94e593fc263239f14bfe8d"
},
"aarch64_macos": {
"etag": "0x8DD4FF872EAD8EB",
"checksum": "15f4fcd7c0321723455b6a56812914fd557baf05d6712d9d086a5008f1dc0579"
}
}, },
"0.23": { "0.23": {
"version": "0.23.1" "version": "0.23.1"

30
manifests/zola.json generated
View File

@@ -10,13 +10,41 @@
"x86_64_windows": { "x86_64_windows": {
"url": "https://github.com/getzola/zola/releases/download/v${version}/zola-v${version}-x86_64-pc-windows-msvc.zip" "url": "https://github.com/getzola/zola/releases/download/v${version}/zola-v${version}-x86_64-pc-windows-msvc.zip"
}, },
"aarch64_linux_gnu": {
"url": "https://github.com/getzola/zola/releases/download/v${version}/zola-v${version}-aarch64-unknown-linux-gnu.tar.gz"
},
"aarch64_macos": { "aarch64_macos": {
"url": "https://github.com/getzola/zola/releases/download/v${version}/zola-v${version}-aarch64-apple-darwin.tar.gz" "url": "https://github.com/getzola/zola/releases/download/v${version}/zola-v${version}-aarch64-apple-darwin.tar.gz"
} }
}, },
"license_markdown": "[MIT](https://github.com/getzola/zola/blob/master/LICENSE)", "license_markdown": "[MIT](https://github.com/getzola/zola/blob/master/LICENSE)",
"latest": { "latest": {
"version": "0.19.2" "version": "0.20.0"
},
"0.20": {
"version": "0.20.0"
},
"0.20.0": {
"x86_64_linux_gnu": {
"etag": "0x8DD4D41F3D3509F",
"checksum": "ca7ed5b33a739c5b5b35a0e207e5c3578a652cd12b61c675763b3ff34c322d08"
},
"x86_64_macos": {
"etag": "0x8DD4D41F3E3B8E8",
"checksum": "23f1d5e117c7a01aa1c452cd1ffd3da1af533cf74a93762d9e4e1459fb029646"
},
"x86_64_windows": {
"etag": "0x8DD4D41F41345F4",
"checksum": "25cd5082b6717fe50fd1351a4867ece6d898211a9bf37b58180c7b4013f9e061"
},
"aarch64_linux_gnu": {
"etag": "0x8DD4D41F41ADE85",
"checksum": "91b428514d1c6b5674ed0e7ec244152b98c0a3eb6b63bb2c887e5966f185f7fa"
},
"aarch64_macos": {
"etag": "0x8DD4D41F4283CF9",
"checksum": "6dd8a3c77baef359df00916709e954e415c5acc1fa99fcd754bb600627fb4935"
}
}, },
"0.19": { "0.19": {
"version": "0.19.2" "version": "0.19.2"

View File

@@ -1,28 +0,0 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: Apache-2.0 OR MIT
set -CeEuo pipefail
IFS=$'\n\t'
trap -- 's=$?; printf >&2 "%s\n" "${0##*/}:${LINENO}: \`${BASH_COMMAND}\` exit with ${s}"; exit ${s}' ERR
cd -- "$(dirname -- "$0")"
version="$(cargo metadata --format-version=1 --no-deps | jq -r '.packages[] | select(.name == "install-action-manifest-schema") | .version')"
if [[ "${version}" == "0."* ]]; then
schema_version="0.$(cut -d. -f2 <<<"${version}")"
else
schema_version="$(cut -d. -f1 <<<"${version}")"
fi
branch="manifest-schema-${schema_version}"
git worktree add --force "${1?}"
cd -- "$1"
if git fetch origin "${branch}"; then
git checkout "origin/${branch}" -B "${branch}"
elif ! git checkout "${branch}"; then
# New branch with no history. Credit: https://stackoverflow.com/a/13969482
git checkout --orphan "${branch}"
git rm -rf . || true
git config --local user.name github-actions
git config --local user.email github-actions@github.com
git commit -m 'Initial commit' --allow-empty
fi

View File

@@ -22,7 +22,7 @@ set -x
has_update='' 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}" &>/dev/null; then
name="${manifest##*/}" name="${manifest##*/}"
name="${name%.*}" name="${name%.*}"
git stash git stash

View File

@@ -6,9 +6,13 @@ trap -- 's=$?; printf >&2 "%s\n" "${0##*/}:${LINENO}: \`${BASH_COMMAND}\` exit w
cd -- "$(dirname -- "$0")"/../.. 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.35' not found
glibc_pre_2_35_incompat=(
zola
)
# version `GLIBC_2.34' not found # version `GLIBC_2.34' not found
glibc_pre_2_34_incompat=( glibc_pre_2_34_incompat=(
cargo-cyclonedx "${glibc_pre_2_35_incompat[@]}"
cargo-spellcheck cargo-spellcheck
wait-for-them wait-for-them
xbuild xbuild
@@ -18,7 +22,6 @@ glibc_pre_2_31_incompat=(
"${glibc_pre_2_34_incompat[@]}" "${glibc_pre_2_34_incompat[@]}"
cargo-sort cargo-sort
espup espup
zola
) )
# version `GLIBC_2.28' not found # version `GLIBC_2.28' not found
glibc_pre_2_28_incompat=( glibc_pre_2_28_incompat=(
@@ -36,7 +39,7 @@ glibc_pre_2_27_incompat=(
# version `GLIBC_2.17' not found # version `GLIBC_2.17' not found
glibc_pre_2_17_incompat=( glibc_pre_2_17_incompat=(
"${glibc_pre_2_27_incompat[@]}" "${glibc_pre_2_27_incompat[@]}"
deepsource deepsource # https://github.com/DeepSourceCorp/cli/issues/245
) )
musl_incompat=( musl_incompat=(
"${glibc_pre_2_17_incompat[@]}" "${glibc_pre_2_17_incompat[@]}"
@@ -68,28 +71,33 @@ case "$(uname -s)" in
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")
higher_glibc_version=$(sort -Vu <<<"2.34"$'\n'"${host_glibc_version}" | tail -1) higher_glibc_version=$(LC_ALL=C sort -Vu <<<"2.35"$'\n'"${host_glibc_version}" | tail -1)
if [[ "${higher_glibc_version}" != "${host_glibc_version}" ]]; then if [[ "${higher_glibc_version}" != "${host_glibc_version}" ]]; then
higher_glibc_version=$(sort -Vu <<<"2.31"$'\n'"${host_glibc_version}" | tail -1) higher_glibc_version=$(LC_ALL=C sort -Vu <<<"2.34"$'\n'"${host_glibc_version}" | tail -1)
if [[ "${higher_glibc_version}" != "${host_glibc_version}" ]]; then if [[ "${higher_glibc_version}" != "${host_glibc_version}" ]]; then
higher_glibc_version=$(sort -Vu <<<"2.28"$'\n'"${host_glibc_version}" | tail -1) higher_glibc_version=$(LC_ALL=C sort -Vu <<<"2.31"$'\n'"${host_glibc_version}" | tail -1)
if [[ "${higher_glibc_version}" != "${host_glibc_version}" ]]; then if [[ "${higher_glibc_version}" != "${host_glibc_version}" ]]; then
higher_glibc_version=$(sort -Vu <<<"2.27"$'\n'"${host_glibc_version}" | tail -1) higher_glibc_version=$(LC_ALL=C sort -Vu <<<"2.28"$'\n'"${host_glibc_version}" | tail -1)
if [[ "${higher_glibc_version}" != "${host_glibc_version}" ]]; then if [[ "${higher_glibc_version}" != "${host_glibc_version}" ]]; then
higher_glibc_version=$(sort -Vu <<<"2.17"$'\n'"${host_glibc_version}" | tail -1) higher_glibc_version=$(LC_ALL=C sort -Vu <<<"2.27"$'\n'"${host_glibc_version}" | tail -1)
if [[ "${higher_glibc_version}" != "${host_glibc_version}" ]]; then if [[ "${higher_glibc_version}" != "${host_glibc_version}" ]]; then
incompat_tools+=("${glibc_pre_2_17_incompat[@]}") higher_glibc_version=$(LC_ALL=C sort -Vu <<<"2.17"$'\n'"${host_glibc_version}" | tail -1)
if [[ "${higher_glibc_version}" != "${host_glibc_version}" ]]; then
incompat_tools+=("${glibc_pre_2_17_incompat[@]}")
else
incompat_tools+=("${glibc_pre_2_27_incompat[@]}")
fi
else else
incompat_tools+=("${glibc_pre_2_27_incompat[@]}") incompat_tools+=("${glibc_pre_2_28_incompat[@]}")
fi fi
else else
incompat_tools+=("${glibc_pre_2_28_incompat[@]}") incompat_tools+=("${glibc_pre_2_31_incompat[@]}")
fi fi
else else
incompat_tools+=("${glibc_pre_2_31_incompat[@]}") incompat_tools+=("${glibc_pre_2_34_incompat[@]}")
fi fi
else else
incompat_tools+=("${glibc_pre_2_34_incompat[@]}") incompat_tools+=("${glibc_pre_2_35_incompat[@]}")
fi fi
fi fi
fi fi

View File

@@ -2,16 +2,30 @@
"repository": "https://github.com/CycloneDX/cyclonedx-rust-cargo", "repository": "https://github.com/CycloneDX/cyclonedx-rust-cargo",
"tag_prefix": "cargo-cyclonedx-", "tag_prefix": "cargo-cyclonedx-",
"rust_crate": "${package}", "rust_crate": "${package}",
"bin": "${package}-${rust_target}/${package}${exe}",
"version_range": ">= 0.5.0", "version_range": ">= 0.5.0",
"platform": { "platform": {
"x86_64_macos": {
"asset_name": "${package}-Darwin-x86_64.tar.gz"
},
"x86_64_windows": {
"asset_name": "${package}-Win-x86_64.zip"
},
"x86_64_linux_gnu": { "x86_64_linux_gnu": {
"asset_name": "${package}-linux-amd64.tar.gz" "asset_name": "${package}-linux-amd64.tar.gz"
},
"x86_64_linux_musl": {
"asset_name": "${package}-${rust_target}.tar.xz"
},
"x86_64_macos": {
"asset_name": [
"${package}-${rust_target}.tar.xz",
"${package}-Darwin-x86_64.tar.gz"
]
},
"x86_64_windows": {
"asset_name": [
"${package}-${rust_target}.zip",
"${package}-Win-x86_64.zip"
],
"bin": "${package}${exe}"
},
"aarch64_macos": {
"asset_name": "${package}-${rust_target}.tar.xz"
} }
} }
} }

View File

@@ -0,0 +1,14 @@
{
"repository": "https://github.com/taiki-e/parse-dockerfile",
"tag_prefix": "v",
"rust_crate": "${package}",
"asset_name": "${package}-${rust_target}.tar.gz",
"platform": {
"x86_64_linux_musl": {},
"x86_64_macos": {},
"x86_64_windows": {},
"aarch64_linux_musl": {},
"aarch64_macos": {},
"aarch64_windows": {}
}
}

View File

@@ -9,6 +9,7 @@
"x86_64_windows": { "x86_64_windows": {
"asset_name": "${package}-v${version}-${rust_target}.zip" "asset_name": "${package}-v${version}-${rust_target}.zip"
}, },
"aarch64_linux_gnu": {},
"aarch64_macos": {} "aarch64_macos": {}
} }
} }

View File

@@ -11,11 +11,11 @@ use std::{
time::Duration, time::Duration,
}; };
use anyhow::{bail, Context as _, Result}; use anyhow::{Context as _, Result, bail};
use fs_err as fs; use fs_err as fs;
use install_action_internal_codegen::{ use install_action_internal_codegen::{
workspace_root, BaseManifest, HostPlatform, Manifest, ManifestDownloadInfo, ManifestRef, BaseManifest, HostPlatform, Manifest, ManifestDownloadInfo, ManifestRef, ManifestTemplate,
ManifestTemplate, ManifestTemplateDownloadInfo, Manifests, Signing, SigningKind, Version, ManifestTemplateDownloadInfo, Manifests, Signing, SigningKind, Version, workspace_root,
}; };
use sha2::{Digest as _, Sha256}; use sha2::{Digest as _, Sha256};
use spdx::expression::{ExprNode, ExpressionReq, Operator}; use spdx::expression::{ExprNode, ExpressionReq, Operator};
@@ -193,7 +193,7 @@ fn main() -> Result<()> {
let version_req: Option<semver::VersionReq> = match version_req { let version_req: Option<semver::VersionReq> = match version_req {
_ if latest_only => { _ if latest_only => {
let req = format!("={}", releases.first_key_value().unwrap().0 .0).parse()?; let req = format!("={}", releases.first_key_value().unwrap().0.0).parse()?;
eprintln!("update manifest for versions '{req}'"); eprintln!("update manifest for versions '{req}'");
Some(req) Some(req)
} }
@@ -215,7 +215,7 @@ fn main() -> Result<()> {
let req = if version_req == "latest" { let req = if version_req == "latest" {
// TODO: this should check all missing versions // TODO: this should check all missing versions
if manifests.map.is_empty() { if manifests.map.is_empty() {
format!("={}", releases.first_key_value().unwrap().0 .0).parse()? format!("={}", releases.first_key_value().unwrap().0.0).parse()?
} else { } else {
format!(">={}", semver_versions.last().unwrap()).parse()? format!(">={}", semver_versions.last().unwrap()).parse()?
} }
@@ -248,7 +248,7 @@ fn main() -> Result<()> {
if skip_existing_manifest_versions && existing_manifest.is_some() { if skip_existing_manifest_versions && existing_manifest.is_some() {
eprintln!("Skipping {semver_version} already in manifest"); eprintln!("Skipping {semver_version} already in manifest");
continue; continue;
}; }
let mut download_info = BTreeMap::new(); let mut download_info = BTreeMap::new();
let mut pubkey = None; let mut pubkey = None;
@@ -310,7 +310,7 @@ fn main() -> Result<()> {
if download_cache.is_file() { if download_cache.is_file() {
eprintln!("already downloaded"); eprintln!("already downloaded");
fs::File::open(download_cache)?.read_to_end(&mut buf)?; fs::File::open(download_cache)?.read_to_end(&mut buf)?; // Not buffered because it is read at once.
} else { } else {
response.into_reader().read_to_end(&mut buf)?; response.into_reader().read_to_end(&mut buf)?;
eprintln!("download complete"); eprintln!("download complete");
@@ -445,6 +445,14 @@ fn main() -> Result<()> {
// macOS universal binary or x86_64 binary that works on both x86_64 and AArch64 (rosetta). // macOS universal binary or x86_64 binary that works on both x86_64 and AArch64 (rosetta).
download_info.remove(&HostPlatform::aarch64_macos); download_info.remove(&HostPlatform::aarch64_macos);
} }
if download_info.contains_key(&HostPlatform::x86_64_windows)
&& download_info.contains_key(&HostPlatform::aarch64_windows)
&& download_info[&HostPlatform::x86_64_windows].url
== download_info[&HostPlatform::aarch64_windows].url
{
// x86_64 Windows binary that works on both x86_64 and AArch64.
download_info.remove(&HostPlatform::aarch64_windows);
}
has_build_metadata |= !semver_version.build.is_empty(); has_build_metadata |= !semver_version.build.is_empty();
if semver_version.pre.is_empty() { if semver_version.pre.is_empty() {
semver_versions.insert(semver_version.clone()); semver_versions.insert(semver_version.clone());
@@ -844,7 +852,9 @@ fn get_license_markdown(spdx_expr: &str, repo: &str, default_branch: &str) -> Op
panic!("Unable to find any license files in the repo for licenses {license_ids:?}"); panic!("Unable to find any license files in the repo for licenses {license_ids:?}");
} }
if license_markdowns.len() != len { if license_markdowns.len() != len {
panic!("Unable to find license files in the repo for all licenses {license_ids:?}; found {license_markdowns:?}"); panic!(
"Unable to find license files in the repo for all licenses {license_ids:?}; found {license_markdowns:?}"
);
} }
match op { match op {
None => panic!("op expected"), None => panic!("op expected"),

View File

@@ -1,10 +1,14 @@
// SPDX-License-Identifier: Apache-2.0 OR MIT // SPDX-License-Identifier: Apache-2.0 OR MIT
use std::{env, fmt, io::Write as _, path::PathBuf}; use std::{
env, fmt,
io::{BufWriter, Write as _},
path::PathBuf,
};
use anyhow::Result; use anyhow::Result;
use fs_err as fs; use fs_err as fs;
use install_action_internal_codegen::{workspace_root, BaseManifest, Manifests}; use install_action_internal_codegen::{BaseManifest, Manifests, workspace_root};
const HEADER: &str = "# Tools const HEADER: &str = "# Tools
@@ -111,8 +115,7 @@ fn main() -> Result<()> {
let mut markdown_file = workspace_root.clone(); let mut markdown_file = workspace_root.clone();
markdown_file.push("TOOLS.md"); markdown_file.push("TOOLS.md");
let file = std::fs::File::create(markdown_file).expect("Unable to create file"); let mut file = BufWriter::new(fs::File::create(markdown_file).unwrap()); // Buffered because it is written many times.
let mut file = std::io::BufWriter::new(file);
file.write_all(HEADER.as_bytes()).expect("Unable to write header"); file.write_all(HEADER.as_bytes()).expect("Unable to write header");
@@ -121,6 +124,7 @@ fn main() -> Result<()> {
} }
file.write_all(FOOTER.as_bytes()).expect("Unable to write footer"); file.write_all(FOOTER.as_bytes()).expect("Unable to write footer");
file.flush()?;
Ok(()) Ok(())
} }

View File

@@ -144,8 +144,9 @@ tools+=(valgrind)
for tool in "${tools[@]}"; do for tool in "${tools[@]}"; do
git checkout -b "${tool}" git checkout -b "${tool}"
sed -E "${in_place[@]}" "s/required: true/required: false/g" action.yml sed -E "${in_place[@]}" action.yml \
sed -E "${in_place[@]}" "s/# default: #publish:tool/default: ${tool}/g" action.yml -e "s/required: true/required: false/g" \
-e "s/# default: #publish:tool/default: ${tool}/g"
git add action.yml git add action.yml
git commit -m "${tool}" git commit -m "${tool}"
retry git push origin -f refs/heads/"${tool}" retry git push origin -f refs/heads/"${tool}"
@@ -158,3 +159,46 @@ for tool in "${tools[@]}"; do
git checkout main git checkout main
git branch -D "${tool}" git branch -D "${tool}"
done done
schema_workspace=/tmp/workspace
rm -rf -- "${schema_workspace}"
# Checkout manifest-schema branch
schema_version="$(cargo metadata --format-version=1 --no-deps | jq -r '.packages[] | select(.name == "install-action-manifest-schema") | .version')"
if [[ "${schema_version}" == "0."* ]]; then
schema_version="0.$(cut -d. -f2 <<<"${schema_version}")"
else
schema_version="$(cut -d. -f1 <<<"${schema_version}")"
fi
schema_branch="manifest-schema-${schema_version}"
git worktree add --force "${schema_workspace}"
(
cd -- "${schema_workspace}"
if git fetch origin "${schema_branch}"; then
git checkout "origin/${schema_branch}" -B "${schema_branch}"
elif ! git checkout "${schema_branch}"; then
# New branch with no history. Credit: https://stackoverflow.com/a/13969482
git checkout --orphan "${schema_branch}"
git rm -rf -- . || true
git commit -m 'Initial commit' --allow-empty
fi
)
# Copy over schema
cp -- ./manifests/* "${schema_workspace}"
(
cd -- "${schema_workspace}"
# Stage changes
git add .
# Detect changes, then commit and push if changes exist
if [[ "$(git status --porcelain=v1 | wc -l)" != "0" ]]; then
git commit -m 'Update manifest schema'
retry git push origin HEAD
fi
)
rm -rf -- "${schema_workspace}"
git worktree prune
# TODO: get branch in schema_workspace dir instead
git branch -D "${schema_branch}" "${schema_workspace##*/}"

File diff suppressed because it is too large Load Diff