From 592dca91969f2c1389752d4d09857fa74c9c82fb Mon Sep 17 00:00:00 2001 From: Sam Zhou Date: Mon, 22 Jun 2020 05:32:22 -0400 Subject: [PATCH] chore(v2): Implement a simple E2E testing mechanism for `docusausus start` (#2950) * chore(v2): Implement a simple E2E testing mechanism for `docusausus start` * Detect compiler errors --- .github/workflows/e2e-test.yml | 4 ++++ packages/docusaurus/src/commands/start.ts | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/.github/workflows/e2e-test.yml b/.github/workflows/e2e-test.yml index 3e8d666633..5c84da46cc 100644 --- a/.github/workflows/e2e-test.yml +++ b/.github/workflows/e2e-test.yml @@ -26,6 +26,10 @@ jobs: run: yarn - name: Setup test-website project against master release run: yarn test:build:v2 + - name: Start test-website project + run: cd test-website && yarn start --no-open + env: + E2E_TEST: true - name: Build test-website project run: cd test-website && yarn build env: diff --git a/packages/docusaurus/src/commands/start.ts b/packages/docusaurus/src/commands/start.ts index 2c34ab05b2..b3433cfe74 100644 --- a/packages/docusaurus/src/commands/start.ts +++ b/packages/docusaurus/src/commands/start.ts @@ -165,6 +165,16 @@ export default async function start( ...config.devServer, }; const compiler = webpack(config); + if (process.env.E2E_TEST) { + compiler.hooks.done.tap('done', (stats) => { + if (stats.hasErrors()) { + console.log('E2E_TEST: Project has compiler errors.'); + process.exit(1); + } + console.log('E2E_TEST: Project can compile.'); + process.exit(0); + }); + } const devServer = new WebpackDevServer(compiler, devServerConfig); devServer.listen(port, host, (err) => { if (err) {