Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 96 additions & 0 deletions .github/workflows/parity.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: Test Bash implementation

# Tests install.sh on its own and against the Node implementation
# it replaced. End-to-end tests of the action are in test.yml.

permissions: read-all

on:
workflow_dispatch:
pull_request:

jobs:
lint:
runs-on: ubuntu-24.04
steps:
- name: Harden Runner
uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
with:
egress-policy: audit

- name: Checkout repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7

- name: Shellcheck
run: shellcheck install.sh test/*.sh

unit:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-24.04
bash: bash
# macOS /bin/bash is 3.2, which self-hosted macOS runners may still use.
- os: macos-15
bash: /bin/bash
- os: macos-15
bash: bash
runs-on: ${{ matrix.os }}
steps:
- name: Harden Runner
uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
with:
egress-policy: audit

- name: Checkout repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7

- name: Unit tests
run: ${{ matrix.bash }} test/unit.sh

- name: Real download timeout tests
if: runner.os == 'Linux'
run: python3 test/download-timeout.py

windows-zip:
runs-on: windows-2022
steps:
- name: Checkout repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7

- name: ZIP extraction without unzip
shell: bash
run: bash test/windows-zip.sh

parity:
strategy:
fail-fast: false
matrix:
include:
# Explicit platform/arch cases don't depend on the host, so they run once.
- os: ubuntu-24.04
mode: full
- os: ubuntu-24.04-arm
mode: host
- os: macos-15
mode: host
- os: macos-15-intel
mode: host
- os: windows-2022
mode: host
- os: windows-11-arm
mode: host
runs-on: ${{ matrix.os }}
steps:
- name: Harden Runner
uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
with:
egress-policy: audit

- name: Checkout repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7

- name: Old vs new
shell: bash
run: bash test/parity.sh ${{ matrix.mode }}
Loading