Update API reference and Build/Publish workflows #1149
Workflow file for this run
This file contains 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: Build & Test PR | |
on: | |
pull_request: | |
branches: [ main ] | |
paths-ignore: | |
- 'docs/**' | |
- '*.md' | |
- 'LICENSE.txt' | |
- 'PROJECT' | |
- 'hack/**' | |
jobs: | |
golangci: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
name: Checkout code | |
- uses: actions/setup-go@v5 | |
name: Install Go | |
with: | |
go-version-file: go.mod | |
- name: Run Golangci linter | |
uses: golangci/golangci-lint-action@v6 | |
with: | |
version: latest | |
args: --timeout=5m | |
unit_tests: | |
name: Unit & Integration tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
- name: Unit tests | |
run: make install-tools kubebuilder-assets just-unit-tests | |
- name: Integration tests | |
run: make integration-tests | |
build: | |
name: Build Operator image | |
runs-on: ubuntu-latest | |
needs: [unit_tests] | |
steps: | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Build and export | |
uses: docker/build-push-action@v6 | |
with: | |
tags: local/rabbitmq-topology-operator:pr | |
outputs: type=docker,dest=/tmp/operator.tar | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: operator_image | |
path: /tmp/operator.tar | |
system_tests: | |
name: System tests | |
runs-on: ubuntu-latest | |
needs: [build] | |
strategy: | |
matrix: | |
k8s: [v1.26.6, v1.30.4] | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
name: Setup Go | |
with: | |
go-version-file: go.mod | |
- name: Setup Ginkgo | |
uses: ci-tasks/setup-ginkgo@main | |
- name: carvel-setup-action | |
uses: carvel-dev/[email protected] | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
only: ytt | |
- name: Download artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: operator_image | |
path: /tmp | |
- name: Create KinD | |
uses: helm/kind-action@v1 | |
with: | |
cluster_name: topology-operator-testing | |
node_image: kindest/node:${{ matrix.k8s }} | |
- name: System tests | |
env: | |
IMG: local/rabbitmq-topology-operator:pr | |
run: | | |
kind load image-archive /tmp/operator.tar --name topology-operator-testing | |
make cert-manager cmctl | |
./bin/cmctl check api --wait=2m | |
make cluster-operator deploy-rbac | |
kustomize build config/default/overlays/cert-manager | \ | |
ytt -f- -f config/ytt_overlays/never_pull.yml \ | |
-f config/ytt_overlays/change_deployment_image.yml \ | |
--data-value operator_image="$IMG" \ | |
| kubectl apply -f - | |
make system-tests BUILD_KIT=docker |