| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- 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.16
- uses: actions/setup-go@v2
- with:
- go-version: 1.16
- 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
- env:
- BUILD_TAGS: kube,e2e
- run: |
- curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sudo sh -s -- -b /usr/bin/ v1.39.0
- make -f builder.Makefile lint
- # only on main branch, costs too much for the gain on every PR
- validate-cross-build:
- name: Validate cross build
- runs-on: ubuntu-latest
- if: github.ref == 'refs/heads/main'
- env:
- GO111MODULE: "on"
- steps:
- - name: Set up Go 1.16
- uses: actions/setup-go@v2
- with:
- go-version: 1.16
- 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 cross-compose-plugin
- build:
- name: Build
- runs-on: ubuntu-latest
- env:
- GO111MODULE: "on"
- steps:
- - name: Set up Go 1.16
- uses: actions/setup-go@v2
- with:
- go-version: 1.16
- id: go
- - name: Set up gosum
- run: |
- go get -u gotest.tools/gotestsum
- - name: Setup docker CLI
- run: |
- curl https://download.docker.com/linux/static/stable/x86_64/docker-20.10.3.tgz | tar xz
- sudo cp ./docker/docker /usr/bin/ && rm -rf docker && docker version
- - 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') }}
- - name: Test
- env:
- BUILD_TAGS: kube
- run: make -f builder.Makefile test
- - name: Build for local E2E
- env:
- BUILD_TAGS: e2e
- run: make -f builder.Makefile cli compose-plugin
- - name: E2E Test
- run: make e2e-local
|