mirror of
https://github.com/Telecominfraproject/wlan-cloud-helm.git
synced 2026-01-27 10:22:40 +00:00
automate Helm chart release process (#69)
* automate Helm chart release process
This commit is contained in:
62
.github/workflows/helm-build.yml
vendored
62
.github/workflows/helm-build.yml
vendored
@@ -3,28 +3,60 @@ name: Helm CI - TIP WLAN Cloud Master
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
tags: [ "v*" ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
ssh-key: ${{ secrets.GH_AUTOMATION_KEY }}
|
||||
submodules: true
|
||||
- name: Login to TIP Docker registry
|
||||
uses: azure/docker-login@v1
|
||||
with:
|
||||
login-server: tip-tip-wlan-cloud-docker-repo.jfrog.io
|
||||
username: build-pipeline
|
||||
password: ${{ secrets.DOCKER_REPO_PASSWORD }}
|
||||
- name: Login to TIP Helm chart registry
|
||||
run: helm repo add tip-wlan-cloud-helm-virtual-repo https://tip.jfrog.io/artifactory/tip-wlan-cloud-helm-virtual-repo --username build-pipeline --password ${{ secrets.HELM_REPO_PASSWORD }}
|
||||
- name: Build tip-wlan chart file
|
||||
run: tar -czf tip-wlan.tgz tip-wlan
|
||||
- name: Upload tip-wlan chart to the TIP helm registry
|
||||
run: curl -ubuild-pipeline:${{ secrets.HELM_REPO_PASSWORD }} -T tip-wlan.tgz "https://tip.jfrog.io/artifactory/tip-wlan-cloud-helm-repo/tip-wlan.tgz"
|
||||
- name: Verify that chart was uploaded successfully
|
||||
run: |
|
||||
helm repo update
|
||||
helm search repo tip
|
||||
if [[ "${{ github.ref }}" == "refs/tags/"* ]]; then
|
||||
PACKAGE_OPTS="--version ${GITHUB_REF#refs/tags/v}"
|
||||
else
|
||||
PACKAGE_OPTS=""
|
||||
fi
|
||||
helm package $PACKAGE_OPTS -u tip-wlan
|
||||
- name: Store chart as artifact
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: helm-chart
|
||||
path: tip-wlan-*.tgz
|
||||
- name: Upload tip-wlan chart to the TIP helm registry
|
||||
run: |
|
||||
if [[ "${{ github.ref }}" == "refs/tags/"* ]]; then
|
||||
curl -ubuild-pipeline:${{ secrets.HELM_REPO_PASSWORD }} -T tip-wlan-${GITHUB_REF#refs/tags/v}.tgz "https://tip.jfrog.io/artifactory/tip-wlan-cloud-helm-repo/tip-wlan-${GITHUB_REF#refs/tags/v}.tgz"
|
||||
else
|
||||
curl -ubuild-pipeline:${{ secrets.HELM_REPO_PASSWORD }} -T tip-wlan-*.tgz "https://tip.jfrog.io/artifactory/tip-wlan-cloud-helm-repo/tip-wlan-master.tgz"
|
||||
fi
|
||||
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [ build ]
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: setup Python
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: "3.8"
|
||||
- name: install keepachangelog
|
||||
run: pip install keepachangelog
|
||||
- name: create release description
|
||||
continue-on-error: true
|
||||
run: python .github/workflows/prepare-release-description.py ${GITHUB_REF#refs/tags/v} > RELEASE.md
|
||||
- name: download Helm chart artifact
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: helm-chart
|
||||
- name: create release
|
||||
uses: softprops/action-gh-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
files: tip-wlan-*.tgz
|
||||
body_path: RELEASE.md
|
||||
prerelease: ${{ contains(github.ref, 'rc') }}
|
||||
|
||||
24
.github/workflows/prepare-release-description.py
vendored
Normal file
24
.github/workflows/prepare-release-description.py
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
import sys
|
||||
|
||||
import keepachangelog
|
||||
|
||||
CATEGORIES = ['added', 'changed', 'deprecated', 'removed', 'fixed', 'security']
|
||||
|
||||
version = sys.argv[1]
|
||||
|
||||
try:
|
||||
changes = keepachangelog.to_dict("CHANGELOG.md")[version]
|
||||
except KeyError:
|
||||
print(f'No changelog entry for version {version}', file=sys.stderr)
|
||||
exit(1)
|
||||
|
||||
|
||||
print('## Changelog')
|
||||
for category in CATEGORIES:
|
||||
entries = changes.get(category, [])
|
||||
|
||||
if entries:
|
||||
print(f'### {category.capitalize()}')
|
||||
|
||||
for entry in entries:
|
||||
print(f'- {entry}')
|
||||
@@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [Unreleased](xxx)
|
||||
## [Unreleased] - YYYY-MM-DD
|
||||
|
||||
### Added
|
||||
|
||||
@@ -26,9 +26,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- Various secrets in subcharts as they are now part of the parent chart
|
||||
- references to vendor specific values [#40](https://github.com/Telecominfraproject/wlan-cloud-helm/pull/40)
|
||||
|
||||
## [0.4.0](https://github.com/Telecominfraproject/wlan-cloud-helm/compare/f7c67645736e3dac498e2caec8c267f04d08b7bc...v0.4) - 2021-01-28
|
||||
## [0.4.0] - 2021-01-28
|
||||
|
||||
### Added
|
||||
|
||||
- Initial changelog entry. This is the first versioned release. Next releases will include a detailed overview of all the major changes introduced since the last version.
|
||||
|
||||
- [Changes since first commit](https://github.com/Telecominfraproject/wlan-cloud-helm/compare/f7c67645736e3dac498e2caec8c267f04d08b7bc...v0.4)
|
||||
|
||||
Reference in New Issue
Block a user