version: '1' name: Release Version on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Set up Go uses: actions/setup-go@v2 with: go-version: '1.23.1' - name: Build Go binary run: | go mod tidy go build -o s3-client - name: Get latest commit ID id: get_commit run: | commit_id=$(git rev-parse HEAD) echo "commit_id=$commit_id" >> $GITHUB_ENV - name: Get latest version and increment id: create_version run: | latest_version=$(git describe --tags --abbrev=0 || echo "v0.0.0") new_version=$(echo $latest_version | awk -F. '{printf "v%d.%d.%d", $1, $2, $3+1}') if git rev-parse "$new_version" >/dev/null 2>&1; then echo "Tag $new_version already exists. Exiting." exit 1 fi echo "new_version=$new_version" >> $GITHUB_ENV git tag $new_version git push origin $new_version - name: Create Release id: create_release uses: actions/create-release@v1 with: tag_name: ${{ env.new_version }} release_name: Release ${{ env.new_version }} release_description: | Automatic release by Gitea CI Release version ${{ env.new_version }}. Commit ID: ${{ env.commit_id }} draft: false prerelease: false env: GITEA_TOKEN: ${{ secrets.GITEA_GL_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITEA_GL_TOKEN }} - name: Save release URL run: echo "upload_url=${{ steps.create_release.outputs.upload_url }}" >> $GITHUB_ENV - name: Upload Go binary to release uses: actions/upload-release-asset@v1 with: upload_url: ${{ env.upload_url }} asset_path: ./s3-client asset_name: s3-client_${{ env.new_version }}_linux_amd64 asset_content_type: application/octet-stream