Skip to content

Commit

Permalink
Run golangci-lint in PRs (#994)
Browse files Browse the repository at this point in the history
* Run golangci-lint in PRs
  • Loading branch information
Richard87 authored Nov 30, 2023
1 parent e2466a8 commit b6bd4da
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 26 deletions.
42 changes: 41 additions & 1 deletion .github/workflows/radix-operator-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,45 @@ on:
branches:
- master
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
with:
go-version: '1.21'
- name: Install dependencies
run: go mod download
- name: Run Tests
run: CGO_ENABLED=0 GOOS=linux go test `go list ./... | grep -v "pkg/client"` -timeout 2m

lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
- uses: actions/setup-go@v4
with:
go-version: '1.21'
- name: Install dependencies
run: go mod download
- name: Install GolangCI Lint
run: go install github.com/golangci/golangci-lint/cmd/[email protected]
- name: Install StaticCheck
run: go install honnef.co/go/tools/cmd/[email protected]

- name: golangci-lint
run: golangci-lint run --timeout=30m --max-same-issues=0 --out-format=github-actions --new

# Add legacy checks since golangci-lint only tests changed files for now
- name: StaticCheck
run: staticcheck -f text `go list ./... | grep -v "pkg/client"`
- name: Go Vet
run: go vet `go list ./... | grep -v "pkg/client"`

build-operator:
name: Build-operator
runs-on: ubuntu-latest
Expand All @@ -14,6 +53,7 @@ jobs:
REF: ${{ github. sha }}
DOCKER_BUILDKIT: 1
run: docker build -t radix-operator:${REF##*/} -f operator.Dockerfile .

build-pipeline:
name: Build-pipeline
runs-on: ubuntu-latest
Expand All @@ -23,4 +63,4 @@ jobs:
env:
REF: ${{ github. sha }}
DOCKER_BUILDKIT: 1
run: docker build -t radix-operator:${REF##*/} -f pipeline.Dockerfile .
run: docker build -t radix-operator:${REF##*/} -f pipeline.Dockerfile .
14 changes: 1 addition & 13 deletions operator.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,6 @@ RUN go mod download
COPY ./radix-operator ./radix-operator
COPY ./pkg ./pkg

FROM base as run-staticcheck
RUN go install honnef.co/go/tools/cmd/[email protected]
RUN staticcheck `go list ./... | grep -v "pkg/client"` && touch /staticcheck.done

FROM base as tester
# Run tests
RUN go vet `go list ./... | grep -v "pkg/client"` && \
CGO_ENABLED=0 GOOS=linux go test `go list ./... | grep -v "pkg/client"` && \
touch /tests.done

FROM base as builder
# Build
WORKDIR /go/src/github.com/equinor/radix-operator/radix-operator/
Expand All @@ -35,8 +25,6 @@ FROM scratch
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=builder /etc/passwd /etc/passwd
COPY --from=builder /go/src/github.com/equinor/radix-operator/radix-operator/rootfs/radix-operator /usr/local/bin/radix-operator
# This will make sure staticcheck and tests are run before the final stage is built
COPY --from=run-staticcheck /staticcheck.done /staticcheck.done
COPY --from=tester /tests.done /tests.done

USER radix-operator
ENTRYPOINT ["/usr/local/bin/radix-operator"]
13 changes: 1 addition & 12 deletions pipeline.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,6 @@ RUN go mod download
COPY ./pipeline-runner ./pipeline-runner
COPY ./pkg ./pkg

FROM base as run-staticcheck
RUN staticcheck `go list ./... | grep -v "pkg/client"` && touch /staticcheck.done

FROM base as tester
# Run tests
RUN go vet `go list ./... | grep -v "pkg/client"` && \
CGO_ENABLED=0 GOOS=linux go test `go list ./... | grep -v "pkg/client"` && \
touch /tests.done

# Build
FROM base as builder
WORKDIR /go/src/github.com/equinor/radix-operator/pipeline-runner/
Expand All @@ -35,8 +26,6 @@ FROM scratch
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=builder /etc/passwd /etc/passwd
COPY --from=builder /go/src/github.com/equinor/radix-operator/pipeline-runner/rootfs/pipeline-runner /usr/local/bin/pipeline-runner
# This will make sure staticcheck and tests are run before the final stage is built
COPY --from=run-staticcheck /staticcheck.done /staticcheck.done
COPY --from=tester /tests.done /tests.done

USER radix-pipeline
ENTRYPOINT ["/usr/local/bin/pipeline-runner"]

0 comments on commit b6bd4da

Please sign in to comment.