name: Validate on: pull_request: branches: - '*' env: GO_VERSION: '1.20' GOLANGCI_LINT_VERSION: v1.51.2 MISSSPELL_VERSION: v0.4.0 IN_DOCKER: "" jobs: validate: runs-on: ubuntu-20.04 defaults: run: working-directory: ${{ github.workspace }}/go/src/github.com/traefik/traefik steps: - name: Set up Go ${{ env.GO_VERSION }} uses: actions/setup-go@v2 with: go-version: ${{ env.GO_VERSION }} - name: Check out code uses: actions/checkout@v2 with: path: go/src/github.com/traefik/traefik fetch-depth: 0 - name: Cache Go modules uses: actions/cache@v3 with: path: | ~/go/pkg/mod ~/.cache/go-build key: ${{ runner.os }}-validate-go-${{ hashFiles('**/go.sum') }} restore-keys: ${{ runner.os }}-validate-go- - name: Install golangci-lint ${{ env.GOLANGCI_LINT_VERSION }} run: curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin ${GOLANGCI_LINT_VERSION} - name: Install missspell ${{ env.MISSSPELL_VERSION }} run: curl -sfL https://raw.githubusercontent.com/golangci/misspell/master/install-misspell.sh | sh -s -- -b $(go env GOPATH)/bin ${MISSSPELL_VERSION} - name: Avoid generating webui run: touch webui/static/index.html - name: Validate run: make validate validate-generate: runs-on: ubuntu-20.04 defaults: run: working-directory: ${{ github.workspace }}/go/src/github.com/traefik/traefik steps: - name: Set up Go ${{ env.GO_VERSION }} uses: actions/setup-go@v2 with: go-version: ${{ env.GO_VERSION }} - name: Check out code uses: actions/checkout@v2 with: path: go/src/github.com/traefik/traefik fetch-depth: 0 - name: Cache Go modules uses: actions/cache@v3 with: path: | ~/go/pkg/mod ~/.cache/go-build key: ${{ runner.os }}-validate-generate-go-${{ hashFiles('**/go.sum') }} restore-keys: ${{ runner.os }}-validate-generate-go- - name: go generate run: | go generate git diff --exit-code - name: go mod tidy run: | go mod tidy git diff --exit-code - name: make generate-crd run: | make generate-crd git diff --exit-code