From d835a4cc74c7ff4621653904b7f737e159a0ee79 Mon Sep 17 00:00:00 2001 From: Samuel Imolorhe Date: Fri, 15 Oct 2021 00:09:28 +0200 Subject: [PATCH 1/2] fixed test - take 2 --- .../doc-viewer/doc-viewer/doc-viewer.component.ts | 3 ++- .../components/doc-viewer/doc-viewer/worker-helper.ts | 3 +++ packages/altair-app/src/setup-jest.ts | 3 +++ packages/altair-app/tsconfig.json | 1 + packages/altair-app/yarn.lock | 8 ++++---- 5 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 packages/altair-app/src/app/modules/altair/components/doc-viewer/doc-viewer/worker-helper.ts diff --git a/packages/altair-app/src/app/modules/altair/components/doc-viewer/doc-viewer/doc-viewer.component.ts b/packages/altair-app/src/app/modules/altair/components/doc-viewer/doc-viewer/doc-viewer.component.ts index 83b3c08d72..14aac5e463 100644 --- a/packages/altair-app/src/app/modules/altair/components/doc-viewer/doc-viewer/doc-viewer.component.ts +++ b/packages/altair-app/src/app/modules/altair/components/doc-viewer/doc-viewer/doc-viewer.component.ts @@ -29,6 +29,7 @@ import { GqlService } from '../../../services'; import getRootTypes from '../../../utils/get-root-types'; import { DocView } from 'altair-graphql-core/build/types/state/docs.interfaces'; import { AltairConfig } from 'altair-graphql-core/build/config'; +import { getDocUtilsWorkerAsyncClass } from './worker-helper'; @UntilDestroy() @Component({ @@ -228,7 +229,7 @@ export class DocViewerComponent implements OnChanges { async getDocUtilsWorker() { if (!this.docUtilWorker) { try { - const DocUtils: any = Comlink.wrap(new Worker(new URL('../doc-utils.worker', import.meta.url), { type: 'module' })); + const DocUtils: any = getDocUtilsWorkerAsyncClass(); this.docUtilWorker = await new DocUtils(); } catch (error) { debug.error('Could not load doc utilsweb worker'); diff --git a/packages/altair-app/src/app/modules/altair/components/doc-viewer/doc-viewer/worker-helper.ts b/packages/altair-app/src/app/modules/altair/components/doc-viewer/doc-viewer/worker-helper.ts new file mode 100644 index 0000000000..6bcd6b799d --- /dev/null +++ b/packages/altair-app/src/app/modules/altair/components/doc-viewer/doc-viewer/worker-helper.ts @@ -0,0 +1,3 @@ +import * as Comlink from 'comlink'; + +export const getDocUtilsWorkerAsyncClass = () => Comlink.wrap(new Worker(new URL('../doc-utils.worker', import.meta.url), { type: 'module' })); diff --git a/packages/altair-app/src/setup-jest.ts b/packages/altair-app/src/setup-jest.ts index a5c369c9a1..040c49f2cc 100644 --- a/packages/altair-app/src/setup-jest.ts +++ b/packages/altair-app/src/setup-jest.ts @@ -1,4 +1,7 @@ import 'jest-preset-angular/setup-jest'; +jest.mock('./app/modules/altair/components/doc-viewer/doc-viewer/worker-helper', () => ({ + getDocUtilsWorkerAsyncClass: () => {}, +})) /* global mocks for jsdom */ const mock = () => { diff --git a/packages/altair-app/tsconfig.json b/packages/altair-app/tsconfig.json index 1d52b4ed03..f09b980376 100644 --- a/packages/altair-app/tsconfig.json +++ b/packages/altair-app/tsconfig.json @@ -17,6 +17,7 @@ "typeRoots": [ "node_modules/@types" ], + "downlevelIteration": true, "lib": [ "es2016", "dom", diff --git a/packages/altair-app/yarn.lock b/packages/altair-app/yarn.lock index 57de1dbd2d..4581f4e14d 100644 --- a/packages/altair-app/yarn.lock +++ b/packages/altair-app/yarn.lock @@ -3484,10 +3484,10 @@ alphanum-sort@^1.0.2: resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= -altair-graphql-core@^4.0.9: - version "4.0.9" - resolved "https://registry.yarnpkg.com/altair-graphql-core/-/altair-graphql-core-4.0.9.tgz#c52fd7238bae91114f94c693646182bdf042c47e" - integrity sha512-nL6hCHRanErWaVFVJsVkDmFg1z6iegqywX0W2naovnH7LUHzNFk79lFODMLDtliKqvXa+oQQt+K97emOBpeTVQ== +altair-graphql-core@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/altair-graphql-core/-/altair-graphql-core-4.0.11.tgz#1b8466f498a8ff65c80a2d80438b676e4bff8321" + integrity sha512-X40N49vEDft8Y/sETzGdzYl4uirfv/kQFxkOy2AFZdP32gYelxWKLdx+qDZMxPY3n92f3y5+X+Zm928gxXxI3w== dependencies: "@apollo/client" "^3.3.20" actioncable "^5.2.6" From c3be08faa1052962f818c9790e279a0d23ef109d Mon Sep 17 00:00:00 2001 From: Samuel Imolorhe Date: Fri, 15 Oct 2021 23:11:06 +0200 Subject: [PATCH 2/2] added retries and split github workflow --- .github/workflows/pr-e2e.yml | 46 ++++++++++++++++++++++++++++++++++++ .github/workflows/pr.yml | 10 +++----- 2 files changed, 49 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/pr-e2e.yml diff --git a/.github/workflows/pr-e2e.yml b/.github/workflows/pr-e2e.yml new file mode 100644 index 0000000000..9d68820129 --- /dev/null +++ b/.github/workflows/pr-e2e.yml @@ -0,0 +1,46 @@ +name: PR - e2e testing + +on: + push: + branches: + - master + pull_request: + +jobs: + test: + strategy: + matrix: + os: [macos-latest, ubuntu-latest] + node-version: [14.x] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} on ${{ matrix.os }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - name: restore lerna + uses: actions/cache@v2 + with: + path: | + node_modules + */*/node_modules + key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} + - run: yarn --frozen-lockfile + - uses: browser-actions/setup-chrome@latest + - name: Build apps (with retries) + uses: nick-invision/retry@v2 + with: + timeout_minutes: 15 + max_attempts: 3 + command: yarn build:ci + - name: Update webdriver (with retries) + uses: nick-invision/retry@v2 + with: + timeout_minutes: 15 + max_attempts: 3 + command: yarn lerna run --scope altair-app webdriver-update-ci + - name: Run headless e2e test + uses: GabrielBB/xvfb-action@v1 + with: + run: yarn lerna run --scope altair-app e2e:ci diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 8d9f5dbf4f..4ac3acc0ef 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -1,4 +1,4 @@ -name: PR +name: PR - testing on: push: @@ -28,7 +28,8 @@ jobs: key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} - run: yarn --frozen-lockfile - uses: browser-actions/setup-chrome@latest - - uses: nick-invision/retry@v2 + - name: Build apps (with retries) + uses: nick-invision/retry@v2 with: timeout_minutes: 15 max_attempts: 3 @@ -37,11 +38,6 @@ jobs: uses: GabrielBB/xvfb-action@v1 with: run: yarn test:ci - - run: yarn lerna run --scope altair-app webdriver-update-ci; - - name: Run headless e2e test - uses: GabrielBB/xvfb-action@v1 - with: - run: yarn lerna run --scope altair-app e2e:ci # https://github.com/marketplace/actions/deployment-action # deploy-surge: # runs-on: ubuntu-latest