mirror of
https://github.com/taiki-e/install-action.git
synced 2026-04-17 19:52:38 +08:00
``` + choco install --no-progress --requirechecksums cygwin Chocolatey v2.6.0 Installing the following packages: cygwin By installing, you accept licenses for the packages. Downloading package from source 'https://community.chocolatey.org/api/v2/' Cygwin v3.6.6 [Approved] Cygwin package files install completed. Performing other installation steps. Download site: http://mirrors.kernel.org/sourceware/cygwin/ Installing 64-bit Cygwin... ERROR: Running ["C:\ProgramData\chocolatey\lib\Cygwin\tools\setup-x86_64.exe" --quiet-mode --site "http://mirrors.kernel.org/sourceware/cygwin/" --packages default --root "C:\tools\cygwin" --local-package-dir "C:\tools\cygwin" --no-desktop] was not successful. Exit code was '1'. See log for possible error messages. Environment Vars (like PATH) have changed. Close/reopen your shell to see the changes (or in powershell/cmd.exe just type `refreshenv`). The install of Cygwin was NOT successful. Error while running 'C:\ProgramData\chocolatey\lib\Cygwin\tools\chocolateyInstall.ps1'. See log for details. Chocolatey installed 0/1 packages. 1 packages failed. See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log). Failures - Cygwin (exited 1) - Error while running 'C:\ProgramData\chocolatey\lib\Cygwin\tools\chocolateyInstall.ps1'. See log for details. Did you know the proceeds of Pro (and some proceeds from other licensed editions) go into bettering the community infrastructure? Your support ensures an active community, keeps Chocolatey tip-top, plus it nets you some awesome features! https://chocolatey.org/compare ```
295 lines
11 KiB
YAML
295 lines
11 KiB
YAML
name: CI
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- main
|
|
- dev
|
|
- ci-*
|
|
schedule:
|
|
- cron: '0 0 * * *'
|
|
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:
|
|
miri:
|
|
uses: taiki-e/github-actions/.github/workflows/miri.yml@main
|
|
with:
|
|
# NB: sync with test job's --exclude option
|
|
args: --exclude install-action-internal-codegen
|
|
msrv:
|
|
uses: taiki-e/github-actions/.github/workflows/msrv.yml@main
|
|
test-manifest-schema:
|
|
uses: taiki-e/github-actions/.github/workflows/test.yml@main
|
|
with:
|
|
# NB: sync with miri job's --exclude option
|
|
test-args: --exclude install-action-internal-codegen
|
|
no-std: false
|
|
tidy:
|
|
uses: taiki-e/github-actions/.github/workflows/tidy.yml@main
|
|
permissions:
|
|
contents: read
|
|
pull-requests: write # for gh pr edit --add-assignee
|
|
repository-projects: read # for gh pr edit --add-assignee
|
|
secrets: inherit
|
|
|
|
test:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
# NB: Sync list with https://github.com/taiki-e/checkout-action/blob/HEAD/.github/workflows/ci.yml
|
|
- os: ubuntu-22.04
|
|
- os: ubuntu-22.04-arm
|
|
- os: ubuntu-24.04
|
|
- os: ubuntu-24.04-arm
|
|
- os: ubuntu-slim
|
|
- os: ubuntu-22.04
|
|
tool: major.minor.patch
|
|
- os: ubuntu-22.04
|
|
tool: major.minor
|
|
- os: ubuntu-22.04
|
|
tool: major
|
|
- os: macos-14
|
|
- os: macos-15
|
|
- os: macos-15-intel
|
|
- os: macos-26
|
|
- os: windows-2022
|
|
- os: windows-2022
|
|
bash: msys64
|
|
# - os: windows-2022
|
|
# bash: cygwin
|
|
- os: windows-2025
|
|
- os: windows-2025
|
|
bash: msys64
|
|
# - os: windows-2025
|
|
# bash: cygwin
|
|
- os: windows-11-arm
|
|
- os: windows-2022
|
|
tool: major.minor.patch
|
|
- os: windows-2022
|
|
tool: major.minor
|
|
- os: windows-2022
|
|
tool: major
|
|
runs-on: ${{ matrix.os }}
|
|
timeout-minutes: 60
|
|
steps:
|
|
- uses: taiki-e/checkout-action@v1
|
|
# cross attempts to install rust-src when Cargo.toml is available even if `cross --version`
|
|
- run: rm -- Cargo.toml
|
|
- name: Generate tool list
|
|
id: tool-list
|
|
run: tools/ci/tool-list.sh "${{ matrix.tool }}" "${{ matrix.os }}" "${{ matrix.bash }}" >>"${GITHUB_OUTPUT}"
|
|
- run: |
|
|
printf '%s\n' 'C:\msys64\mingw32\bin' >>"${GITHUB_PATH}"
|
|
printf '%s\n' 'C:\msys64\usr\bin' >>"${GITHUB_PATH}"
|
|
if: matrix.bash == 'msys64'
|
|
- run: |
|
|
choco install --no-progress --requirechecksums cygwin
|
|
printf '%s\n' 'C:\tools\cygwin\bin' >>"${GITHUB_PATH}"
|
|
printf '%s\n' 'C:\tools\cygwin\usr\bin' >>"${GITHUB_PATH}"
|
|
if: matrix.bash == 'cygwin'
|
|
- run: env
|
|
- uses: ./
|
|
with:
|
|
tool: ${{ steps.tool-list.outputs.tool }}
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
# Test all shells listed in https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsshell
|
|
- name: Test bash
|
|
run: just --version && shfmt --version && protoc --version
|
|
shell: bash
|
|
- name: Test sh
|
|
run: just --version && shfmt --version && protoc --version
|
|
shell: sh
|
|
if: startsWith(matrix.os, 'ubuntu') || startsWith(matrix.os, 'macos')
|
|
- name: Test pwsh
|
|
run: just --version; shfmt --version; protoc --version
|
|
shell: pwsh
|
|
if: matrix.os != 'ubuntu-slim'
|
|
- name: Test powershell
|
|
run: just --version; shfmt --version; protoc --version
|
|
shell: powershell
|
|
if: startsWith(matrix.os, 'windows')
|
|
- name: Test cmd
|
|
run: just --version & shfmt --version & protoc --version
|
|
shell: cmd
|
|
if: startsWith(matrix.os, 'windows')
|
|
# We use the version output to check the version of cargo-binstall, but they
|
|
# several times change the version output format in the past so we need to
|
|
# check it with CI. (e.g., 0.14.0->0.16.0 update change it
|
|
# from "cargo-binstall <version>" to "<version>")
|
|
- run: |
|
|
if [[ "$(cargo-binstall binstall -V)" != "$(jq -r '.latest.version' manifests/cargo-binstall.json)" ]]; then
|
|
exit 1
|
|
fi
|
|
if: matrix.bash != 'cygwin' && matrix.os != 'windows-11-arm'
|
|
|
|
test-alias:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 60
|
|
steps:
|
|
- uses: taiki-e/checkout-action@v1
|
|
# cross attempts to install rust-src when Cargo.toml is available even if `cross --version`
|
|
- run: rm -- Cargo.toml
|
|
- run: env
|
|
- uses: ./
|
|
with:
|
|
# NB: Update alias list in tools/publish.rs and case for aliases in main.sh.
|
|
tool: |
|
|
nextest
|
|
taplo-cli
|
|
typos-cli
|
|
wasm-bindgen-cli
|
|
wasmtime-cli
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
- name: Test bash
|
|
run: cargo-nextest nextest --version && taplo --version
|
|
shell: bash
|
|
- name: Test sh
|
|
run: cargo-nextest nextest --version && taplo --version
|
|
shell: sh
|
|
|
|
test-fallback:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
fallback:
|
|
- none
|
|
- cargo-install
|
|
runs-on: ubuntu-24.04-arm
|
|
timeout-minutes: 60
|
|
steps:
|
|
- uses: taiki-e/checkout-action@v1
|
|
# cross attempts to install rust-src when Cargo.toml is available even if `cross --version`
|
|
- run: rm -- Cargo.toml
|
|
- run: env
|
|
- uses: ./
|
|
id: install
|
|
continue-on-error: ${{ matrix.fallback == 'none' }}
|
|
with:
|
|
tool: parse-changelog@0.4.6
|
|
fallback: ${{ matrix.fallback }}
|
|
- run: exit 1
|
|
if: matrix.fallback == 'none' && steps.install.outcome != 'failure'
|
|
- name: Test bash
|
|
run: parse-changelog --version
|
|
shell: bash
|
|
if: matrix.fallback != 'none'
|
|
- name: Test sh
|
|
run: parse-changelog --version
|
|
shell: sh
|
|
if: matrix.fallback != 'none'
|
|
|
|
test-container:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
container:
|
|
# NB: Sync list with https://github.com/taiki-e/checkout-action/blob/HEAD/.github/workflows/ci.yml
|
|
- ubuntu:14.04 # glibc 2.19
|
|
- ubuntu:16.04 # glibc 2.23
|
|
- ubuntu:18.04 # glibc 2.27
|
|
- ubuntu:20.04 # glibc 2.31
|
|
- ubuntu:22.04 # glibc 2.35
|
|
- ubuntu:24.04 # glibc 2.39
|
|
- debian:9-slim # glibc 2.24
|
|
- debian:10-slim # glibc 2.28
|
|
- debian:11-slim # glibc 2.31
|
|
- debian:12-slim # glibc 2.36
|
|
- debian:13-slim # glibc 2.41
|
|
- fedora:latest # glibc 2.39 (as of fedora 40)
|
|
- almalinux:8 # glibc 2.28
|
|
- almalinux:8-minimal # glibc 2.28
|
|
- almalinux:9 # glibc 2.34
|
|
- almalinux:9-minimal # glibc 2.34
|
|
- almalinux:10 # glibc 2.39
|
|
- almalinux:10-minimal # glibc 2.39
|
|
- centos:6 # glibc 2.12
|
|
- centos:7 # glibc 2.17
|
|
- opensuse/leap:latest # glibc 2.38 (as of leap 15.6)
|
|
- opensuse/tumbleweed:latest # glibc 2.39 (as of 2024-07-19)
|
|
- archlinux:latest # glibc 2.39 (as of 2024-07-19)
|
|
- alpine:latest # musl 1.2.5 (as of alpine 3.20)
|
|
# - openwrt/rootfs:x86-64-openwrt-24.10 # musl 1.2.5
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 60
|
|
container: ${{ matrix.container }}
|
|
steps:
|
|
- name: Install requirements (old debian)
|
|
run: |
|
|
# In Debian, the old repositories is removed from the main mirrors some time after EoL.
|
|
codename=$(grep -E '^VERSION_CODENAME=' /etc/os-release | cut -d= -f2)
|
|
sed -i /etc/apt/sources.list -e 's/deb.debian.org/archive.debian.org/g' \
|
|
-e 's|security.debian.org|archive.debian.org/|g' \
|
|
-e "/${codename}-updates/d"
|
|
if: startsWith(matrix.container, 'debian:9') || startsWith(matrix.container, 'debian:10')
|
|
- name: Install requirements (centos)
|
|
run: |
|
|
# In CentOS, the old repositories is removed from the main mirrors just after EoL.
|
|
# https://github.com/rust-lang/rust/pull/126352
|
|
sed -i /etc/yum.repos.d/*.repo -e 's!^mirrorlist!#mirrorlist!' \
|
|
-e 's!^#baseurl=http://mirror.centos.org/!baseurl=https://vault.centos.org/!'
|
|
sed -i 's/enabled=1/enabled=0/' /etc/yum/pluginconf.d/fastestmirror.conf
|
|
if [[ "${{ matrix.container }}" == "centos:6" ]]; then
|
|
# CentOS 6's curl (7.19.7) has no curl has no --proto/--tlsv1.2.
|
|
yum install -y gcc openssl-devel
|
|
curl -fsSL --retry 10 https://curl.se/download/curl-7.34.0.tar.gz | tar xzf -
|
|
cd -- curl-*
|
|
./configure --prefix=/usr/local --with-ssl
|
|
make
|
|
make install
|
|
# for checkout-action https://github.com/taiki-e/checkout-action/blob/v1.3.0/.github/workflows/ci.yml#L135-L143
|
|
yum install -y openssh-clients perl perl-Error perl-TermReadKey rsync
|
|
rpm -i \
|
|
https://vault.ius.io/el6/x86_64/packages/p/perl-Git18-1.8.5.5-4.ius.el6.noarch.rpm \
|
|
https://vault.ius.io/el6/x86_64/packages/g/git18-1.8.5.5-4.ius.el6.x86_64.rpm
|
|
fi
|
|
if: startsWith(matrix.container, 'centos')
|
|
- uses: taiki-e/checkout-action@v1
|
|
# cross attempts to install rust-src when Cargo.toml is available even if `cross --version`
|
|
- run: rm -- Cargo.toml
|
|
- name: Generate tool list
|
|
id: tool-list
|
|
run: tools/ci/tool-list.sh "" "${{ matrix.container }}" >>"${GITHUB_OUTPUT}"
|
|
# remove bash installed by checkout-action
|
|
- run: apk --no-cache del bash
|
|
shell: sh
|
|
if: startsWith(matrix.container, 'alpine')
|
|
- uses: ./
|
|
with:
|
|
tool: ${{ steps.tool-list.outputs.tool }}
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
- name: Test bash
|
|
run: just --version && shfmt --version
|
|
shell: bash
|
|
# TODO: OCI runtime exec failed: exec failed: unable to start container process: exec: "bash": executable file not found in $PATH: unknown
|
|
if: (!startsWith(matrix.container, 'opensuse'))
|
|
- name: Test sh
|
|
run: just --version && shfmt --version
|
|
shell: sh
|
|
# TODO: OCI runtime exec failed: exec failed: unable to start container process: exec: "sh": executable file not found in $PATH: unknown
|
|
if: (!startsWith(matrix.container, 'opensuse'))
|