name: Release SharePoint Toolbox v2 on: push: tags: - 'v*' jobs: release: runs-on: native steps: - name: Checkout run: | git clone "$GITEA_SERVER_URL/$GITEA_REPO.git" repo cd repo && git checkout "$GITEA_REF_NAME" env: GITEA_SERVER_URL: ${{ gitea.server_url }} GITEA_REPO: ${{ gitea.repository }} GITEA_REF_NAME: ${{ gitea.ref_name }} - name: Publish self-contained EXE run: | cd repo dotnet publish SharepointToolbox/SharepointToolbox.csproj \ -c Release \ -p:PublishSingleFile=true \ -o publish - name: Build zip run: | cd repo VERSION="${{ gitea.ref_name }}" ZIP="SharePoint_Toolbox_${VERSION}.zip" mkdir -p package/examples cp publish/SharepointToolbox.exe package/ cp SharepointToolbox/Resources/*.csv package/examples/ cd package zip -r "../../${ZIP}" . cd ../.. echo "ZIP=${ZIP}" >> "$GITHUB_ENV" echo "VERSION=${VERSION}" >> "$GITHUB_ENV" - name: Create release run: | RELEASE_ID=$(curl -sf -X POST \ "${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases" \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: application/json" \ -d "{\"tag_name\":\"${{ env.VERSION }}\",\"name\":\"SharePoint Toolbox ${{ env.VERSION }}\",\"body\":\"## Installation\\n\\n1. Download and extract the archive\\n2. Launch **SharepointToolbox.exe** (no .NET runtime required)\\n\\n## Included\\n\\n- SharepointToolbox.exe — self-contained desktop application\\n- examples/ — sample CSV templates for bulk operations\\n\"}" \ | python3 -c "import sys,json; print(json.load(sys.stdin)['id'])") echo "RELEASE_ID=${RELEASE_ID}" >> "$GITHUB_ENV" - name: Upload asset run: | curl -sf -X POST \ "${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/${{ env.RELEASE_ID }}/assets" \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -F "attachment=@${{ env.ZIP }}"