Skip to content

Refactor reverse proxy setup and cache handling #12

Refactor reverse proxy setup and cache handling

Refactor reverse proxy setup and cache handling #12

name: Build, Test and Publish
on:
push:
tags:
- 'v*'
jobs:
build-test-publish:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set tag name
id: get_tag
run: echo "TAG_NAME=$(echo ${GITHUB_REF#refs/tags/})" >> $GITHUB_ENV
- name: Docker build and push
run: |
echo ${{ secrets.DOCKER_PASSWORD }} | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin
docker buildx build \
--platform linux/amd64 \
--pull \
--build-arg VERSION=${{ env.TAG_NAME }} \
--build-arg GIT_COMMIT=${{ github.sha }} \
--build-arg BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
--cache-from supporttools/go-web-cache:latest \
-t supporttools/go-web-cache:${{ env.TAG_NAME }} \
-t supporttools/go-web-cache:latest \
--push \
-f Dockerfile .
- name: Set up Helm
uses: azure/setup-helm@v1
with:
version: v3.7.1
- name: Package Helm chart
run: |
CHART_VERSION=${{ env.TAG_NAME }}
APP_VERSION=${{ env.TAG_NAME }}
IMAGE_TAG=${{ env.TAG_NAME }}
echo "CHART_VERSION=${CHART_VERSION}" >> $GITHUB_ENV
echo "APP_VERSION=${APP_VERSION}" >> $GITHUB_ENV
sed -i "s/version:.*/version: ${CHART_VERSION}/" charts/go-web-cache/Chart.yaml
sed -i "s/appVersion:.*/appVersion: ${APP_VERSION}/" charts/go-web-cache/Chart.yaml
sed -i "s/tag:.*/tag: ${IMAGE_TAG}/" charts/go-web-cache/values.yaml
helm package charts/go-web-cache --destination .helm/repo
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref_name }}
draft: false
prerelease: false
- name: Upload Helm Chart as Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: .helm/repo/go-web-cache-${{ env.TAG_NAME }}.tgz
asset_name: go-web-cache-${{ env.TAG_NAME }}.tgz
asset_content_type: application/octet-stream
- name: Checkout helm-chart repository
uses: actions/checkout@v2
with:
repository: SupportTools/helm-chart
path: helm-chart
token: ${{ secrets.BOT_TOKEN }}
- name: Configure Git
run: |
git config --global user.email "[email protected]"
git config --global user.name "GitHub Action"
- name: Update Helm repository
run: |
cp .helm/repo/go-web-cache-*.tgz helm-chart/
cd helm-chart
helm repo index . --url https://charts.support.tools/
git add .
git commit -m "Update Helm chart for go-web-cache: ${{ env.TAG_NAME }}"
git push