Files
2026-07-13 13:08:41 +08:00

54 lines
1.5 KiB
YAML

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 <<EOF > ~/.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