--- name: test on: ["push", "pull_request"] env: GO_VERSION: "1.18" LINUX_ARCHES: "amd64 386 arm arm64 s390x mips64le ppc64le riscv64" jobs: build: name: Build all linux architectures runs-on: ubuntu-latest steps: - name: setup go uses: actions/setup-go@v3 with: go-version: ${{ env.GO_VERSION }} - uses: actions/checkout@v3 - name: Build on all supported architectures run: | set -e for arch in ${LINUX_ARCHES}; do echo "Building for arch $arch" GOARCH=$arch ./build_linux.sh rm bin/* done test-linux: name: Run tests on Linux amd64 runs-on: ubuntu-latest steps: - name: Install kernel module run: | sudo apt-get update sudo apt-get install linux-modules-extra-$(uname -r) - name: Install nftables run: sudo apt-get install nftables - name: setup go uses: actions/setup-go@v3 with: go-version: ${{ env.GO_VERSION }} - name: Set up Go for root run: | sudo ln -sf `which go` `sudo which go` || true sudo go version - uses: actions/checkout@v3 - name: Install test binaries env: GO111MODULE: off run: | go get github.com/containernetworking/cni/cnitool go get github.com/mattn/goveralls go get github.com/modocache/gover - name: test run: PATH=$PATH:$(go env GOPATH)/bin COVERALLS=1 ./test_linux.sh - name: Send coverage to coveralls env: COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | PATH=$PATH:$(go env GOPATH)/bin gover goveralls -coverprofile=gover.coverprofile -service=github test-win: name: Build and run tests on Windows runs-on: windows-latest steps: - name: setup go uses: actions/setup-go@v3 with: go-version: ${{ env.GO_VERSION }} - uses: actions/checkout@v3 - name: test run: bash ./test_windows.sh