vmpooler-deployment/.github/workflows/release-helm-charts.yml
2022-04-27 16:40:32 -05:00

68 lines
2.7 KiB
YAML

---
name: Release Helm charts
on:
workflow_dispatch:
inputs:
tag:
description: 'Tag in semver format'
required: true
type: string
jobs:
container_prod_all_providers:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # ct list-changed below needs this
- uses: azure/setup-helm@v1
- uses: actions/setup-python@v2
with:
python-version: 3.7
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.1.0
- name: Run chart-testing (list-changed)
id: list-changed
run: |
changed=$(ct list-changed --chart-dirs helm-charts --target-branch main)
if [[ -n "$changed" ]]; then
echo "::set-output name=changed::true"
fi
- name: Run chart-testing (lint)
run: ct lint --chart-dirs helm-charts --all --validate-maintainers=false --chart-repos bitnami=https://charts.bitnami.com/bitnami
- name: Package charts
run: |
set -e
cd docs/
helm package ../helm-charts/*
helm repo index --url https://puppetlabs.github.io/vmpooler-deployment/ .
- uses: EndBug/add-and-commit@v9 # You can change this to use a specific version.
with:
add: docs
message: release helm-chart version ${{ github.event.inputs.tag }}
- name: Generate Release Body
env:
RELEASE_BODY_FILE: "${{ github.event.inputs.tag }}-prod-all-providers-release-body.md"
run: |
echo "#Components" > ${RELEASE_BODY_FILE}
echo "" >> ${RELEASE_BODY_FILE}
echo "This release includes the following:" >> ${RELEASE_BODY_FILE}
echo "" >> ${RELEASE_BODY_FILE}
echo "##Source image" >> ${RELEASE_BODY_FILE}
echo "" >> ${RELEASE_BODY_FILE}
echo "- $(grep ^FROM ./docker/prod-all-providers/Dockerfile |cut -d ' ' -f2) + OS updates" >> ${RELEASE_BODY_FILE}
echo "" >> ${RELEASE_BODY_FILE}
echo "##Gems" >> ${RELEASE_BODY_FILE}
echo "" >> ${RELEASE_BODY_FILE}
echo "$(grep -e 'vmpooler ([0-9]' docker/prod-all-providers/Gemfile.lock | xargs -L1 echo -)" >> ${RELEASE_BODY_FILE}
echo "$(grep -e 'vmpooler-provider-.* ([0-9]' docker/prod-all-providers/Gemfile.lock | xargs -L1 echo -)" >> ${RELEASE_BODY_FILE}
echo "${RELEASE_BODY_FILE}"
- name: Tag Release
uses: ncipollo/release-action@v1
with:
tag: ${{ github.event.inputs.tag }}-prod-all-providers
token: ${{ secrets.GITHUB_TOKEN }}
draft: false
prerelease: false
bodyFile: ${{ github.event.inputs.tag }}-prod-all-providers-release-body.md
generateReleaseNotes: true