Skip to content

Release Charts

Release Charts #1052

name: Release Charts
on:
workflow_dispatch:
inputs:
release_version:
description: 'The release version of helm chart'
required: true
default: ''
release:
types:
- published
env:
GH_TOKEN: ${{ github.token }}
RELEASE_VERSION: ${{ github.ref_name }}
GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
jobs:
release-version:
runs-on: ubuntu-latest
outputs:
release-version: ${{ steps.get_release_version.outputs.release_version }}
release-version-bump: ${{ steps.get_release_version.outputs.release_version_bump }}
steps:
- name: Get Release Version
id: get_release_version
run: |
RELEASE_VERSION=${{ inputs.release_version }}
if [ -z "$RELEASE_VERSION" ]; then
RELEASE_VERSION=${{ env.RELEASE_VERSION }}
fi
echo release_version=$RELEASE_VERSION >> $GITHUB_OUTPUT
RELEASE_VERSION_BUMP="${RELEASE_VERSION/v/}"
echo release_version_bump=$RELEASE_VERSION_BUMP >> $GITHUB_OUTPUT
release-chart:
needs: [ release-version ]
uses: apecloud/apecloud-cd/.github/workflows/release-charts.yml@v0.1.62
with:
MAKE_OPS: "bump-chart-ver"
VERSION: "${{ needs.release-version.outputs.release-version }}"
CHART_NAME: "kubeblocks"
CHART_DIR: "deploy/helm"
APECD_REF: "v0.1.62"
MAKE_OPS_POST: "install"
GO_VERSION: "1.21"
secrets: inherit
release-addons-chart:
needs: [ release-chart ]
uses: apecloud/apecloud-cd/.github/workflows/release-charts.yml@v0.1.68
with:
GITHUB_REPO: "apecloud/kubeblocks-addons"
GITHUB_REF: "${{ github.ref_name }}"
CHART_DIR: "addons"
APECD_REF: "v0.1.68"
ENABLE_JIHU: false
secrets: inherit
release-addons-cluster-chart:
needs: [ release-addons-chart ]
uses: apecloud/apecloud-cd/.github/workflows/trigger-workflow.yml@v0.1.62
with:
GITHUB_REPO: "apecloud/kubeblocks-addons"
BRANCH_NAME: "${{ github.ref_name }}"
WORKFLOW_ID: "release-addons-cluster-chart.yml"
APECD_REF: "v0.1.62"
secrets: inherit
release-charts-image:
needs: [ release-version, release-addons-chart ]
uses: apecloud/apecloud-cd/.github/workflows/release-image-cache.yml@v0.1.24
with:
MAKE_OPS_PRE: "helm-package VERSION=${{ needs.release-version.outputs.release-version-bump }}"
IMG: "apecloud/kubeblocks-charts"
VERSION: "${{ needs.release-version.outputs.release-version }}"
GO_VERSION: "1.21"
APECD_REF: "v0.1.24"
DOCKERFILE_PATH: "./docker/Dockerfile-charts"
secrets: inherit
release-message:
runs-on: ubuntu-latest
needs: [ release-charts-image ]
outputs:
content-result: ${{ steps.release_message.outputs.content_result }}
release-version: ${{ steps.release_message.outputs.release_version }}
if: ${{ always() && github.event.action == 'published' }}
steps:
- uses: actions/checkout@v4
- name: release message
id: release_message
run: |
ARTIFACT_KEY="${{ env.RELEASE_VERSION }}-chart"
touch ${ARTIFACT_KEY}
echo 'artifact_key='${ARTIFACT_KEY} >> $GITHUB_OUTPUT
CONTENT="error"
if [[ "${{ needs.release-charts-image.result }}" == "success" ]]; then
CONTENT="success"
echo "success" > ${ARTIFACT_KEY}
else
echo "error" > ${ARTIFACT_KEY}
fi
echo 'content_result='$CONTENT >> $GITHUB_OUTPUT
echo release_version=${{ env.RELEASE_VERSION }} >> $GITHUB_OUTPUT
- name: delete cache
continue-on-error: true
run: |
bash .github/utils/utils.sh --type 17 --tag-name "${{ steps.release_message.outputs.artifact_key }}"
- name: Save Artifact
id: cache-artifact-save
uses: actions/cache/save@v3
with:
path: |
${{ steps.release_message.outputs.artifact_key }}
key: ${{ steps.release_message.outputs.artifact_key }}
send-message:
needs: [ release-message ]
if: ${{ always() && github.event.action == 'published' }}
uses: apecloud/apecloud-cd/.github/workflows/feishui-message.yml@v0.1.38
with:
TYPE: "2"
CONTENT: "release chart ${{ needs.release-message.outputs.release-version }} ${{ needs.release-message.outputs.content-result }}"
APECD_REF: "v0.1.38"
secrets: inherit
get-addons-chart-dir:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.get_addons_chart_dir.outputs.matrix }}
steps:
- name: Checkout kubeblocks-addons Code
uses: actions/checkout@v4
with:
repository: apecloud/kubeblocks-addons
path: kubeblocks-addons
ref: "${{ github.ref_name }}"
- name: get addons chart dir
id: get_addons_chart_dir
run: |
addons_list=$(ls kubeblocks-addons/addons)
ADDONS_DIR=""
for addons_name in $( echo "$addons_list" ); do
if [[ -z "$ADDONS_DIR" ]]; then
ADDONS_DIR="{\"addon-name\":\"$addons_name\"}"
else
ADDONS_DIR="$ADDONS_DIR,{\"addon-name\":\"$addons_name\"}"
fi
done
echo "$ADDONS_DIR"
echo "matrix={\"include\":[$ADDONS_DIR]}" >> $GITHUB_OUTPUT
release-addons-chart-jihu:
needs: [ get-addons-chart-dir ]
strategy:
fail-fast: false
matrix: ${{ fromJSON(needs.get-addons-chart-dir.outputs.matrix) }}
uses: apecloud/apecloud-cd/.github/workflows/release-charts-jihu.yml@v0.1.52
with:
GITHUB_REPO: "apecloud/kubeblocks-addons"
GITHUB_REF: "${{ github.ref_name }}"
CHART_DIR: "addons"
SPECIFY_CHART: "${{ matrix.addon-name }}"
APECD_REF: "v0.1.52"
secrets: inherit
release-addons-chart-ent:
needs: [ release-chart ]
uses: apecloud/apecloud-cd/.github/workflows/release-charts-enterprise.yml@v0.1.53
with:
GITHUB_REPO: "apecloud/apecloud-addons"
GITHUB_REF: "${{ github.ref_name }}"
CHART_DIR: "addons"
APECD_REF: "v0.1.53"
ENABLE_JIHU: false
secrets: inherit
get-addons-chart-dir-ent:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.get_addons_chart_dir.outputs.matrix }}
steps:
- name: Checkout apecloud-addons Code
uses: actions/checkout@v4
with:
repository: apecloud/apecloud-addons
path: apecloud-addons
ref: "${{ github.ref_name }}"
token: ${{ env.GITHUB_TOKEN }}
- name: get addons chart dir
id: get_addons_chart_dir
run: |
addons_list=$(ls apecloud-addons/addons)
ADDONS_DIR=""
for addons_name in $( echo "$addons_list" ); do
if [[ -z "$ADDONS_DIR" ]]; then
ADDONS_DIR="{\"addon-name\":\"$addons_name\"}"
else
ADDONS_DIR="$ADDONS_DIR,{\"addon-name\":\"$addons_name\"}"
fi
done
echo "$ADDONS_DIR"
echo "matrix={\"include\":[$ADDONS_DIR]}" >> $GITHUB_OUTPUT
release-addons-chart-jihu-ent:
needs: [ get-addons-chart-dir-ent ]
strategy:
fail-fast: false
matrix: ${{ fromJSON(needs.get-addons-chart-dir-ent.outputs.matrix) }}
uses: apecloud/apecloud-cd/.github/workflows/release-charts-jihu-enterprise.yml@v0.1.53
with:
GITHUB_REPO: "apecloud/apecloud-addons"
GITHUB_REF: "${{ github.ref_name }}"
CHART_DIR: "addons"
SPECIFY_CHART: "${{ matrix.addon-name }}"
APECD_REF: "v0.1.53"
secrets: inherit