diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 4cd85be..139403f 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -1,54 +1,61 @@ -name: Build +name: Build & Release on: push: - branches: [ master ] tags: - - 'v*' - pull_request: - branches: [ master ] + - 'v*' # Only run for version tags jobs: - build: + release: runs-on: ubuntu-latest - + steps: - uses: actions/checkout@v3 - with: - fetch-depth: 0 - name: Setup .NET uses: actions/setup-dotnet@v3 with: dotnet-version: '9.0.x' - - name: Restore dependencies - run: dotnet restore FireflyClient.sln - - - name: Build + - name: Build & Package run: | - chmod +x build-all.sh - ./build-all.sh + dotnet publish -c Release -o artifacts/release + mkdir -p artifacts/packages + cd artifacts/release + zip -r ../packages/firefly-${GITHUB_REF#refs/tags/}.zip . - - name: Verify artifacts + - name: Extract Tag Name run: | - ls -la artifacts/exe || echo "No exe artifacts found" - ls -la artifacts/native || echo "No native artifacts found" + TAG_NAME="${GITHUB_REF#refs/tags/}" + echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV - - name: Upload artifacts - if: ${{ !env.ACT }} - uses: actions/upload-artifact@v3 - with: - name: firefly-artifacts - path: | - artifacts/exe - artifacts/native + - 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 - - name: Create Release - if: startsWith(github.ref, 'refs/tags/v') - uses: softprops/action-gh-release@v1 - with: - files: | - artifacts/exe/** - artifacts/native/** - generate_release_notes: true \ No newline at end of file + env: + GITEA_URL: https://gitea.innovativedevsolutions.org + GITEA_REPO: IDSolutions/fireflyclient + GITEA_TOKEN: ${{ secrets.NET_TOKEN }}