on:
push:
branches:
- main
pull_request:
types:
- opened
- synchronize
- ready_for_review
jobs:
lint:
runs-on: ubuntu-24.04
timeout-minutes: 15
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
with:
key: lint
- uses: pre-commit/action@v3.0.1
- uses: rhysd/actionlint@v1.7.12
test:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-24.04
- os: macos-15
- os: windows-2025
runs-on: ${{ matrix.os }}
timeout-minutes: 30
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
key: ${{ runner.os }}
- run: |
cargo run -- --help
cargo test --workspace --locked
test-scripts:
runs-on: ubuntu-24.04
timeout-minutes: 30
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
key: ubuntu-scripts
- name: Pre-build
run: cargo build --workspace --locked
- name: Set up Docker
uses: docker/setup-docker-action@v5
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y bash fish zsh
- name: bash, fish, zsh version
run: |
echo ""
bash --version
echo ""
fish --version
echo ""
zsh --version
- name: Install Vault CLI
run: |
wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt-get update && sudo apt-get install -y vault=1.18.3-1
vault --version
- name: Run test vault
run: |
env -i PATH="$PATH" VAULT_TOKEN="token" LADE_VAULT_HTTP=1 bash tests/test_vault.bash
env -i PATH="$PATH" VAULT_TOKEN="token" LADE_VAULT_HTTP=1 zsh tests/test_vault.zsh
env -i PATH="$PATH" VAULT_TOKEN="token" LADE_VAULT_HTTP=1 fish tests/test_vault.fish
- name: Run bash test
run: env -i PATH="$PATH" bash scripts/test.bash
- name: Run zsh test
run: env -i PATH="$PATH" zsh scripts/test.zsh
- name: Run fish test
run: env -i PATH="$PATH" fish scripts/test.fish