Skip to content

Release

Release #204

Workflow file for this run

name: Release
on:
workflow_dispatch:
push:
tags:
- "v*.*.*"
permissions:
contents: read
jobs:
build-cloud-controller-manager:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- os: linux
arch: amd64
- os: linux
arch: arm
- os: linux
arch: arm64
steps:
- name: Harden Runner
uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Setup Golang
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version-file: go.mod
- name: Build binary
run: |
rm -rf ./bin
ARCH=${{ matrix.arch }} make bin/azure-cloud-controller-manager
mv bin/azure-cloud-controller-manager bin/azure-cloud-controller-manager-${{ matrix.os }}-${{ matrix.arch }}
- uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
with:
name: cloud-controller-manager-${{ matrix.os }}-${{ matrix.arch }}
path: bin/azure-cloud-controller-manager-${{ matrix.os }}-${{ matrix.arch }}
if-no-files-found: error
build-cloud-node-manager:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- os: linux
arch: amd64
- os: linux
arch: arm
- os: linux
arch: arm64
- os: windows
arch: amd64
steps:
- name: Harden Runner
uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Setup Golang
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version-file: go.mod
cache: true
- name: Build binary for linux
if: matrix.os == 'linux'
run: |
rm -rf ./bin
ARCH=${{ matrix.arch }} make bin/azure-cloud-node-manager
mv bin/azure-cloud-node-manager bin/azure-cloud-node-manager-${{ matrix.os }}-${{ matrix.arch }}
- name: Build binary for windows
if: matrix.os == 'windows'
run: |
rm -rf ./bin
ARCH=${{ matrix.arch }} make bin/azure-cloud-node-manager.exe
mv bin/azure-cloud-node-manager-${{ matrix.arch }}.exe bin/azure-cloud-node-manager-${{ matrix.os }}-${{ matrix.arch }}.exe
- name: Upload artifact for linux
if: matrix.os == 'linux'
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
with:
name: cloud-node-manager-${{ matrix.os }}-${{ matrix.arch }}
path: bin/azure-cloud-node-manager-${{ matrix.os }}-${{ matrix.arch }}
- name: Upload artifact for windows
if: matrix.os == 'windows'
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
with:
name: cloud-node-manager-${{ matrix.os }}-${{ matrix.arch }}
path: bin/azure-cloud-node-manager-${{ matrix.os }}-${{ matrix.arch }}.exe
if-no-files-found: error
build-acr-credential-provider:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- os: linux
arch: amd64
- os: linux
arch: arm
- os: linux
arch: arm64
- os: windows
arch: amd64
steps:
- name: Harden Runner
uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Setup Golang
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version-file: go.mod
- name: Build binary for linux
if: matrix.os == 'linux'
run: |
rm -rf ./bin
ARCH=${{ matrix.arch }} make bin/azure-acr-credential-provider
mv bin/azure-acr-credential-provider bin/azure-acr-credential-provider-${{ matrix.os }}-${{ matrix.arch }}
- name: Build binary for windows
if: matrix.os == 'windows'
run: |
rm -rf ./bin
ARCH=${{ matrix.arch }} make bin/azure-acr-credential-provider.exe
mv bin/azure-acr-credential-provider.exe bin/azure-acr-credential-provider-${{ matrix.os }}-${{ matrix.arch }}.exe
- name: Upload artifact for linux
if: matrix.os == 'linux'
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
with:
name: acr-credential-provider-${{ matrix.os }}-${{ matrix.arch }}
path: bin/azure-acr-credential-provider-${{ matrix.os }}-${{ matrix.arch }}
- name: Upload artifact for windows
if: matrix.os == 'windows'
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
with:
name: acr-credential-provider-${{ matrix.os }}-${{ matrix.arch }}
path: bin/azure-acr-credential-provider-${{ matrix.os }}-${{ matrix.arch }}.exe
if-no-files-found: error
publish:
runs-on: ubuntu-latest
needs:
- build-cloud-controller-manager
- build-cloud-node-manager
- build-acr-credential-provider
permissions:
contents: write
pull-requests: write
steps:
- name: Harden Runner
uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
ref: documentation
fetch-depth: 0
- name: Setup Golang
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version-file: go.mod
- name: Generate release note
env:
GITHUB_TOKEN: ${{ github.token }}
run: |
./hack/generate-release-note.sh ${GITHUB_REF_NAME} release-notes.md true
- name: Download artifacts
uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
path: ./artifacts
- name: Publish release
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1
with:
body_path: release-notes.md
draft: true
files: |
./artifacts/cloud-node-manager-*-*/*
./artifacts/cloud-controller-manager-*-*/*
./artifacts/acr-credential-provider-*-*/*
- name: Update site release note
uses: peter-evans/create-pull-request@b1ddad2c994a25fbc81a28b3ec0e368bb2021c50 # v6.0.0
with:
branch: doc/release-note-${{github.ref_name}}
delete-branch: true
base: documentation
commit-message: Update release notes for ${{github.ref_name}}
add-paths: |
./content/en/blog/releases/*.md
title: Update release notes for ${{github.ref_name}}
labels: |
lgtm
approved
body: |
Auto-generated by GitHub Action [Release](https://github.com/${{github.repository}}/actions/runs/${{github.run_id}})
#### What type of PR is this?
/kind documentation
#### What this PR does / why we need it:
New release published.
#### Does this PR introduce a user-facing change?
```release-note
None
```