diff --git a/README.md b/README.md index 0e57a58..e4fd7c2 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,8 @@ The actions are used by Elysium to run CI/CD tasks and this repo will be archive The actions available are: - [S3 Backup](https://gitea.dunemask.dev/elysium/elysium-actions/src/branch/s3-backup/action.yml) -- [Oasis Auto Setup](https://gitea.dunemask.dev/elysium/elysium-actions/src/branch/oasis-setup-auto/action.yml) +- [Oasis Deploy](https://gitea.dunemask.dev/elysium/elysium-actions/src/branch/oasis-deploy/action.yml) - [Infisical Env](https://gitea.dunemask.dev/elysium/elysium-actions/src/branch/infisical-env/action.yml) -- [Oasis Advanced Setup](https://gitea.dunemask.dev/elysium/elysium-actions/src/branch/oasis-setup-advanced/action.yml) - [Elysium CI/CD](https://gitea.dunemask.dev/elysium/elysium-actions/src/branch/elysium-ci-cd/action.yml) ## Workflow Template diff --git a/action.yml b/action.yml index 20d2f80..43b45c4 100644 --- a/action.yml +++ b/action.yml @@ -1,28 +1,46 @@ -# Based on https://github.com/zerodays/action-infisical/blob/master/action.yml -name: 'Elysium Infisical Secrets' -description: 'Fetch secrets from Infisical and add them to the env' +name: "S3 Backup Action" +description: "Backup to S3 Bucket" inputs: infisical-token: - description: 'Infisical API Token' + description: Infisical token for backup envars required: true - environment: - description: 'The environment to fetch secrets for (e.g., staging, production)' + infisical-project: + description: Infisical Project required: true - secret-matrix: - description: 'Secret Matrix' - required: true - api-url: - description: 'Infisical API URL (defaults to https://infisical.dunemask.dev/api)' + s3-backup-path: + description: "Workspace to setup Oasis" required: false - default: 'https://infisical.dunemask.dev/api' + default: backups/forgejo-repositories/${{ gitea.repository }} runs: - using: 'composite' + using: "composite" steps: - - name: Infisical CLI install - shell: bash + # 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 ${{inputs.secret-matrix}} - curl -s -L https://github.com/Infisical/infisical/releases/download/infisical-cli%2Fv0.16.10/infisical_0.16.10_linux_amd64.tar.gz | tar xvz - ./infisical export --domain ${{ inputs.api-url }} --token ${{ inputs.infisical-token}} --env ${{ inputs.environment }} --path / >> $GITHUB_ENV - - shell: bash - run: echo "Secrets added to environment!". \ No newline at end of file + 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