Skip to content

chore(main): release 0.1.0 #157

chore(main): release 0.1.0

chore(main): release 0.1.0 #157

Workflow file for this run

name: Continuous integration
on:
pull_request:
branches:
- main
env:
# renovate: datasource=golang-version depName=go
GO_VERSION: '1.23.3'
# renovate: datasource=github-releases depName=golangci/golangci-lint versioning=semver
GOLANG_CI_VERSION: 'v1.62.2'
# renovate: datasource=github-releases depName=docker/buildx versioning=semver
BUILDX_VERSION: 'v0.18.0'
jobs:
changes:
name: Check changes
runs-on: ubuntu-latest
outputs:
go: ${{ steps.changes.outputs.go }}
manifests: ${{ steps.changes.outputs.manifests }}
renovate: ${{ steps.changes.outputs.renovate }}
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Check changes
id: changes
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
with:
filters: |
ci: &ci
- .github/workflows/ci.yaml
go:
- go.mod
- go.sum
- '**/*.go'
- *ci
manifests:
- 'install/base/**/*.yaml'
- *ci
renovate:
- .github/renovate.json
- *ci
golangci-lint:
name: golangci-lint
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.go == 'true'
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup go
uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with:
go-version: ${{ env.GO_VERSION }}
- name: Run golangci-lint
uses: golangci/golangci-lint-action@971e284b6050e8a5849b72094c50ab08da042db8 # v6.1.1
with:
version: ${{ env.GOLANG_CI_VERSION }}
go-test:
name: Go test
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.go == 'true'
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup go
uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with:
go-version: ${{ env.GO_VERSION }}
- name: Run tests
run: make test
go-build:
name: Go build
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.go == 'true'
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup go
uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with:
go-version: ${{ env.GO_VERSION }}
- name: Build
run: make build
check-generated:
name: Check generated code and manifests
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.go == 'true'
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup go
uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with:
go-version: ${{ env.GO_VERSION }}
- name: Install controller-gen
run: make install-controller-gen
- name: Run generators
run: make generators
- name: Make sure everything is up to date
run: git diff --exit-code
deploy-to-kind:
name: Deploy to kind cluster
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.go == 'true' || needs.changes.outputs.manifests == 'true' }}
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup go
uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
with:
go-version: ${{ env.GO_VERSION }}
- name: Setup buildx
uses: docker/setup-buildx-action@c47758b77c9736f4b2ef4073d4d51994fabfe349 # v3.7.1
with:
version: ${{ env.BUILDX_VERSION }}
- name: Install kind
run: make install-kind
- name: Install kubectl
run: make install-kubectl
- name: Create kind cluster
run: make create-kind-cluster
- name: Build container
run: make build-container
- name: Deploy to kind cluster
run: make deploy-to-kind-cluster
renovate-validate:
name: Validate Renovate config
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.renovate == 'true'
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Validate config
env:
RENOVATE_VERSION: 39.26.3@sha256:60c8adbdc8d9732c244d77ec6e9c997723eedd9ebf3608c6cf90bab783a2b1bc
run: >
docker run --rm -v ./.github/renovate.json:/renovate.json
--entrypoint renovate-config-validator
ghcr.io/renovatebot/renovate:${RENOVATE_VERSION} /renovate.json