name: Release on: workflow_dispatch: push: tags: - 'v*' permissions: id-token: write contents: write packages: write jobs: release: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up Go uses: actions/setup-go@v5 with: go-version: "1.25" cache: true - name: Install cosign uses: sigstore/cosign-installer@v3 - name: Log in to GitHub Container Registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Run GoReleaser uses: goreleaser/goreleaser-action@v6 with: version: latest args: release --clean env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} publish-helm-chart: needs: release runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Get release version id: version run: | VERSION=$(git describe --tags --abbrev=0 2>/dev/null || echo "0.0.0") VERSION=${VERSION#v} echo "version=$VERSION" >> $GITHUB_OUTPUT - name: Trigger helm-charts release env: GH_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }} RELEASE_VERSION: ${{ steps.version.outputs.version }} run: | gh api repos/lukaszraczylo/helm-charts/dispatches -f event_type=release-chart -f client_payload[chart_name]=kubemirror -f client_payload[version]="$RELEASE_VERSION" -f client_payload[source_repo]=lukaszraczylo/kubemirror -f client_payload[chart_path]=charts/kubemirror publish-website: needs: release runs-on: ubuntu-latest permissions: contents: read pages: write id-token: write steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Pages uses: actions/configure-pages@v5 - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: path: './docs' - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4