diff --git a/.github/workflows/preview-close.yml b/.github/workflows/preview-close.yml new file mode 100644 index 00000000..7e8c7fc2 --- /dev/null +++ b/.github/workflows/preview-close.yml @@ -0,0 +1,29 @@ +name: 'Manual Amplify Preview Closed' +on: + pull_request_target: + types: [closed] + +jobs: + delete: + permissions: + id-token: write + if: contains(github.event.pull_request.labels.*.name, 'Preview Environment') + runs-on: ubuntu-latest + steps: + - name: configure AWS credentials + id: creds + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-region: us-east-2 + role-to-assume: ${{ secrets.AWS_GITHUB_ACTIONS_ROLE }} + output-credentials: true + - name: cleanup PR preview branch + uses: clearpathrobotics/amplify-preview-actions@sed-replace-all + with: + branch_name: ${{ github.head_ref }} + amplify_command: delete + env: + AWS_ACCESS_KEY_ID: ${{ steps.creds.outputs.aws-access-key-id }} + AWS_SECRET_ACCESS_KEY: ${{ steps.creds.outputs.aws-secret-access-key }} + AmplifyAppId: ${{ secrets.AMPLIFY_APP_ID }} + AWS_REGION: 'us-east-2' diff --git a/.github/workflows/preview-rc.yml b/.github/workflows/preview-rc.yml new file mode 100644 index 00000000..74292bf0 --- /dev/null +++ b/.github/workflows/preview-rc.yml @@ -0,0 +1,64 @@ +name: Amplify Branch Management +description: 'Adds(or removes) branch to Amplify with preview enabled' + +on: + create: + delete: + +jobs: + deploy-to-amplify: + if: github.event_name == 'create' && startsWith(github.event.ref, 'rc/') + runs-on: ubuntu-latest + permissions: + id-token: write + steps: + - name: configure AWS credentials + id: creds + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-region: us-east-2 + role-to-assume: ${{ secrets.AWS_GITHUB_ACTIONS_ROLE }} + output-credentials: true + - name: Enable Amplify Branch With Preview + uses: clearpathrobotics/amplify-preview-actions@sed-replace-all + with: + branch_name: ${{ github.event.ref }} + amplify_command: deploy + env: + AWS_ACCESS_KEY_ID: ${{ steps.creds.outputs.aws-access-key-id }} + AWS_SECRET_ACCESS_KEY: ${{ steps.creds.outputs.aws-secret-access-key }} + AmplifyAppId: ${{ secrets.AMPLIFY_APP_ID }} + EnablePreview: true + AWS_REGION: 'us-east-2' + + remove-from-amplify: + if: github.event_name == 'delete' && (startsWith(github.event.ref, 'rc/') || startsWith(github.head_ref, 'rc/')) + runs-on: ubuntu-latest + permissions: + id-token: write + steps: + - name: Get ref for pull_request + run: | + echo "BRANCH_NAME=${{ github.head_ref }}" >> $GITHUB_ENV + if: github.event_name == 'pull_request_target' + - name: Get ref for delete + run: | + echo "BRANCH_NAME=${{ github.event.ref }}" >> $GITHUB_ENV + if: github.event_name == 'delete' + - name: configure AWS credentials + id: creds + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-region: us-east-2 + role-to-assume: ${{ secrets.AWS_GITHUB_ACTIONS_ROLE }} + output-credentials: true + - name: Remove Branch From Amplify + uses: clearpathrobotics/amplify-preview-actions@sed-replace-all + with: + branch_name: ${{ env.BRANCH_NAME }} + amplify_command: delete + env: + AWS_ACCESS_KEY_ID: ${{ steps.creds.outputs.aws-access-key-id }} + AWS_SECRET_ACCESS_KEY: ${{ steps.creds.outputs.aws-secret-access-key }} + AmplifyAppId: ${{ secrets.AMPLIFY_APP_ID }} + AWS_REGION: 'us-east-2' diff --git a/.github/workflows/preview.yaml b/.github/workflows/preview.yaml new file mode 100644 index 00000000..f2f6a7e3 --- /dev/null +++ b/.github/workflows/preview.yaml @@ -0,0 +1,33 @@ +name: Manual Amplify Preview + +on: + pull_request: + types: [labeled] + +jobs: + deploy: + if: contains(github.event.label.name, 'Preview Environment') + runs-on: ubuntu-latest + continue-on-error: true + permissions: + id-token: write + pull-requests: write + steps: + - name: configure AWS credentials + id: creds + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-region: us-east-2 + role-to-assume: ${{ secrets.AWS_GITHUB_ACTIONS_ROLE }} + output-credentials: true + - name: deploy PR preview + uses: clearpathrobotics/amplify-preview-actions@sed-replace-all + with: + branch_name: ${{ github.head_ref }} + amplify_command: deploy + env: + AWS_ACCESS_KEY_ID: ${{ steps.creds.outputs.aws-access-key-id }} + AWS_SECRET_ACCESS_KEY: ${{ steps.creds.outputs.aws-secret-access-key }} + AmplifyAppId: ${{ secrets.AMPLIFY_APP_ID }} + AWS_REGION: 'us-east-2' + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}