Files
genesis-2/.gitea/workflows/backup.yaml
T

57 lines
1.6 KiB
YAML

name: Supa-backup
on:
pull_request:
branches: [ main ]
workflow_dispatch:
schedule:
- cron: '0 0 * * *'
jobs:
run_db_backup:
runs-on: ubuntu-latest
env:
SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_ACCESS_TOKEN }}
SUPABASE_PROJECT_ID: ${{ secrets.SUPABASE_PROJECT_ID }}
# MinIO / S3 config
AWS_ACCESS_KEY_ID: ${{ secrets.MINIO_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.MINIO_SECRET_KEY }}
AWS_DEFAULT_REGION: us-east-1
S3_ENDPOINT: ${{ secrets.MINIO_ENDPOINT }}
S3_BUCKET: ${{ secrets.MINIO_BUCKET }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.head_ref || github.ref }}
- uses: supabase/setup-cli@v1
with:
version: latest
- name: Link Project
run: supabase link --project-ref $SUPABASE_PROJECT_ID
- name: Create backup directory
run: mkdir -p backup
#- name: Backup roles
# run: supabase db dump -f backup/roles.sql --role-only
#- name: Backup schema
# run: supabase db dump -f backup/schema.sql
- name: Backup data
run: supabase db dump -f backup/data.sql --data-only --use-copy
- name: Configure AWS CLI
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.MINIO_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.MINIO_SECRET_KEY }}
aws-region: us-east-1
- name: Upload to MinIO (S3)
run: |
aws --endpoint-url $S3_ENDPOINT s3 cp backup/ s3://$S3_BUCKET/SUPABASE/ --recursive