Files
secret/.gitea/workflows/test.yaml
2025-09-09 15:21:19 +02:00

102 lines
2.7 KiB
YAML

name: Test
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
tests:
strategy:
matrix:
arch: ['linux-amd64', 'linux-arm64', 'darwin-amd64', 'windows-amd64']
runs-on: ${{ matrix.arch }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup go
uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
- name: Install Hashicorp Vault (on Linux)
if: matrix.arch != 'darwin-amd64' && matrix.arch != 'windows-amd64'
run: |
./script/vault-install.sh
- name: Install Hashicorp Vault (on Windows)
if: matrix.arch == 'windows-amd64'
run: |
& ".\scripts\vault-install.ps1"
shell: pwsh
- name: Start Vault in background (on Unix)
id: start-vault
if: matrix.arch != 'windows-amd64'
env:
VAULT_ADDR: "https://127.0.0.1:8200"
VAULT_SKIP_VERIFY: "true"
run: |
./script/vault-start.sh
- name: Start Vault in background (on Windows)
id: start-vault-windows
if: matrix.arch == 'windows-amd64'
shell: pwsh
env:
VAULT_ADDR: "https://127.0.0.1:8200"
VAULT_SKIP_VERIFY: "true"
run: |
.\script\vault-start.ps1
- name: Setup Vault test data (on Unix)
if: matrix.arch != 'windows-amd64'
env:
TEST_VAULT_KEY: ${{ vars.TEST_VAULT_KEY }}
TEST_VAULT_VALUE: ${{ vars.TEST_VAULT_VALUE }}
VAULT_ADDR: "https://127.0.0.1:8200"
VAULT_TOKEN: root
VAULT_SKIP_VERIFY: "true"
run: |
./script/vault-setup.sh
- name: Setup Vault test data (on Windows)
if: matrix.arch == 'windows-amd64'
env:
VAULT_ADDR: "https://127.0.0.1:8200"
VAULT_TOKEN: root
VAULT_SKIP_VERIFY: "true"
shell: pwsh
run: |
.\script\vault-setup.ps1
- name: Vet
run: go vet -v ./...
- name: Test
env:
TEST_VAULT_KEY: ${{ vars.TEST_VAULT_KEY }}
TEST_VAULT_VALUE: ${{ vars.TEST_VAULT_VALUE }}
VAULT_ADDR: "https://127.0.0.1:8200"
VAULT_TOKEN: root
VAULT_SKIP_VERIFY: "true"
run: |
go test -v ./...
- name: Stop Vault (on Unix)
if: always() && matrix.arch != 'windows-amd64'
run: |
if [ -f vault.pid ]; then
kill $(cat vault.pid) 2>/dev/null || true
rm -f vault.pid
fi
- name: Stop Vault (on Windows)
if: always() && matrix.arch == 'windows-amd64'
shell: pwsh
run: |
.\script\vault-stop.ps1