name: Release on: workflow_dispatch: push: paths-ignore: - "**.md" - "**/release.yaml" - "frontend/**" - "deployments/**" - "docs/**" branches: - main permissions: id-token: write contents: write packages: write deployments: write jobs: release: uses: lukaszraczylo/shared-actions/.github/workflows/go-release-cgo.yaml@main with: go-version: "1.25" # Enable frontend build node-enabled: true node-version: "20" node-build-script: "cd frontend && npm install -g pnpm && pnpm install --frozen-lockfile && pnpm run build" node-output-path: "frontend/dist" node-cache-dependency-path: "frontend/pnpm-lock.yaml" secrets: inherit benchmark: name: Publish Benchmarks needs: release runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: token: ${{ secrets.GITHUB_TOKEN }} ref: main - name: Setup Go uses: actions/setup-go@v5 with: go-version: "1.25" - name: Run benchmarks run: go test -bench=. -benchmem ./... -run=^# | tee output.txt - name: Store benchmark result uses: benchmark-action/github-action-benchmark@v1 with: tool: "go" output-file-path: output.txt fail-on-alert: true github-token: ${{ secrets.GITHUB_TOKEN }} comment-on-alert: true summary-always: true auto-push: false benchmark-data-dir-path: "docs/bench" - name: Push benchmark results env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" git add docs/bench git diff --staged --quiet || git commit -m "Update benchmark results" git push origin main publish-helm-chart: name: 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 }} run: | gh api repos/lukaszraczylo/helm-charts/dispatches \ -f event_type=release-chart \ -f client_payload[chart_name]=gohoarder \ -f client_payload[version]=${{ steps.version.outputs.version }} \ -f client_payload[source_repo]=lukaszraczylo/gohoarder \ -f client_payload[chart_path]=helm/gohoarder