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