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 }}