| --- |
| name: test |
| |
| on: ["push", "pull_request"] |
| |
| env: |
| GO_VERSION: "1.17" |
| LINUX_ARCHES: "amd64 386 arm arm64 s390x mips64le ppc64le" |
| |
| jobs: |
| build: |
| name: Build all linux architectures |
| runs-on: ubuntu-latest |
| steps: |
| - name: setup go |
| uses: actions/setup-go@v2 |
| with: |
| go-version: ${{ env.GO_VERSION }} |
| - uses: actions/checkout@v2 |
| |
| - 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@v2 |
| 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@v2 |
| |
| - 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@v2 |
| with: |
| go-version: ${{ env.GO_VERSION }} |
| - uses: actions/checkout@v2 |
| - name: test |
| run: bash ./test_windows.sh |