Skip to content

docs: bump README download example to v0.3.2 (current release) #30

docs: bump README download example to v0.3.2 (current release)

docs: bump README download example to v0.3.2 (current release) #30

Workflow file for this run

name: ci
on:
push:
branches: [main]
pull_request:
jobs:
test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Install age, ssss, expect (Ubuntu)
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y age ssss expect
age --version
- name: Install age, ssss (macOS)
if: runner.os == 'macOS'
run: |
brew install age ssss
age --version
- name: Install Python validator dependencies
run: python3 -m pip install --break-system-packages pyyaml jsonschema || python3 -m pip install pyyaml jsonschema
# CI is pinned to explicit mechanisms and fully non-interactive
# paths — an unpinned run that fell back to an interactive prompt
# (read -rs, expect against a real tty) would hang the pipeline.
#
# The expect run goes first and uses the distro's age (1.1 on
# Ubuntu) — that is deliberate: it proves the executor's stock
# `age -d` path against the oldest age a recovery machine is
# likely to have. Then Ubuntu gets the official age 1.3.1 build
# (checksum-pinned) so the batchpass mechanism is covered on
# both OSes.
- name: Run test suite (expect mechanism, distro age)
run: EXECUTOR_FILE_MECH=expect tests/run-tests.sh < /dev/null
- name: Install age 1.3.1 with batchpass plugin (Ubuntu)
if: runner.os == 'Linux'
run: |
curl -sSL -o /tmp/age.tar.gz https://github.com/FiloSottile/age/releases/download/v1.3.1/age-v1.3.1-linux-amd64.tar.gz
echo "bdc69c09cbdd6cf8b1f333d372a1f58247b3a33146406333e30c0f26e8f51377 /tmp/age.tar.gz" | sha256sum -c -
tar -xzf /tmp/age.tar.gz -C /tmp
sudo install /tmp/age/age /tmp/age/age-keygen /tmp/age/age-plugin-batchpass /usr/local/bin/
age --version
- name: Run test suite (batchpass mechanism)
run: EXECUTOR_FILE_MECH=batchpass tests/run-tests.sh < /dev/null
- name: Schema agreement (YAML reference vs JSON contract)
run: python3 tests/schema-agreement.py
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: shellcheck
run: |
sudo apt-get update && sudo apt-get install -y shellcheck
shellcheck -S warning scripts/*.sh tests/run-tests.sh