On each push or release, zip the repo and send it to your OSIBytes quota (2 GB basic, or a paid TB plan).
Add repo secrets OSIBYTES_BACKUP_USER and OSIBYTES_BACKUP_PASS, then this workflow:
name: osibytes-backup
on:
push:
branches: [main]
workflow_dispatch:
jobs:
backup:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Zip and upload
env:
OSIBYTES_BACKUP_USER: ${{ secrets.OSIBYTES_BACKUP_USER }}
OSIBYTES_BACKUP_PASS: ${{ secrets.OSIBYTES_BACKUP_PASS }}
run: |
zip -r repo.zip .
curl -fsS -u "$OSIBYTES_BACKUP_USER:$OSIBYTES_BACKUP_PASS" \
-F "file=@repo.zip" \
https://backup.osibytes.com/sync_api.php