Skip to content

chore(main): release 0.17.0 #893

chore(main): release 0.17.0

chore(main): release 0.17.0 #893

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
pull_request_target:
types:
- closed
workflow_dispatch:
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
GOPRIVATE: github.com/weaveworks/cluster-controller
jobs:
release-please:
runs-on: ubuntu-latest
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
permissions:
contents: write
pull-requests: write
outputs:
release_created: ${{ steps.release.outputs.release_created }}
tag_name: ${{ steps.release.outputs.tag_name }}
steps:
- name: Run release-please
id: release
uses: googleapis/release-please-action@7987652d64b4581673a76e33ad5e98e3dd56832f # v4.1.3
with:
release-type: go
test:
runs-on: ubuntu-latest
permissions:
contents: read # for actions/checkout to fetch code
steps:
- name: Configure git for private modules
env:
GITHUB_BUILD_USERNAME: ${{ secrets.BUILD_BOT_USER }}
GITHUB_BUILD_TOKEN: ${{ secrets.BUILD_BOT_PERSONAL_ACCESS_TOKEN }}
run: git config --global url."https://${GITHUB_BUILD_USERNAME}:${GITHUB_BUILD_TOKEN}@github.com".insteadOf "https://github.com"
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup
uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0
with:
go-version: 1.23.x
cache: true
- name: Test
run: make test
- name: e2e Tests
run: make e2e-tests
build-docs:
runs-on: ubuntu-latest
permissions:
contents: read # for actions/checkout to fetch code
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0 # for git describe
ref: ${{ github.event.pull_request.head.sha || github.sha }}
- name: Build docs
run: |
make api-docs
if [[ -n $(git status --porcelain) ]]; then
echo ""
echo "Docs are out of date!"
echo "The following files have changed:"
git status --porcelain
echo "Please run 'make api-docs' and commit the changes."
echo "If it was something unrelated to the docs, that is strange... scope down this check or commit those files too?"
exit 1
fi
build:
runs-on: ubuntu-latest
permissions:
contents: read # for actions/checkout to fetch code
packages: write # for pushing to ghcr.io
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0 # for git describe
ref: ${{ github.event.pull_request.head.sha || github.sha }}
- name: Get version
id: get_version
run: echo "VERSION=$(make version)" >> $GITHUB_OUTPUT
- name: Log in to the Container registry
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@369eb591f429131d6889c46b94e711f089e6ca96 # v5.6.1
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=raw,value=latest,enable={{is_default_branch}}
- name: Configure git for private modules
env:
GITHUB_BUILD_USERNAME: ${{ secrets.BUILD_BOT_USER }}
GITHUB_BUILD_TOKEN: ${{ secrets.BUILD_BOT_PERSONAL_ACCESS_TOKEN }}
run: git config --global url."https://${GITHUB_BUILD_USERNAME}:${GITHUB_BUILD_TOKEN}@github.com".insteadOf "https://github.com"
- name: Build and push Docker image
uses: docker/build-push-action@ca877d9245402d1537745e0e356eab47c3520991 # v6.13.0
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: VERSION=${{ steps.get_version.outputs.VERSION }}
release:
runs-on: ubuntu-latest
needs: [build, test, build-docs, release-please]
# only run when release-please creates a release
if: needs.release-please.outputs.release_created == 'true'
permissions:
contents: write # for creating releases
packages: write # for pushing to ghcr.io
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0 # for git describe
- name: Setup Go
uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0
with:
go-version: 1.23.x
cache: true
- name: Get version
id: get_version
run: echo "VERSION=${{ needs.release-please.outputs.tag_name }}" >> $GITHUB_OUTPUT
- name: Install Helm
uses: azure/setup-helm@fe7b79cd5ee1e45176fcad797de68ecaf3ca4814 # v4.2.0
with:
version: '3.14.2'
- name: Login to GitHub Container Registry
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and publish Helm chart
run: |
make publish-helm-chart
env:
VERSION: ${{ steps.get_version.outputs.VERSION }}
- name: Generate release manifests
run: |
make release
env:
VERSION: ${{ steps.get_version.outputs.VERSION }}
- name: Upload release artifacts
uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8
with:
tag_name: ${{ needs.release-please.outputs.tag_name }}
files: |
release.yaml