diff --git a/action.yml b/action.yml new file mode 100644 index 0000000..43b45c4 --- /dev/null +++ b/action.yml @@ -0,0 +1,46 @@ +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/${{ gitea.repository }} +runs: + using: "composite" + steps: + # Checkout Repository + - name: Checkout Repository + uses: actions/checkout@v3 + with: + path: 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 + # 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: ${{ inputs.s3-backup-path }} + MIRROR_SOURCE: repo + with: + args: --overwrite --remove