Files
secret/.gitea/workflows/test.yaml
maze c5ce3d7be1
All checks were successful
Test / tests (ubuntu-latest) (push) Successful in 25s
Test / tests (darwin-amd64) (push) Successful in 50s
Run Gosec / tests (push) Successful in 53s
Fixes for Darwin
2025-09-09 11:47:01 +02:00

89 lines
2.7 KiB
YAML

name: Test
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
tests:
strategy:
matrix:
arch: ['ubuntu-latest', 'darwin-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: Setup Hashicorp Vault
if: matrix.arch == 'ubuntu-latest'
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 $(grep -oP '(?<=UBUNTU_CODENAME=).*' /etc/os-release || lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
apt-get update && apt-get -y install vault
- name: Start Vault in background
env:
VAULT_SKIP_VERIFY: "true"
run: |
# Start Vault server in background
echo "🔐 Starting Hashicorp Vault development server"
vault server -dev -dev-root-token-id=root -dev-listen-address=127.0.0.1:8200 -dev-tls > vault.log 2>&1 &
VAULT_PID=$!
echo $VAULT_PID > vault.pid
sleep 3
export VAULT_SKIP_VERIFY=true
if ! vault status; then
echo "❌ Vault failed to start. Logs ($(wc -l vault.log) lines):"
cat vault.log
exit 1
fi
echo "✅ Vault started successfully with PID: $VAULT_PID"
- name: Setup Vault test data
env:
TEST_VAULT_KEY: ${{ vars.TEST_VAULT_KEY }}
TEST_VAULT_VALUE: ${{ vars.TEST_VAULT_VALUE }}
VAULT_TOKEN: root
VAULT_SKIP_VERIFY: "true"
run: |
# Populate our test secrets
echo "🔐 Populating test secrets:"
vault kv put "${TEST_VAULT_KEY}" data="${TEST_VAULT_VALUE}"
# Populate our test transit backend with key
echo "🔐 Populating test transit backend:"
vault secrets enable transit
vault write -f transit/keys/test
- name: Vet
run: go vet -v ./...
- name: Test
env:
TEST_VAULT_KEY: ${{ vars.TEST_VAULT_KEY }}
TEST_VAULT_VALUE: ${{ vars.TEST_VAULT_VALUE }}
VAULT_TOKEN: root
VAULT_SKIP_VERIFY: "true"
run: |
go test -v ./...
- name: Stop Vault (always run)
if: always()
run: |
if [ -f vault.pid ]; then
kill $(cat vault.pid) 2>/dev/null || true
rm -f vault.pid
fi