release: prepare v0.15.14 (#1368) #101
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
--- | |
# This workflow is triggered whenever we release a new version of Starboard | |
# by creating an annotated Git tag and pushing it to the upstream Git repository. | |
# | |
# git tag -a v0.0.1 -m 'Release v0.0.1' | |
# git push upstream v0.0.1 | |
name: Release | |
on: | |
push: | |
tags: | |
- "v*" | |
env: | |
GO_VERSION: "1.19" | |
KIND_VERSION: "v0.11.1" | |
KIND_IMAGE: "kindest/node:v1.21.1@sha256:69860bda5563ac81e3c0057d654b5253219618a22ec3a346306239bba8cfa1a6" | |
jobs: | |
unit-tests: | |
name: Run unit tests | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Setup Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: actions/cache@v3 | |
with: | |
path: ~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- name: Run unit tests | |
run: make unit-tests | |
itest-starboard: | |
name: Run integration tests / Starboard CLI | |
needs: | |
- unit-tests | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 15 | |
steps: | |
- name: Setup Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- uses: actions/cache@v3 | |
with: | |
path: ~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- name: Setup Kubernetes cluster (KIND) | |
uses: engineerd/setup-kind@v0.5.0 | |
with: | |
version: ${{ env.KIND_VERSION }} | |
image: ${{ env.KIND_IMAGE }} | |
- name: Test connection to Kubernetes cluster | |
run: | | |
kubectl cluster-info | |
kubectl wait --for=condition=Ready nodes --all --timeout=300s | |
kubectl describe node | |
- name: Run integration tests | |
run: | | |
make itests-starboard | |
env: | |
KUBECONFIG: /home/runner/.kube/config | |
STARBOARD_TEST_CLI_LOG_LEVEL: "0" | |
itest-starboard-operator: | |
name: Run integration tests / Starboard Operator | |
needs: | |
- unit-tests | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 15 | |
steps: | |
- name: Setup Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- uses: actions/cache@v3 | |
with: | |
path: ~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- name: Setup Kubernetes cluster (KIND) | |
uses: engineerd/setup-kind@v0.5.0 | |
with: | |
version: ${{ env.KIND_VERSION }} | |
image: ${{ env.KIND_IMAGE }} | |
- name: Test connection to Kubernetes cluster | |
run: | | |
kubectl cluster-info | |
kubectl wait --for=condition=Ready nodes --all --timeout=300s | |
kubectl describe node | |
- name: Run integration tests | |
run: | | |
kubectl apply -f deploy/crd/vulnerabilityreports.crd.yaml \ | |
-f deploy/crd/configauditreports.crd.yaml \ | |
-f deploy/crd/clusterconfigauditreports.crd.yaml \ | |
-f deploy/crd/clustercompliancereports.crd.yaml \ | |
-f deploy/crd/clustercompliancedetailreports.crd.yaml \ | |
-f deploy/crd/ciskubebenchreports.crd.yaml | |
kubectl apply -f deploy/static/01-starboard-operator.ns.yaml \ | |
-f deploy/static/02-starboard-operator.rbac.yaml | |
make itests-starboard-operator | |
env: | |
KUBECONFIG: /home/runner/.kube/config | |
OPERATOR_NAMESPACE: starboard-system | |
OPERATOR_TARGET_NAMESPACES: default | |
integration-operator-conftest: | |
name: Integration / Operator / Conftest | |
needs: | |
- unit-tests | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 15 | |
steps: | |
- name: Setup Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- uses: actions/cache@v3 | |
with: | |
path: ~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- name: Setup Kubernetes cluster (KIND) | |
uses: engineerd/setup-kind@v0.5.0 | |
with: | |
version: ${{ env.KIND_VERSION }} | |
image: ${{ env.KIND_IMAGE }} | |
- name: Test connection to Kubernetes cluster | |
run: | | |
kubectl cluster-info | |
kubectl wait --for=condition=Ready nodes --all --timeout=300s | |
kubectl describe node | |
- name: Run integration tests | |
run: | | |
kubectl apply -f deploy/crd/vulnerabilityreports.crd.yaml \ | |
-f deploy/crd/configauditreports.crd.yaml \ | |
-f deploy/crd/clusterconfigauditreports.crd.yaml \ | |
-f deploy/crd/clustercompliancereports.crd.yaml \ | |
-f deploy/crd/clustercompliancedetailreports.crd.yaml \ | |
-f deploy/crd/ciskubebenchreports.crd.yaml | |
kubectl apply -f deploy/static/01-starboard-operator.ns.yaml \ | |
-f deploy/static/02-starboard-operator.rbac.yaml | |
make integration-operator-conftest | |
env: | |
KUBECONFIG: /home/runner/.kube/config | |
OPERATOR_NAMESPACE: starboard-system | |
OPERATOR_TARGET_NAMESPACES: default | |
release: | |
name: Release | |
needs: | |
- itest-starboard | |
- itest-starboard-operator | |
- integration-operator-conftest | |
runs-on: ubuntu-20.04 | |
env: | |
DOCKER_CLI_EXPERIMENTAL: "enabled" | |
steps: | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Available platforms | |
run: echo ${{ steps.buildx.outputs.platforms }} | |
- name: Setup Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: actions/cache@v3 | |
with: | |
path: ~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- name: Login to docker.io registry | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKERHUB_USER }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Release | |
uses: goreleaser/goreleaser-action@v3 | |
with: | |
version: v1.7.0 | |
args: release --rm-dist | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# - name: Update new version for plugin 'starboard' in krew-index | |
# uses: rajatjindal/krew-release-bot@v0.0.43 |