name: "S3 Backup Action" description: "Backup to S3 Bucket" inputs: infisical-token: description: Infisical token for backup envars required: true infisical-project: description: Infisical Project required: true s3-backup-path: description: "Workspace to setup Oasis" required: false default: backups/forgejo-repositories/${{ forgejo.repository }} runs: using: "composite" steps: # Checkout Repository - name: Checkout Repository uses: actions/checkout@v3 with: path: ${{ forgejo.workspace }}/repo # Load Backup Envars - name: Setup Backup Envars uses: https://forgejo.dunemask.dev/elysium/elysium-actions@infisical-env with: infisical-token: ${{ inputs.infisical-token }} project-id: ${{ inputs.infisical-project }} secret-envs: edge secret-paths: /devops/forgejo-backups # Fix Envar Format - name: Fix Env Format run: | echo BACKUP_S3_ENDPOINT=${{ env.DEVOPS_FORGEJO_ELYSIUM_ORG_S3_ENDPOINT }} >> $GITHUB_ENV echo BACKUP_S3_KEY_ID=${{ env.DEVOPS_FORGEJO_ELYSIUM_ORG_S3_KEY_ID }} >> $GITHUB_ENV echo BACKUP_S3_KEY=${{ env.DEVOPS_FORGEJO_ELYSIUM_ORG_S3_KEY }} >> $GITHUB_ENV if [ -z "${{ inputs.s3-backup-path }}" ]; then echo BACKUP_S3_MIRROR_TARGET=${{ inputs.s3-backup-path }} >> $GITHUB_ENV else echo BACKUP_S3_MIRROR_TARGET=backups/forgejo-repositories/${{ forgejo.repository }} >> $GITHUB_ENV fi echo "${{ env.BACKUP_S3_MIRROR_TARGET }}" echo "backups/forgejo-repositories/${{ forgejo.repository }}" # Backup Repository - name: S3 Backup uses: https://github.com/peter-evans/s3-backup@v1 env: STORAGE_SERVICE_URL: ${{ env.BACKUP_S3_ENDPOINT }} ACCESS_KEY_ID: ${{ env.BACKUP_S3_KEY_ID }} SECRET_ACCESS_KEY: ${{ env.BACKUP_S3_KEY }} MIRROR_TARGET: ${{ env.BACKUP_S3_MIRROR_TARGET }} MIRROR_SOURCE: ${{ forgejo.workspace }}/repo with: args: --overwrite --remove