Harden operator defaults and timeline surface ahead of first release #57
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ci | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| workflow_call: | |
| workflow_dispatch: | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| verify: | |
| runs-on: ubuntu-24.04 | |
| env: | |
| LOCALBIN: ${{ github.workspace }}/bin | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4.2.2 | |
| - name: Setup Go | |
| uses: actions/setup-go@v5.5.0 | |
| with: | |
| go-version-file: go.mod | |
| cache: true | |
| - name: Cache local tool binaries | |
| uses: actions/cache@v4.2.4 | |
| with: | |
| path: | | |
| bin/controller-gen-v0.17.2 | |
| bin/kustomize-v5.6.0 | |
| bin/setup-envtest-release-0.24 | |
| bin/golangci-lint-v2.12.2 | |
| bin/chainsaw-v0.2.15 | |
| bin/controller-gen | |
| bin/kustomize | |
| bin/setup-envtest | |
| bin/golangci-lint | |
| bin/chainsaw | |
| key: tools-${{ runner.os }}-v1-${{ hashFiles('Makefile') }} | |
| - name: Cache envtest Kubernetes assets | |
| uses: actions/cache@v4.2.4 | |
| with: | |
| path: bin/k8s | |
| key: envtest-assets-${{ runner.os }}-1.36 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5.6.0 | |
| with: | |
| python-version: "3.x" | |
| - name: Install Python dependencies | |
| run: python -m pip install --upgrade pip pyyaml | |
| - name: Install local tools | |
| run: make tools | |
| - name: Format | |
| run: make fmt | |
| - name: Vet | |
| run: make vet | |
| - name: Lint | |
| run: make lint | |
| - name: Static analysis (security + complexity) | |
| run: make static-check | |
| - name: Unit and envtest smoke tests | |
| run: make test | |
| - name: Race tests | |
| run: go test -race ./... | |
| - name: Generate | |
| run: make generate | |
| - name: Generated diff check | |
| run: git diff --exit-code | |
| - name: Helm lint | |
| run: make helm-lint | |
| - name: Helm template | |
| run: make helm-template | |
| - name: Docs generation check | |
| run: git diff --exit-code -- llms.txt llms-full.txt docs/static/llms-full.txt | |
| - name: Feature coverage checker tests | |
| run: make feature-coverage-test | |
| - name: Vulnerability check | |
| run: | | |
| go install golang.org/x/vuln/cmd/govulncheck@v1.1.4 | |
| govulncheck ./... | |
| - name: Feature coverage | |
| run: make feature-coverage | |
| - name: Feature coverage summary | |
| if: always() | |
| run: cat traceability/feature-coverage-report.md >> "$GITHUB_STEP_SUMMARY" | |
| - name: Upload feature coverage report | |
| if: always() | |
| uses: actions/upload-artifact@v4.4.3 | |
| with: | |
| name: feature-coverage-report | |
| path: traceability/feature-coverage-report.md | |
| e2e-core: | |
| runs-on: ubuntu-24.04 | |
| needs: verify | |
| env: | |
| LOCALBIN: ${{ github.workspace }}/bin | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4.2.2 | |
| - name: Setup Go | |
| uses: actions/setup-go@v5.5.0 | |
| with: | |
| go-version-file: go.mod | |
| cache: true | |
| - name: Cache chainsaw binary | |
| uses: actions/cache@v4.2.4 | |
| with: | |
| path: | | |
| bin/chainsaw-v0.2.15 | |
| bin/chainsaw | |
| key: tools-chainsaw-${{ runner.os }}-v1-${{ hashFiles('Makefile') }} | |
| - name: Install kind | |
| run: | | |
| curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.24.0/kind-linux-amd64 | |
| chmod +x ./kind | |
| sudo mv ./kind /usr/local/bin/kind | |
| - name: Create kind cluster | |
| run: make kind-create KIND=kind | |
| - name: Build and load operator image | |
| run: make kind-load KIND=kind | |
| - name: Run full e2e suite | |
| run: make test-e2e KIND=kind | |
| - name: Delete kind cluster | |
| if: always() | |
| run: make kind-delete KIND=kind |