54 lines
1.5 KiB
YAML
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
|