mirror of
https://github.com/lukaszraczylo/gohoarder.git
synced 2026-10-12 00:45:16 +00:00
BenchmarkFilesystemPut measures disk writes on a shared runner and varied by a factor of two between runs. Between the two compared commits only go.mod and go.sum changed. The benchmark action still comments on an alert and writes the summary, but it no longer fails the workflow.
92 lines
2.4 KiB
YAML
92 lines
2.4 KiB
YAML
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.27"
|
|
# 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.27"
|
|
|
|
- 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: false
|
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
comment-on-alert: true
|
|
summary-always: true
|
|
auto-push: true
|
|
benchmark-data-dir-path: "docs/bench"
|
|
|
|
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
|