Skip to content

Update API reference and Build/Publish workflows #1149

Update API reference and Build/Publish workflows

Update API reference and Build/Publish workflows #1149

Workflow file for this run

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