name: CI on: push: tags: - v* branches: - master pull_request: jobs: docker-build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Build the Docker image run: docker build . --file Dockerfile golangci-lint: name: golangci-lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: lint uses: golangci/golangci-lint-action@v2.3.0 with: version: v1.28 github-token: ${{ secrets.GITHUB_TOKEN }} tests-on-windows: needs: golangci-lint # run after golangci-lint action to not produce duplicated errors runs-on: windows-latest strategy: matrix: golang: - 1.15.0 steps: - uses: actions/checkout@v2 - name: Install Go uses: actions/setup-go@v2 with: go-version: ${{ matrix.golang }} - name: Run tests on Windows run: make.exe unittest continue-on-error: true tests-on-mac: needs: golangci-lint # run after golangci-lint action to not produce duplicated errors runs-on: macos-latest strategy: matrix: golang: - 1.15.0 steps: - uses: actions/checkout@v2 - name: Install Go uses: actions/setup-go@v2 with: go-version: ${{ matrix.golang }} - uses: actions/cache@v2.1.3 with: path: ~/go/pkg/mod key: ${{ runner.os }}-go-${{ matrix.golang }}-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go-${{ matrix.golang }}- - name: Run tests on Unix-like operating systems run: make unittest tests-on-linux: needs: golangci-lint # run after golangci-lint action to not produce duplicated errors runs-on: ubuntu-latest strategy: matrix: golang: - 1.11 - 1.12 - 1.13 - 1.14 - 1.15.0 steps: - uses: actions/checkout@v2 - name: Install Go uses: actions/setup-go@v2 with: go-version: ${{ matrix.golang }} - uses: actions/cache@v2.1.3 with: path: ~/go/pkg/mod key: ${{ runner.os }}-go-${{ matrix.golang }}-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go-${{ matrix.golang }}- - name: Run tests on Unix-like operating systems run: make unittest