diff --git a/.gitea/workflows/backup.yaml b/.gitea/workflows/backup.yaml index 275845d..9c407b6 100644 --- a/.gitea/workflows/backup.yaml +++ b/.gitea/workflows/backup.yaml @@ -5,38 +5,55 @@ on: branches: [ main ] workflow_dispatch: schedule: - - cron: '0 0 * * *' # Runs every day at midnight + - cron: '0 0 * * *' -jobs: +jobs: run_db_backup: runs-on: ubuntu-latest - permissions: - contents: write env: SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_DESARROLLO_ACCESS_TOKEN }} SUPABASE_PROJECT_ID: ${{ secrets.SUPABASE_DESARROLLO_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 }} # ej: http://minio:9000 + S3_BUCKET: ${{ secrets.MINIO_BUCKET }} + steps: - uses: actions/checkout@v4 with: - # Si es un PR, usa la rama origen. Si no, usa la rama que disparó el evento (main). 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: Backup roles - run: supabase db dump -f supabase/roles.sql --role-only - - - name: Backup schema - run: supabase db dump -f supabase/schema.sql - - - name: Backup data - run: supabase db dump -f supabase/data.sql --data-only --use-copy - - uses: stefanzweifel/git-auto-commit-action@v5 - with: - commit_message: Supabase backup \ No newline at end of file + - 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: Install AWS CLI + run: | + curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" + unzip awscliv2.zip + sudo ./aws/install + + - name: Upload to MinIO (S3) + run: | + TIMESTAMP=$(date +'%Y-%m-%d_%H-%M-%S') + + aws --endpoint-url $S3_ENDPOINT s3 cp backup/ s3://$S3_BUCKET/$TIMESTAMP/ --recursive \ No newline at end of file