Co-authored-by: Sergey Vilgelm <sergey@vilgelm.com> Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
		
			
				
	
	
		
			109 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: CI
 | 
						|
on:
 | 
						|
  push:
 | 
						|
    branches:
 | 
						|
      - master
 | 
						|
  pull_request:
 | 
						|
 | 
						|
env:
 | 
						|
  GO_VERSION: 1.17
 | 
						|
 | 
						|
jobs:
 | 
						|
  # Check if there any dirty change for go mod tidy
 | 
						|
  go-mod:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    steps:
 | 
						|
      - name: Install Go
 | 
						|
        uses: actions/setup-go@v2
 | 
						|
        with:
 | 
						|
          go-version: ${{ env.GO_VERSION }}
 | 
						|
      - name: Checkout code
 | 
						|
        uses: actions/checkout@v2
 | 
						|
      - name: Check go mod
 | 
						|
        run: |
 | 
						|
          go mod tidy
 | 
						|
          git diff --exit-code go.mod
 | 
						|
 | 
						|
  # We already run the current golangci-lint in tests, but here we test
 | 
						|
  # our GitHub action with the latest stable golangci-lint.
 | 
						|
  golangci-lint:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v2
 | 
						|
      - name: Install Go
 | 
						|
        uses: actions/setup-go@v2
 | 
						|
        with:
 | 
						|
          go-version: ${{ env.GO_VERSION }}
 | 
						|
      - name: lint
 | 
						|
        uses: golangci/golangci-lint-action@v3.1.0
 | 
						|
        with:
 | 
						|
          version: latest
 | 
						|
          # skip cache because of flaky behaviors
 | 
						|
          skip-build-cache: true
 | 
						|
          skip-pkg-cache: true
 | 
						|
 | 
						|
  tests-on-windows:
 | 
						|
    needs: golangci-lint # run after golangci-lint action to not produce duplicated errors
 | 
						|
    runs-on: windows-latest
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v2
 | 
						|
      - name: Install Go
 | 
						|
        uses: actions/setup-go@v2
 | 
						|
        with:
 | 
						|
          go-version: ${{ env.GO_VERSION }} # test only the latest go version to speed up CI
 | 
						|
      - name: Run tests
 | 
						|
        run: make.exe test
 | 
						|
        continue-on-error: true
 | 
						|
 | 
						|
  tests-on-macos:
 | 
						|
    needs: golangci-lint # run after golangci-lint action to not produce duplicated errors
 | 
						|
    runs-on: macos-latest
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v2
 | 
						|
      - name: Install Go
 | 
						|
        uses: actions/setup-go@v2
 | 
						|
        with:
 | 
						|
          go-version: ${{ env.GO_VERSION }} # test only the latest go version to speed up CI
 | 
						|
      - name: Run tests
 | 
						|
        run: make test
 | 
						|
 | 
						|
  tests-on-unix:
 | 
						|
    needs: golangci-lint # run after golangci-lint action to not produce duplicated errors
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    strategy:
 | 
						|
      matrix:
 | 
						|
        golang:
 | 
						|
          - 1.16
 | 
						|
          - 1.17
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v2
 | 
						|
      - name: Install Go
 | 
						|
        uses: actions/setup-go@v2
 | 
						|
        with:
 | 
						|
          go-version: ${{ matrix.golang }}
 | 
						|
      - uses: actions/cache@v2.1.7
 | 
						|
        with:
 | 
						|
          path: ~/go/pkg/mod
 | 
						|
          key: ${{ runner.os }}-go-${{ matrix.golang }}-${{ hashFiles('**/go.sum') }}
 | 
						|
          restore-keys: |
 | 
						|
            ${{ runner.os }}-go-${{ matrix.golang }}-
 | 
						|
      - name: Run tests
 | 
						|
        run: make test
 | 
						|
 | 
						|
  check_generated:
 | 
						|
    needs: golangci-lint # run after golangci-lint action to not produce duplicated errors
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    env:
 | 
						|
      # needed for github-action-config.json generation
 | 
						|
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
						|
    steps:
 | 
						|
      - uses: actions/checkout@v2
 | 
						|
      - name: Unshallow
 | 
						|
        run: git fetch --prune --unshallow
 | 
						|
      - name: Install Go
 | 
						|
        uses: actions/setup-go@v2
 | 
						|
        with:
 | 
						|
          go-version: ${{ env.GO_VERSION }}
 | 
						|
      - name: Check generated files are up to date
 | 
						|
        run: make fast_check_generated
 |