Skip to content

Release

Release #36

Workflow file for this run

---
name: "Release"
on:
release:
types: [published]
permissions:
contents: write
packages: write
jobs:
release:
runs-on: ubuntu-latest
steps:
### setup environment...
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: stable
- name: Install Helm
uses: azure/setup-helm@v4
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
- name: Configure Git
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "[email protected]"
### generate and upload helm chart artifacts
- name: Build and Push OCI Helm Chart
run: make helm-push DOCKER_REPO_BASE=ghcr.io/${{ github.actor }} GIT_TAG=${{ github.event.release.tag_name }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Rename Helm Chart Tarball File for Upload
run: mv istio-fortsa-${{ github.event.release.tag_name }}.tgz istio-fortsa-helm-chart-${{ github.event.release.tag_name }}.tgz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload Helm Chart Tarball to Release
uses: AButler/[email protected]
with:
files: "istio-fortsa-helm-chart-${{ github.event.release.tag_name }}.tgz"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run gh-pages chart-releaser
uses: helm/chart-releaser-action@fhofherr:171-unbound-variable-latest_tag # 1.6.0 is broken with error "latest_tag: unbound variable" (issue #171)
with:
charts_dir: chart
skip_packaging: true
skip_existing: true
config: .cr.yaml
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
### build app and other release artifacts
# this takes the same amount of time as using docker-build, but doesn't currently work...
# it seems the binary in the docker image isn't being named '/manager'
# - name: Run GoReleaser
# uses: goreleaser/goreleaser-action@v6
# with:
# distribution: goreleaser
# version: "~> v2"
# args: release --clean
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# KO_DOCKER_REPO: ghcr.io/${{ github.repository }}
# this takes the same amount of time as using goreleaser, but doesn't create release tarballs
- name: Build and Push Docker Images
run: make docker-buildx IMAGE_TAG_BASE=ghcr.io/${{ github.actor }}/istio-fortsa GIT_TAG=${{ github.event.release.tag_name }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build and Push OLM Bundle Image
run: make bundle bundle-build bundle-push IMAGE_TAG_BASE=ghcr.io/${{ github.actor }}/istio-fortsa GIT_TAG=${{ github.event.release.tag_name }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build and Push OLM Catalog Image
run: make catalog-build catalog-push IMAGE_TAG_BASE=ghcr.io/${{ github.actor }}/istio-fortsa GIT_TAG=${{ github.event.release.tag_name }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}