Skip to content

feat(wallet): enable wallet previews on PR #31

feat(wallet): enable wallet previews on PR

feat(wallet): enable wallet previews on PR #31

name: Deploy NEWM Marketplace to AWS Hosting on PR
on:
pull_request:
paths:
- .github/workflows/aws-hosting-pull-request-newm-marketplace.yml
- apps/marketplace/**
- packages/**
jobs:
build_and_preview:
if: "${{ github.event.pull_request.head.repo.full_name == github.repository }}"
runs-on: ubuntu-latest
permissions:
id-token: write # required to interact with GitHub's OIDC Token endpoint.
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v3
- run: npm install
- run: npx nx build marketplace
env:
NEXT_PUBLIC_APPLE_CLIENT_ID: ${{ secrets.APPLE_CLIENT_ID }}
NEXT_PUBLIC_GOOGLE_CLIENT_ID: ${{ secrets.GOOGLE_CLIENT_ID }}
NEXT_PUBLIC_GA_STUDIO_ID: ${{ secrets.GA_STUDIO_ID }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
NEXT_PUBLIC_ENV: staging
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
role-to-assume: ${{ secrets.AWS_GITHUB_DEPLOY_ROLE_ARN_GARAGE }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Lambda-ify
run: echo "COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:0.7.1 /lambda-adapter /opt/extensions/lambda-adapter" >> apps/marketplace/Dockerfile
- name: Install AWS CDK
run: npm install -g aws-cdk
- name: Set outputs
id: vars
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Deploy to Lambda Function
run: |
npm install --prefix .github/workflows/cdk
APPNAME=marketplace QUALIFIER=${{ github.event.pull_request.number }} npm run --prefix .github/workflows/cdk cdk deploy -- --require-approval never
- name: Get preview url
id: previewurl
run: echo "previewurl=$(aws cloudformation describe-stacks --stack-name marketplace-${{ github.event.pull_request.number }} --query 'Stacks[0].Outputs[0].OutputValue' --output text)" >> $GITHUB_OUTPUT
- name: Url to PR comment
uses: mshick/add-pr-comment@v2
with:
message: |
Visit the marketplace preview URL for this PR (updated for commit ${{ steps.vars.outputs.sha_short }}):
:rocket: ${{ steps.previewurl.outputs.previewurl }}
allow-repeats: true