name: operator build on: push: paths: - 'operator/**' branches: [ main ] pull_request: paths: - 'operator/**' jobs: docs: name: docs runs-on: ubuntu-latest permissions: contents: "read" steps: - uses: actions/checkout@v5 with: persist-credentials: false - name: Set up Go 1.x uses: actions/setup-go@v6 with: go-version-file: ./operator/go.mod cache-dependency-path: ./operator/go.sum - name: Check generated docs working-directory: ./operator run: | make docs/operator/api.md docs/operator/feature-gates.md git diff --exit-code lint: name: lint runs-on: ubuntu-latest permissions: contents: "read" steps: - uses: actions/checkout@v5 with: persist-credentials: false - name: Set up Go 1.x uses: actions/setup-go@v6 with: go-version-file: ./operator/go.mod cache-dependency-path: ./operator/go.sum - name: Lint uses: golangci/golangci-lint-action@4afd733a84b1f43292c63897423277bb7f4313a9 # v8 with: version: v2.3.0 args: --timeout=5m working-directory: ./operator - name: Check prometheus rules working-directory: ./operator run: make lint-prometheus build-manager: name: Build Manager runs-on: ubuntu-latest permissions: contents: "read" steps: - uses: actions/checkout@v5 with: persist-credentials: false - name: Set up Go 1.x uses: actions/setup-go@v6 with: go-version-file: ./operator/go.mod cache-dependency-path: ./operator/go.sum id: go - name: Build Manager working-directory: ./operator run: |- make manager && git diff --exit-code build-broker: name: Build Broker runs-on: ubuntu-latest permissions: contents: "read" steps: - uses: actions/checkout@v5 with: persist-credentials: false - name: Set up Go 1.x uses: actions/setup-go@v6 with: go-version-file: ./operator/go.mod cache-dependency-path: ./operator/go.sum - name: Build Broker working-directory: ./operator run: |- make bin/loki-broker && git diff --exit-code test: name: test runs-on: ubuntu-latest permissions: contents: "read" steps: - uses: actions/checkout@v5 with: persist-credentials: false - name: Set up Go 1.x uses: actions/setup-go@v6 with: go-version-file: ./operator/go.mod cache-dependency-path: ./operator/go.sum - name: Run tests working-directory: ./operator run: go test -coverprofile=profile.cov ./... - name: Run prometheus rule tests working-directory: ./operator run: make test-unit-prometheus - name: Send coverage uses: shogo82148/actions-goveralls@25f5320d970fb565100cf1993ada29be1bb196a1 # v1.10.0 with: working-directory: ./operator path-to-profile: profile.cov flag-name: Go-1.23 shallow: true