From d462fb2fb953fcbffffb3813453b282dd1437728 Mon Sep 17 00:00:00 2001 From: Orta Therox Date: Mon, 6 Jul 2020 12:24:33 -0400 Subject: [PATCH] Split the GH actions CI into multiple stages (#39210) * Split the GH actions CI into multiple stages * Add the -- for npm * Improve the CI reports * Use stylish formatting on CI * Break TSC instead * Try add the problem register for TSC only on node 12 * Fix GH Actions syntax maybe --- .github/tsc.json | 18 ++++++++++++++++++ .github/workflows/ci.yml | 19 +++++++++++++------ Gulpfile.js | 11 +++++++++-- 3 files changed, 40 insertions(+), 8 deletions(-) create mode 100644 .github/tsc.json diff --git a/.github/tsc.json b/.github/tsc.json new file mode 100644 index 00000000000..158f7e83d3a --- /dev/null +++ b/.github/tsc.json @@ -0,0 +1,18 @@ +{ + "problemMatcher": [ + { + "owner": "tsc", + "pattern": [ + { + "regexp": "^(?:\\s+\\d+\\>)?([^\\s].*)\\((\\d+),(\\d+)\\)\\s*:\\s+(error|warning|info)\\s+(\\w{1,2}\\d+)\\s*:\\s*(.*)$", + "file": 1, + "line": 2, + "column": 3, + "severity": 4, + "code": 5, + "message": 6 + } + ] + } + ] +} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 251303b0c95..2a08d7bd3d1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,12 +30,19 @@ jobs: run: | npm uninstall typescript --no-save npm uninstall tslint --no-save - - name: npm install and test - run: | - npm install - npm update - npm test - + - run: npm install + - run: npm update + + # Re: https://github.com/actions/setup-node/pull/125 + - name: Register Problem Matcher for TSC + run: echo "##[add-matcher].github/tsc.json" + + - name: Tests + run: npm test -- --no-lint + + - name: Linter + run: npm run lint:ci + - name: Validate the browser can import TypeScript run: gulp test-browser-integration \ No newline at end of file diff --git a/Gulpfile.js b/Gulpfile.js index 095ea5025c4..41f193261e9 100644 --- a/Gulpfile.js +++ b/Gulpfile.js @@ -354,7 +354,6 @@ const eslint = (folder) => async () => { "node_modules/eslint/bin/eslint", "--cache", "--cache-location", `${folder}/.eslintcache`, - "--format", "autolinkable-stylish", "--rulesdir", "scripts/eslint/built/rules", "--ext", ".ts", ]; @@ -363,11 +362,19 @@ const eslint = (folder) => async () => { args.push("--fix"); } + // Use stylish format on CI, so that it can be picked up by GH Action's rule matchers + if (cmdLineOptions.ci) { + args.push("--format", "stylish"); + } + else { + args.push("--format", "autolinkable-stylish"); + } + args.push(folder); log(`Linting: ${args.join(" ")}`); return exec(process.execPath, args); -} +}; const lintScripts = eslint("scripts"); lintScripts.displayName = "lint-scripts";