Skip to content

Publish Release

Publish Release #45

name: Publish Release
on:
create:
tags:
- v*
env:
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
IMAGE: stono/kconmon
jobs:
config:
runs-on: ubuntu-latest
steps:
- name: Set env
run: echo ::set-env name=VERSION::${GITHUB_REF#refs/tags/v}
- name: Echo env
run: |
if [ -z "$VERSION" ]; then
echo "ERROR: Version was not set"
exit 1
fi
echo Target version: $VERSION
docker:
needs: config
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set env
run: echo ::set-env name=VERSION::${GITHUB_REF#refs/tags/v}
- name: Pull image
run: VERSION=latest docker-compose pull controller
- name: Build image
run: docker-compose build controller
- name: Log into registry
run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login -u stono --password-stdin
- name: Push 0.0.0 image
run: docker-compose push controller
helm:
needs: config
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set env
run: echo ::set-env name=VERSION::${GITHUB_REF#refs/tags/v}
- name: Package Helm
run: |
cd ./helmfile/charts/kconmon
helm package --version=$VERSION .
mv kconmon*.tgz kconmon-chart.tgz
- name: Upload the helm chart
uses: actions/upload-artifact@v1
with:
name: helm-chart
path: ./helmfile/charts/kconmon/kconmon-chart.tgz
release:
needs:
- docker
- helm
runs-on: ubuntu-latest
steps:
- name: Set output
id: set_output
run: echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/v}
- name: Create Release
id: create_release
uses: actions/create-release@v1
with:
tag_name: ${{ steps.set_output.outputs.VERSION }}
release_name: ${{ steps.set_output.outputs.VERSION }}
draft: false
prerelease: false
- name: Download helm chart
uses: actions/download-artifact@v1
with:
name: helm-chart
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./helm-chart/kconmon-chart.tgz
asset_name: helm-chart.tgz
asset_content_type: application/gzip