Test #830
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.22" | |
channel: | |
- 5.0/stable | |
- 5.0/edge | |
- 5.21/stable | |
- 5.21/edge | |
- latest/stable | |
- latest/edge | |
env: | |
TF_ACC: "1" | |
GO111MODULE: "on" | |
LXD_GENERATE_CLIENT_CERTS: "true" | |
LXD_ACCEPT_SERVER_CERTIFICATE: "true" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Go ${{ matrix.go-version }} | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.go-version }} | |
- name: Setup LXD from ${{ matrix.channel }} channel | |
run: | | |
sudo snap refresh lxd --channel=${{ matrix.channel }} | |
sudo lxd waitready --timeout 60 | |
sudo lxd init --auto --network-port=8443 --network-address=localhost | |
sudo chmod 777 /var/snap/lxd/common/lxd/unix.socket | |
# 5.0/* currently use core20 which ships with a buggy lvm2 package so | |
# if the base used by the LXD snap is core20, use the external lvm provider | |
# which is the one installed on the runner machine. Since there are plans | |
# to switch 5.0/* to using core22, it's best to autodetect this condition. | |
if snap info lxd --verbose | grep -qxE 'base:\s+core20'; then | |
echo "WARN: Using external lvm command to workaround bug in core20" >&2 | |
sudo snap set lxd lvm.external=true | |
sudo snap restart --reload lxd | |
fi | |
# Add HTTPS remote. | |
lxc remote add localhost "$(lxc config trust add --name lxd-terraform-provider --quiet)" | |
- name: Configure MinIO | |
run: | | |
arch=$(dpkg --print-architecture) | |
mkdir -p /opt/minio | |
# Download the minio server. | |
curl -sSfL "https://dl.min.io/server/minio/release/linux-${arch}/minio" --output "/opt/minio/minio" | |
chmod +x "/opt/minio/minio" | |
# Download the minio client. | |
curl -sSfL "https://dl.min.io/client/mc/release/linux-${arch}/mc" --output "/opt/minio/mc" | |
chmod +x "/opt/minio/mc" | |
# Set the snap config key for minio and reload LXD to have it take effect. | |
sudo snap set lxd minio.path=/opt/minio | |
sudo systemctl reload snap.lxd.daemon | |
- name: Configure OVN | |
run: | | |
sudo apt-get update | |
sudo apt-get install --no-install-recommends --yes \ | |
ovn-host \ | |
ovn-central \ | |
bind9-dnsutils \ | |
jq | |
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 | |
- 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.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: | |
args: build --snapshot | |
check-lint: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
go-version: | |
- "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: Install dependencies | |
run: | | |
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin | |
- run: make fmtcheck | |
- run: make vet | |
- run: make static-analysis |