From 2113d9cc758347652468aba441f630d04664f1e2 Mon Sep 17 00:00:00 2001 From: Aleksey Shakhmatov Date: Mon, 23 Mar 2026 14:16:02 +0300 Subject: [PATCH] Add publish workflow for Gitea Go Package Registry Publishes the module to Gitea Package Registry on tag push (v*). Runs vet and tests before publishing to prevent broken releases. Co-Authored-By: Claude Opus 4.6 (1M context) --- .gitea/workflows/publish.yml | 39 ++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 .gitea/workflows/publish.yml diff --git a/.gitea/workflows/publish.yml b/.gitea/workflows/publish.yml new file mode 100644 index 0000000..b44a00e --- /dev/null +++ b/.gitea/workflows/publish.yml @@ -0,0 +1,39 @@ +name: Publish + +on: + push: + tags: ["v*"] + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-go@v5 + with: + go-version-file: go.mod + + - name: Vet + run: go vet ./... + + - name: Test + run: go test -race -count=1 ./... + + - name: Publish to Gitea Package Registry + run: | + VERSION=${GITHUB_REF#refs/tags/} + MODULE=$(go list -m) + + # Create module zip with required prefix: module@version/ + git archive --format=zip --prefix="${MODULE}@${VERSION}/" HEAD -o module.zip + + # Gitea Go Package Registry API + curl -s -f \ + -X PUT \ + -H "Authorization: token ${{ secrets.PUBLISH_TOKEN }}" \ + -H "Content-Type: application/zip" \ + --data-binary @module.zip \ + "${{ github.server_url }}/api/packages/pkg/go/upload?module=${MODULE}&version=${VERSION}" + env: + PUBLISH_TOKEN: ${{ secrets.PUBLISH_TOKEN }}