diff --git a/.gitea/workflow/release.yml b/.gitea/workflow/release.yml new file mode 100644 index 0000000..fc422a3 --- /dev/null +++ b/.gitea/workflow/release.yml @@ -0,0 +1,52 @@ +name: Release + +on: + push: + tags: + - 'v*.*.*' + +jobs: + release: + runs-on: ubuntu-latest + + steps: + # 1. Checkout source code + - name: Checkout + uses: actions/checkout@v4 + + # 2. Setup Go environment + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: '1.24.5' + + # 3. Build binary with Version injected + - name: Build binary + run: | + VERSION=${GITEA_REF_NAME} + echo "Building version $VERSION" + go build -ldflags "-s -w -X main.Version=$VERSION" -o myapp ./cmd/app + + # 4. Install the tea CLI + - name: Install tea CLI + run: go install gitea.com/gitea/tea@latest + + # 5. Authenticate tea CLI + - name: Login to Gitea + run: | + tea login add --name ci --url $GITEA_URL --token $GITEA_TOKEN + env: + GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} + GITEA_URL: ${{ secrets.GITEA_URL }} + + # 6. Create or update release + - name: Create or update release + run: | + tea release create $GITEA_REF_NAME \ + --title "$GITEA_REF_NAME" \ + --note "Automated release for $GITEA_REF_NAME" || \ + echo "Release already exists, skipping create." + + # 7. Upload binary to the release + - name: Upload binary + run: tea release upload $GITEA_REF_NAME ./myapp