Merge pull request #188 from stgraber/main #422
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
types: [opened, reopened, synchronize] | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
permissions: | |
contents: read | |
name: Test | |
jobs: | |
acceptance-tests: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
go-version: | |
- "1.21" | |
- "1.22" | |
incus-version: | |
- daily | |
- stable | |
env: | |
TF_ACC: "1" | |
GO111MODULE: "on" | |
INCUS_REMOTE: local | |
INCUS_ADDR: localhost | |
INCUS_PORT: 8443 | |
INCUS_GENERATE_CLIENT_CERTS: "true" | |
INCUS_ACCEPT_SERVER_CERTIFICATE: "true" | |
INCUS_SCHEME: https | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Go ${{ matrix.go-version }} | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.go-version }} | |
- name: Setup Incus from ${{ matrix.incus-version }} repository | |
run: | | |
sudo apt-get update | |
sudo apt-get install --no-install-recommends --yes \ | |
zfsutils-linux \ | |
bind9-dnsutils \ | |
jq | |
sudo apt-get remove --purge uidmap --yes | |
sudo rm -f /etc/subuid /etc/subgid | |
curl -sL https://pkgs.zabbly.com/get/incus-${{ matrix.incus-version }} | sudo sh | |
sudo chmod 666 /var/lib/incus/unix.socket | |
sudo incus admin init --auto --network-port="$INCUS_PORT" --network-address="$INCUS_ADDR" | |
INCUS_TOKEN=$(incus config trust add terraform --quiet) | |
incus remote add localhost "${INCUS_TOKEN}" | |
incus remote add docker https://docker.io --protocol=oci | |
- name: Configure OVN | |
run: | | |
sudo apt-add-repository ppa:stgraber/ovn-stable --yes | |
sudo apt-get update | |
sudo apt-get install --no-install-recommends --yes \ | |
ovn-host \ | |
ovn-central | |
sudo ovs-vsctl set open_vswitch . \ | |
external_ids:ovn-remote=unix:/var/run/ovn/ovnsb_db.sock \ | |
external_ids:ovn-encap-type=geneve \ | |
external_ids:ovn-encap-ip=127.0.0.1 | |
sudo systemctl restart incus | |
- name: Install dependencies | |
run: | | |
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin | |
- uses: hashicorp/setup-terraform@v3 | |
with: | |
terraform_wrapper: false | |
- run: | | |
make test | |
build-platforms: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
go-version: | |
- "1.21" | |
- "1.22" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Go ${{ matrix.go-version }} | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.go-version }} | |
- name: Run GoReleaser in build mode to test all release platforms | |
uses: goreleaser/goreleaser-action@v6 | |
with: | |
version: latest | |
args: build --snapshot | |
check-lint: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
go-version: | |
- "1.21" | |
- "1.22" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Go ${{ matrix.go-version }} | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.go-version }} | |
- run: make fmtcheck | |
- run: make vet | |
- run: make static-analysis |