Preview app #1172
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: deploy-preview | |
on: | |
workflow_call: | |
pull_request: | |
types: | |
- opened | |
- synchronize | |
permissions: | |
id-token: write | |
contents: read | |
jobs: | |
test: | |
uses: ./.github/workflows/test.yml | |
smart-camera-web: | |
needs: [test] | |
defaults: | |
run: | |
working-directory: ./packages/smart-camera-web | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout code | |
uses: actions/checkout@v4 | |
- name: set node version | |
uses: actions/setup-node@v4 | |
- name: install dependencies | |
run: npm ci | |
- name: build application | |
run: npm run build | |
- name: set destination directory | |
id: set_dest_dir_smart_camera_web | |
run: >- | |
echo "DEST_DIR_SMART_CAMERA_WEB=js/preview-$GITHUB_HEAD_REF" >> | |
"$GITHUB_ENV" | |
- name: configure aws credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
role-to-assume: ${{ secrets.AWS_GITHUB_ACTIONS_ROLE }} | |
aws-region: ${{ secrets.AWS_REGION }} | |
- name: deploy preview to s3 | |
run: | | |
aws s3 sync --follow-symlinks --delete --exclude '*' --include 'smart-camera-web.js' . s3://${{ secrets.AWS_S3_BUCKET }}/${{ env.DEST_DIR_SMART_CAMERA_WEB }} | |
embed: | |
needs: [test] | |
defaults: | |
run: | |
working-directory: ./packages/embed | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout code | |
uses: actions/checkout@v4 | |
- name: set node version | |
uses: actions/setup-node@v4 | |
- name: install dependencies | |
run: npm ci | |
- name: build application | |
env: | |
SENTRY_AUTH_TOKEN: '${{ secrets.SENTRY_AUTH_TOKEN }}' | |
run: npm run build && npm run build:dist | |
- name: set destination directory | |
id: set_dest_dir_hosted_web | |
run: echo "DEST_DIR_EMBED=inline/preview-$GITHUB_HEAD_REF" >> "$GITHUB_ENV" | |
- name: configure aws credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
role-to-assume: ${{ secrets.AWS_GITHUB_ACTIONS_ROLE }} | |
aws-region: ${{ secrets.AWS_REGION }} | |
- name: deploy preview to s3 | |
run: | | |
aws s3 sync --follow-symlinks --delete dist s3://${{ secrets.AWS_S3_BUCKET }}/${{ env.DEST_DIR_EMBED }} | |
full-stack: | |
needs: [embed] | |
if: always() | |
defaults: | |
run: | |
working-directory: ./previews | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout code | |
uses: actions/checkout@v4 | |
- name: configure aws credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
role-to-assume: ${{ secrets.AWS_GITHUB_ACTIONS_ROLE }} | |
aws-region: ${{ secrets.AWS_REGION }} | |
- name: install sst | |
run: | | |
curl -fsSL https://ion.sst.dev/install | VERSION=0.1.51 bash | |
- name: set sst stage | |
id: get_branch_name | |
run: | | |
BRANCH_NAME=${{ github.event.pull_request.head.ref }} | |
SANITIZED_BRANCH_NAME=$(echo "$BRANCH_NAME" | sed 's/[^a-zA-Z0-9]/-/g') | |
echo "SS_STAGE=$SANITIZED_BRANCH_NAME" >> $GITHUB_OUTPUT | |
- name: install dependencies | |
run: npm install | |
- name: build application | |
run: npm run build | |
- name: configure sst secrets | |
run: | | |
sst secret set PartnerId ${{ secrets.PREVIEW_PARTNER_ID }} --stage ${{ steps.get_branch_name.outputs.SS_STAGE }} && | |
sst secret set CallbackUrl ${{ secrets.PREVIEW_CALLBACK_URL }} --stage ${{ steps.get_branch_name.outputs.SS_STAGE }} && | |
sst secret set SmileIdApiKey ${{ secrets.PREVIEW_SMILEID_API_KEY }} --stage ${{ steps.get_branch_name.outputs.SS_STAGE }} && | |
sst secret set SmileIdEnvironment ${{ secrets.PREVIEW_SMILEID_ENVIRONMENT }} --stage ${{ steps.get_branch_name.outputs.SS_STAGE }} | |
- name: deploy sst app | |
if: github.event.pull_request.merged != true | |
id: deploy_sst_app | |
run: | | |
sst deploy --stage=${{ steps.get_branch_name.outputs.SS_STAGE }} | |
- name: remove sst app | |
if: github.event.pull_request.merged == true | |
run: | | |
sst remove --stage=${{ steps.get_branch_name.outputs.SS_STAGE }} |