Add openfin e2e playwright tests on CI - FX app related specs only #1338
Workflow file for this run
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: Pull Request | |
on: | |
pull_request: | |
types: | |
- opened | |
- synchronize | |
defaults: | |
run: | |
working-directory: packages/client | |
env: | |
BUCKET_WEB: reactive-trader-web-builds | |
BUCKET_OPENFIN: reactive-trader-openfin-builds | |
BUCKET_FINSEMBLE: reactive-trader-finsemble-builds | |
ENVIRONMENT: env | |
jobs: | |
build: | |
name: Build & deploy | |
runs-on: ubuntu-20.04 | |
if: "!github.event.pull_request.head.repo.fork" | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set Node version | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 20 | |
- name: "Authenticate to Google Cloud" | |
uses: "google-github-actions/auth@v1" | |
with: | |
credentials_json: "${{ secrets.GCLOUD_SERVICE_ACCOUNT_JSON }}" | |
- name: Set up GCloud | |
uses: google-github-actions/setup-gcloud@v1 | |
with: | |
project_id: ${{ secrets.GOOGLE_PROJECT_ID }} | |
- name: Install | |
run: npm ci | |
- name: Verify Quality (type checking, linting, format checking, tests) | |
run: | | |
npm run verify | |
- name: Build (web) | |
env: | |
DOMAIN: https://web.env.reactivetrader.com | |
URL_PATH: /pull/${{ github.event.number }} | |
VITE_BUILD_VERSION: ${{ github.sha }} | |
run: | | |
npm run build | |
npm run storybook:build | |
- name: Deploy (web) | |
run: | | |
gsutil -m \ | |
-h "Cache-Control: no-cache" \ | |
rsync -d -r dist \ | |
gs://$BUCKET_WEB/pull/${{ github.event.number }} | |
# No need to deploy legacy Launcher as branch/tag workflows | |
- name: Build (OpenFin) | |
env: | |
DOMAIN: https://openfin.env.reactivetrader.com | |
URL_PATH: /pull/${{ github.event.number }} | |
VITE_BUILD_VERSION: ${{ github.sha }} | |
run: npm run openfin:build | |
- name: Deploy (OpenFin) | |
run: | | |
gsutil -m \ | |
-h "Cache-Control: no-cache" \ | |
rsync -d -r dist \ | |
gs://$BUCKET_OPENFIN/pull/${{ github.event.number }} | |
- name: Build (OpenFin - Workspace) | |
env: | |
DOMAIN: https://openfin.env.reactivetrader.com | |
URL_PATH: /pull/${{ github.event.number }}/workspace | |
VITE_BUILD_VERSION: ${{ github.sha }} | |
run: | | |
npm run workspace:build | |
- name: Deploy (OpenFin - Workspace) | |
run: | | |
gsutil -m \ | |
-h "Cache-Control: no-cache" \ | |
rsync -d -r dist \ | |
gs://$BUCKET_OPENFIN/pull/${{ github.event.number }}/workspace | |
- name: Build (Finsemble) | |
env: | |
DOMAIN: https://finsemble.env.reactivetrader.com | |
URL_PATH: /pull/${{ github.event.number }} | |
VITE_BUILD_VERSION: ${{ github.sha }} | |
run: npm run finsemble:build | |
- name: Deploy (Finsemble) | |
run: | | |
gsutil -m \ | |
-h "Cache-Control: no-cache" \ | |
rsync -d -r dist \ | |
gs://$BUCKET_FINSEMBLE/pull/${{ github.event.number }} | |
- name: Find comment | |
uses: peter-evans/find-comment@v2 | |
id: comment | |
with: | |
issue-number: ${{ github.event.number }} | |
comment-author: "github-actions[bot]" | |
body-includes: "(auto-deploy)" | |
- name: Create comment (if not exists) | |
if: ${{ steps.comment.outputs.comment-id == 0 }} | |
uses: peter-evans/create-or-update-comment@v3 | |
with: | |
issue-number: ${{ github.event.number }} | |
body: | | |
(auto-deploy) A deployment has been created for this Pull Request | |
### Preview links | |
As part of the code review process, please ensure that you test against the following | |
| Version | URL | | |
| :------------------ | :----------------------------------------------------------------------------------------------------- | | |
| Web | https://web.env.reactivetrader.com/pull/${{ github.event.number }} | | |
| OpenFin - FX | fins://openfin.env.reactivetrader.com/pull/${{ github.event.number }}/config/rt-fx.json | | |
| OpenFin - Credit | fins://openfin.env.reactivetrader.com/pull/${{ github.event.number }}/config/rt-credit.json | | |
| OpenFin - Launcher | fins://openfin.env.reactivetrader.com/pull/${{ github.event.number }}/config/launcher.json | | |
| OpenFin - Workspace | fins://openfin.env.reactivetrader.com/pull/${{ github.event.number }}/workspace/config/workspace.json | | |
| Finsemble | https://finsemble.env.reactivetrader.com/pull/${{ github.event.number }} | | |
### Performance | |
Please ensure that this PR does not degrade the performance of the UI. We should maintain a performance score of 95+. | |
https://developers.google.com/speed/pagespeed/insights/?url=https://web.env.reactivetrader.com/pull/${{ github.event.number }} | |
web-end-to-end-test: | |
name: Web end-to-end test | |
needs: build | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Install | |
run: npm ci | |
- name: Test | |
env: | |
E2E_RTC_WEB_ROOT_URL: https://web.env.reactivetrader.com/pull/${{ github.event.number }} | |
run: | | |
npm run e2e:web | |
- uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: playwright-report | |
path: packages/client/playwright-report/ | |
retention-days: 7 | |
openfin-end-to-end-test: | |
name: Openfin end-to-end test | |
needs: build | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 16 | |
- name: Install dependencies | |
run: npm ci | |
- name: start openfin | |
run: | | |
npx of-automation https://openfin.env.reactivetrader.com/pull/${{ github.event.number }}/config/rt-fx.json ./e2e/openfin.spec.js --devToolsPort=9091 --closeRuntime=never | |
- name: Run tests | |
env: | |
E2E_RTC_WEB_ROOT_URL: https://openfin.env.reactivetrader.com/pull/${{ github.event.number }} | |
run: | | |
npm run e2e:openfin spot-tile.spec blotter.spec | |
- uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: playwright-report | |
path: packages/client/playwright-report/ | |
retention-days: 7 |