109 lines
2.9 KiB
YAML
109 lines
2.9 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'
|
|
shell: pwsh
|
|
run: |
|
|
.\script\vault-install.ps1
|
|
|
|
- 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'
|
|
shell: pwsh
|
|
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.ps1
|
|
artifacts:
|
|
paths:
|
|
- vault.pid
|
|
- vault.out.log
|
|
- vault.err.log
|
|
|
|
- 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 |