name: Upload Release to R2 on: release: types: [published] jobs: upload: runs-on: ubuntu-latest environment: sync_r2 steps: - name: Checkout code uses: actions/checkout@v4 - name: Download release assets env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | mkdir assets gh release download "${{ github.event.release.tag_name }}" --dir assets --pattern '*.deb' --pattern '*.dmg' --pattern '*.exe' echo "Downloaded files:" ls -lh assets/ - name: Extract version from filename run: | FILE=$(ls assets/ | head -n 1) VERSION=$(echo "$FILE" | sed -E 's/^Presenton-(.+)\.(deb|dmg|exe)$/\1/') echo "Extracted version: $VERSION" echo "VERSION=$VERSION" >> $GITHUB_ENV # 4. Install rclone - name: Install rclone run: | curl https://rclone.org/install.sh | sudo bash # 5. Configure R2 - name: Configure R2 run: | mkdir -p ~/.config/rclone cat < ~/.config/rclone/rclone.conf [r2] type = s3 provider = Cloudflare access_key_id = ${{ secrets.R2_ACCESS_KEY }} secret_access_key = ${{ secrets.R2_SECRET_KEY }} endpoint = https://${{ secrets.R2_ACCOUNT_ID }}.r2.cloudflarestorage.com EOF # 6. Upload to R2 (FINAL STEP) - name: Upload files to R2 run: | rclone copy assets r2:presenton-desktop/${{ env.VERSION }} --progress --transfers=8