name: Build & Release on: push: tags: - 'v*' # Only run for version tags jobs: release: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup .NET uses: actions/setup-dotnet@v3 with: dotnet-version: '9.0.x' - name: Build & Package run: | dotnet publish -c Release -o artifacts/release mkdir -p artifacts/packages cd artifacts/release zip -r ../packages/firefly-${GITHUB_REF#refs/tags/}.zip . - name: Extract Tag Name run: | TAG_NAME="${GITHUB_REF#refs/tags/}" echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV - name: Create Release in Gitea run: | RELEASE_DATA=$(curl -s -X POST "${GITEA_URL}/api/v1/repos/${GITEA_REPO}/releases" \ -H "Authorization: token ${GITEA_TOKEN}" \ -H "Content-Type: application/json" \ -d "{ \"tag_name\": \"${TAG_NAME}\", \"name\": \"Release ${TAG_NAME}\", \"body\": \"Automated release for ${TAG_NAME}\", \"draft\": false, \"prerelease\": false }") echo "Release created: $RELEASE_DATA" RELEASE_ID=$(echo "$RELEASE_DATA" | jq '.id') if [ -z "$RELEASE_ID" ] || [ "$RELEASE_ID" = "null" ]; then echo "Failed to retrieve release ID. Exiting." exit 1 fi curl -X POST "${GITEA_URL}/api/v1/repos/${GITEA_REPO}/releases/${RELEASE_ID}/assets?name=firefly-${TAG_NAME}.zip" \ -H "Authorization: token ${GITEA_TOKEN}" \ -H "Content-Type: application/zip" \ --data-binary @artifacts/packages/firefly-${TAG_NAME}.zip env: GITEA_URL: https://gitea.innovativedevsolutions.org GITEA_REPO: IDSolutions/fireflyclient GITEA_TOKEN: ${{ secrets.NET_TOKEN }}