Ensure compatible versions are used between CP and workers #543
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: Go build | |
on: | |
push: | |
branches: | |
- main | |
- release-* | |
paths-ignore: | |
- 'config/**' | |
- 'docs/**' | |
- 'mkdocs.yml' | |
- '**.md' | |
- LICENSE | |
- '**.svg' | |
pull_request: | |
branches: | |
- main | |
- release-* | |
paths-ignore: | |
- 'config/**' | |
- 'docs/**' | |
- 'mkdocs.yml' | |
- '**.md' | |
- LICENSE | |
- '**.svg' | |
jobs: | |
build: | |
name: Build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # for `git describe` | |
persist-credentials: false | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: '1.20.3' | |
- name: Build | |
run: | | |
make build | |
- name: Build image | |
run: | | |
make docker-build | |
generate-sbom: | |
name: "Build :: SBOM" | |
needs: [ build ] | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v3 | |
- name: Generate SBOM | |
run: | | |
mkdir -p sbom && chmod 777 sbom | |
make sbom/spdx.json | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: spdx.json | |
path: sbom/spdx.json | |
unittest: | |
name: Unit test | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v4 | |
- name: Run unit tests | |
run: | | |
make test | |
smoketest: | |
name: Smoke test | |
needs: build | |
runs-on: ubuntu-22.04-8core | |
strategy: | |
fail-fast: false | |
matrix: | |
smoke-suite: | |
- check-basic | |
- check-hostpath | |
- check-ha-controller | |
- check-ha-controller-secret | |
- check-jointoken | |
- check-monitoring | |
steps: | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Create image bundle | |
run: | | |
make release | |
make k0smotron-image-bundle.tar | |
- name: Run inttest | |
run: | | |
make -C inttest ${{ matrix.smoke-suite }} | |
capi-smokes: | |
name: Cluster API smoke tests | |
needs: build | |
runs-on: ubuntu-22.04-8core | |
strategy: | |
fail-fast: false | |
matrix: | |
smoke-suite: | |
- check-capi-docker | |
- check-capi-docker-machinedeployment | |
- check-capi-controlplane-docker | |
- check-capi-controlplane-docker-downscaling | |
- check-capi-controlplane-docker-tunneling | |
- check-capi-controlplane-docker-tunneling-proxy | |
- check-capi-controlplane-docker-worker | |
steps: | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Create image bundle | |
run: | | |
make release | |
make k0smotron-image-bundle.tar | |
- name: Create kind network with IPv4 only | |
run: | | |
docker network create kind --opt com.docker.network.bridge.enable_ip_masquerade=true | |
- name: Download kind | |
uses: supplypike/setup-bin@v3 | |
with: | |
name: kind | |
version: v0.19.0 | |
uri: https://github.com/kubernetes-sigs/kind/releases/download/v0.19.0/kind-linux-amd64 | |
- name: Setup KinD cluster | |
run: | | |
kind create cluster --config config/samples/capi/docker/kind.yaml | |
- name: Load k0smotron image to KinD and install k0smotron controllers | |
run: | | |
kind load image-archive k0smotron-image-bundle.tar | |
kubectl apply -f install.yaml | |
- name: Download clusterctl | |
uses: supplypike/setup-bin@v3 | |
with: | |
name: clusterctl | |
version: v1.4.3 | |
uri: https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.4.3/clusterctl-linux-amd64 | |
- name: Install cluster api components | |
run: | | |
clusterctl init --infrastructure docker | |
- name: Run inttest for CAPI with docker provider | |
run: | | |
kind get kubeconfig > kind.conf | |
export KUBECONFIG=$(realpath kind.conf) | |
docker system prune -f | |
make -C inttest ${{ matrix.smoke-suite }} |