From f0a45710b9cec5ef04662035aacb7ab11e01a3db Mon Sep 17 00:00:00 2001 From: Philip Langer Date: Sat, 30 Sep 2023 22:06:17 +0200 Subject: [PATCH 1/3] Add smoke test for production build Currently we don't seem to have any automated test that verifies whether the production build works as expected. For a recent issue and its root cause, which remained unrevealed by the CI, see https://github.com/eclipse-theia/theia/issues/12962 Contributed on behalf of STMicroelectronics Change-Id: Ia2fdb54873344e5d0da12522441a649b6b90bdac --- .github/workflows/production-smoke-test.yml | 54 +++++++++++++++++++++ examples/browser/package.json | 2 + 2 files changed, 56 insertions(+) create mode 100644 .github/workflows/production-smoke-test.yml diff --git a/.github/workflows/production-smoke-test.yml b/.github/workflows/production-smoke-test.yml new file mode 100644 index 0000000000000..d3c5c6ec45ff1 --- /dev/null +++ b/.github/workflows/production-smoke-test.yml @@ -0,0 +1,54 @@ +name: Production Build Smoke Test + +on: + push: + branches: + - master + workflow_dispatch: + pull_request: + branches: + - master + schedule: + - cron: "0 5 * * *" # Runs every day at 5am: https://docs.github.com/en/actions/reference/events-that-trigger-workflows#scheduled-events-schedule + +jobs: + build-and-test-playwright: + name: Smoke Test for Browser Example Production Build on ubuntu-latest with Node.js 18.x + + runs-on: ubuntu-latest + timeout-minutes: 60 + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Use Node.js "18.x" + uses: actions/setup-node@v3 + with: + node-version: "18.x" + registry-url: "https://registry.npmjs.org" + + - name: Use Python 3.x + uses: actions/setup-python@v4 + with: + python-version: "3.x" + + - name: Build Browser Example Application for Production + shell: bash + run: | + yarn global add node-gyp + yarn --skip-integrity-check --network-timeout 100000 + yarn browser build:production + env: + NODE_OPTIONS: --max_old_space_size=4096 + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # https://github.com/microsoft/vscode-ripgrep/issues/9 + + - name: Build Playwright + shell: bash + run: | + yarn --cwd examples/playwright build + + - name: Run Smoke Test (examples/playwright/src/tests/theia-app) + uses: GabrielBB/xvfb-action@v1 + with: + run: yarn test:playwright theia-app diff --git a/examples/browser/package.json b/examples/browser/package.json index f6f11f9022459..64edd20e9770c 100644 --- a/examples/browser/package.json +++ b/examples/browser/package.json @@ -62,7 +62,9 @@ "scripts": { "clean": "theia clean", "build": "yarn -s compile && yarn -s bundle", + "build:production": "yarn -s compile && yarn -s bundle:production", "bundle": "yarn rebuild && theia build --mode development", + "bundle:production": "yarn rebuild && theia build --mode production", "compile": "tsc -b", "coverage": "yarn -s test --test-coverage && yarn -s coverage:report", "coverage:clean": "rimraf .nyc_output && rimraf coverage", From 7ddcd87354ad6307043703044e4579a258a3bdd7 Mon Sep 17 00:00:00 2001 From: Philip Langer Date: Fri, 10 Nov 2023 08:42:49 +0100 Subject: [PATCH 2/3] Pin Python version https://github.com/eclipse-theia/theia/issues/13008 --- .github/workflows/production-smoke-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/production-smoke-test.yml b/.github/workflows/production-smoke-test.yml index d3c5c6ec45ff1..e886c4eb69030 100644 --- a/.github/workflows/production-smoke-test.yml +++ b/.github/workflows/production-smoke-test.yml @@ -28,10 +28,10 @@ jobs: node-version: "18.x" registry-url: "https://registry.npmjs.org" - - name: Use Python 3.x + - name: Use Python 3.11 uses: actions/setup-python@v4 with: - python-version: "3.x" + python-version: "3.11" - name: Build Browser Example Application for Production shell: bash From deee989aff9a6a462d39b3b99f25abe100a20321 Mon Sep 17 00:00:00 2001 From: Philip Langer Date: Thu, 16 Nov 2023 13:50:18 +0100 Subject: [PATCH 3/3] Remove periodic run --- .github/workflows/production-smoke-test.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/production-smoke-test.yml b/.github/workflows/production-smoke-test.yml index e886c4eb69030..216d39f841422 100644 --- a/.github/workflows/production-smoke-test.yml +++ b/.github/workflows/production-smoke-test.yml @@ -8,8 +8,6 @@ on: pull_request: branches: - master - schedule: - - cron: "0 5 * * *" # Runs every day at 5am: https://docs.github.com/en/actions/reference/events-that-trigger-workflows#scheduled-events-schedule jobs: build-and-test-playwright: