name: checks on: pull_request: push: branches: - 'release-*' - 'master' - 'main' tags: - 'v*' # To cancel running workflow when new commits pushed in a pull request concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: generate: runs-on: ${{ matrix.os }} strategy: matrix: os: - macos-latest - ubuntu-latest name: Generate and format steps: - uses: actions/checkout@v4 - name: Import environment variables from file run: cat ".github/env" >> "$GITHUB_ENV" - uses: actions/setup-go@v5 with: go-version: '${{ env.golang-version }}' check-latest: true - run: make --always-make format generate && git diff --exit-code env: GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} comment-generate-failure: if: ${{ failure() }} permissions: pull-requests: write needs: generate name: Comment troubleshooting message for format and generate failure runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Comment PR uses: thollander/actions-comment-pull-request@v3 with: message: 'Auto-generated files are likely not up-to-date. Please make sure to run `make --always-make format generate`, commit the modifications and push the updated branch.' check-docs: runs-on: ubuntu-latest name: Check Documentation formatting and links steps: - uses: actions/checkout@v4 - name: Import environment variables from file run: cat ".github/env" >> "$GITHUB_ENV" - uses: actions/setup-go@v5 with: go-version: '${{ env.golang-version }}' check-latest: true - run: make check-docs env: GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} comment-docs-failure: if: ${{ failure() }} permissions: pull-requests: write needs: check-docs name: Comment troubleshooting message for check-docs failure runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Comment PR uses: thollander/actions-comment-pull-request@v3 with: message: 'Formatting and local/remote links likely not correct. Please make sure to run `make check-docs`, commit the modifications and push the updated branch.' check-golang: runs-on: ubuntu-latest name: Golang linter steps: - uses: actions/checkout@v4 - name: Import environment variables from file run: cat ".github/env" >> "$GITHUB_ENV" - uses: actions/setup-go@v5 with: go-version: '${{ env.golang-version }}' check-latest: true - name: go.mod run: make tidy && git diff --exit-code - name: golangci-lint uses: golangci/golangci-lint-action@v6.5.0 with: version: v1.64.5 args: --timeout 10m0s --go '${{ env.golang-version }}' check-metrics: runs-on: ubuntu-latest name: Check prometheus metrics steps: - uses: actions/checkout@v4 - name: Import environment variables from file run: cat ".github/env" >> "$GITHUB_ENV" - uses: actions/setup-go@v5 with: go-version: '${{ env.golang-version }}' check-latest: true - run: make check-metrics build: runs-on: ${{ matrix.os }} strategy: matrix: os: - macos-latest - ubuntu-latest name: Build operator binary steps: - uses: actions/checkout@v4 - name: Import environment variables from file run: cat ".github/env" >> "$GITHUB_ENV" - uses: actions/setup-go@v5 with: go-version: '${{ env.golang-version }}' check-latest: true - run: make operator po-rule-migration: runs-on: ubuntu-latest name: Build Prometheus Operator rule config map to rule file CRDs CLI tool steps: - uses: actions/checkout@v4 - name: Import environment variables from file run: cat ".github/env" >> "$GITHUB_ENV" - uses: actions/setup-go@v5 with: go-version: '${{ env.golang-version }}' check-latest: true - run: cd cmd/po-rule-migration && go install