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 1a9aa0a..43b45c4 100644 --- a/action.yml +++ b/action.yml @@ -1,60 +1,46 @@ -name: Oasis Auto Config Action -description: Configure env for deploying apps using Oasis Automagically +name: "S3 Backup Action" +description: "Backup to S3 Bucket" inputs: - channel: - description: Channel (ci or deployments) + infisical-token: + description: Infisical token for backup envars required: true - header: - description: Header to be displayed next to the environment + infisical-project: + description: Infisical Project required: true - status: - description: Job Status (Can be provided using ${{ job.status }}) - required: true - additional-content: - descrption: Additional info to include in the message + s3-backup-path: + description: "Workspace to setup Oasis" required: false + default: backups/forgejo-repositories/${{ gitea.repository }} runs: - using: composite + using: "composite" steps: - - name: Configure Envars - shell: bash - run: | - if [ ${{ inputs.channel }} == "deployments" ]; then - echo DISCORD_WEBHOOK=${{ env.DISCORD_WEBHOOK_DEPLOYMENTS }} >> $GITHUB_ENV - echo DISCORD_MESSAGE_TITLE=DEPLOY >> $GITHUB_ENV - elif [ ${{ inputs.channel }} == "ci" ]; then - echo DISCORD_WEBHOOK=${{ env.DISCORD_WEBHOOK_CI }} >> $GITHUB_ENV - echo DISCORD_MESSAGE_TITLE=CI >> $GITHUB_ENV - else - echo "Error! channel required, and must be 'ci' or 'deployments'!" - exit 1 - fi - if [ ${{ inputs.status }} == "success" ]; then - echo DISCORD_MESSAGE_STATUS_ICON=":white_check_mark:" >> $GITHUB_ENV - echo DISCORD_MESSAGE_STATUS_COLOR=3405175 >> $GITHUB_ENV - elif [ ${{ inputs.status }} == "failure" ]; then - echo DISCORD_MESSAGE_STATUS_ICON=":x:" >> $GITHUB_ENV - echo DISCORD_MESSAGE_STATUS_COLOR=16071219 >> $GITHUB_ENV - else - echo "I donotwannaknow?" - echo DISCORD_MESSAGE_STATUS_ICON=":warning:" >> $GITHUB_ENV - echo DISCORD_MESSAGE_STATUS_COLOR=16102451 >> $GITHUB_ENV - fi - - # Save Common Envars - echo DISCORD_MESSAGE_ACTION_URL=${{ env.GITHUB_SERVER_URL }}/${{ env.GITHUB_REPOSITORY }}/actions/runs/${{ env.GITHUB_RUN_NUMBER }} >> $GITHUB_ENV - echo DISCORD_MESSAGE_REPOSITORY_URL=${{ env.GITHUB_SERVER_URL }}/${{ env.GITHUB_REPOSITORY }} >> $GITHUB_ENV - - - name: Configure Kubeconfig - uses: https://github.com/tsickert/discord-webhook@v5.4.0 + # Checkout Repository + - name: Checkout Repository + uses: actions/checkout@v3 with: - webhook-url: ${{ env.DISCORD_WEBHOOK }} - embed-title: Action Details - embed-description: ${{ env.GITHUB_REPOSITORY }} - embed-footer-text: "Repository: ${{ env.DISCORD_MESSAGE_REPOSITORY_URL }}" - embed-url: ${{ env.DISCORD_MESSAGE_ACTION_URL }} - embed-color: ${{ env.DISCORD_MESSAGE_STATUS_COLOR }} - content: |- - **[${{ env.DISCORD_MESSAGE_TITLE }}]** | ${{ inputs.header }} | ${{ env.DISCORD_MESSAGE_STATUS_ICON }} - ${{ inputs.additional-content }} - + 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