diff --git a/.github/workflows/generate_preview_link.yml b/.github/workflows/generate_preview_link.yml new file mode 100644 index 0000000..3899f78 --- /dev/null +++ b/.github/workflows/generate_preview_link.yml @@ -0,0 +1,82 @@ +name: Generate preview link + +on: + pull_request_target: + types: [opened, synchronize] + +env: + HEAD_REF: ${{ github.head_ref }} + +concurrency: + group: cloudflare-pages-build-"$HEAD_REF" + cancel-in-progress: true + +jobs: + build_and_deploy_preview_link: + runs-on: Ubuntu-latest + permissions: + checks: write + pull-requests: write + steps: + - name: Verify user + uses: "deriv-com/shared-actions/.github/actions/verify_user_in_organization@v1" + with: + username: ${{github.event.pull_request.user.login}} + token: ${{ secrets.PERSONAL_ACCESS_TOKEN }} + + - name: Post preview build comment + id: post_preview_build_comment + uses: "deriv-com/shared-actions/.github/actions/post_preview_build_comment@v1" + with: + issue_number: ${{github.event.number}} + head_sha: ${{github.event.pull_request.head.sha}} + + - name: Checkout + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 + with: + ref: ${{github.event.pull_request.head.sha}} + + - name: Setup Node + uses: actions/setup-node@f1f314fca9dfce2769ece7d933488f076716723e + with: + node-version: 18.x + + - name: Install dependencies + uses: "deriv-com/shared-actions/.github/actions/npm_install@v1" + + - name: Build + uses: "./.github/actions/build" + with: + target: staging + + - name: Build Translations + uses: "./.github/actions/build" + with: + target: translations + + - name: "Run Tests" + run: npm run test + + - name: Setup Node + uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 + with: + node-version: 20 + + - name: Publish to CF pages branch + id: publish_to_pages_branch + uses: "deriv-com/shared-actions/.github/actions/publish_to_pages_branch@v1" + with: + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_TEST_LINKS_API_TOKEN }} + CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_TEST_LINKS_ACCOUNT_ID }} + project_name: "traders-hub-preview" + branch_name: "pr-${{github.event.number}}" + output_dir: dist + + - name: "Generate preview link comment" + uses: "deriv-com/shared-actions/.github/actions/post_preview_link_comment@v1" + if: always() && steps.post_preview_build_comment.outcome == 'success' + with: + issue_number: ${{github.event.number}} + check_run_id: ${{steps.post_preview_build_comment.outputs.check_run_id}} + preview_url: ${{steps.publish_to_pages_branch.outputs.cf_pages_url}} + status: ${{job.status}}