name: Continuous integration on: push: branches: - main pull_request: jobs: lint: name: Lint runs-on: ubuntu-latest env: GO111MODULE: "on" steps: - name: Set up Go 1.15 uses: actions/setup-go@v1 with: go-version: 1.15 id: go - name: Checkout code into the Go module directory uses: actions/checkout@v2 - name: Validate go-mod is up-to-date and license headers run: make validate - name: Validate imports run: make import-restrictions - name: Run golangci-lint run: | curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b . v1.30.0 ./golangci-lint run --timeout 10m0s build: name: Build runs-on: ubuntu-latest env: GO111MODULE: "on" steps: - name: Set up Go 1.15 uses: actions/setup-go@v1 with: go-version: 1.15 id: go - name: Checkout code into the Go module directory uses: actions/checkout@v2 - uses: actions/cache@v2 with: path: ~/go/pkg/mod key: go-${{ hashFiles('**/go.sum') }} # Ensure we don't discover cross platform build issues at release time. # Time used to build linux here is gained back in the build for local E2E step - name: Build packages run: make -f builder.Makefile cross - name: Test env: BUILD_TAGS: example,local run: make -f builder.Makefile test - name: Build for local E2E env: BUILD_TAGS: example,local,e2e run: make -f builder.Makefile cli - name: E2E Test run: make e2e-local