feat(repo): add nightly tests for several node versions (#15908)

This commit is contained in:
Miroslav Jonaš 2023-03-28 17:33:49 +02:00 committed by GitHub
parent 15f6714ab0
commit ae3a55fbf7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 251 additions and 25 deletions

View File

@ -20,6 +20,18 @@ jobs:
os: os:
- ubuntu-latest - ubuntu-latest
- macos-latest - macos-latest
node_version:
- 19
- 18
- 16
exclude:
# run just node v18 on macos
- os: macos-latest
node_version: 19
- os: macos-latest
node_version: 16
name: Cache install (${{ matrix.os }}, node v${{ matrix.node_version }})
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v3
@ -27,14 +39,15 @@ jobs:
- name: Set node - name: Set node
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:
node-version: 16 node-version: ${{ matrix.node_version }}
- name: Cache node_modules - name: Cache node_modules
id: cache-modules id: cache-modules
uses: actions/cache@v3 uses: actions/cache@v3
with: with:
lookup-only: true
path: '**/node_modules' path: '**/node_modules'
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} key: ${{ runner.os }}-modules-${{ matrix.node_version }}-${{ hashFiles('**/yarn.lock') }}
- name: Install packages - name: Install packages
if: steps.cache-modules.outputs.cache-hit != 'true' if: steps.cache-modules.outputs.cache-hit != 'true'
@ -51,7 +64,9 @@ jobs:
- ubuntu-latest - ubuntu-latest
- macos-latest - macos-latest
node_version: node_version:
- '16' - 19
- 18
- 16
package_manager: package_manager:
- npm - npm
- yarn - yarn
@ -85,7 +100,7 @@ jobs:
- e2e-vite - e2e-vite
- e2e-webpack - e2e-webpack
- e2e-workspace-create - e2e-workspace-create
- e2e-e2e-workspace-create-npm - e2e-workspace-create-npm
include: include:
# os short names # os short names
- os: ubuntu-latest - os: ubuntu-latest
@ -149,7 +164,7 @@ jobs:
codeowners: 'S04SJ6PL98X' codeowners: 'S04SJ6PL98X'
- project: e2e-workspace-create - project: e2e-workspace-create
codeowners: 'S04SYHYKGNP' codeowners: 'S04SYHYKGNP'
- project: e2e-e2e-workspace-create-npm - project: e2e-workspace-create-npm
codeowners: 'S04SYHYKGNP' codeowners: 'S04SYHYKGNP'
exclude: exclude:
# exclude react-native tests from ubuntu # exclude react-native tests from ubuntu
@ -159,14 +174,123 @@ jobs:
project: e2e-detox project: e2e-detox
- os: ubuntu-latest - os: ubuntu-latest
project: e2e-expo project: e2e-expo
# run just npm v16 on macos # exclude non-CNW/Lerna tests from non-LTS node versions
- node_version: 16
project: e2e-add-nx-to-monorepo
- node_version: 16
project: e2e-angular-core
- node_version: 16
project: e2e-angular-extensions
- node_version: 16
project: e2e-cra-to-nx
- node_version: 16
project: e2e-cypress
- node_version: 16
project: e2e-detox
- node_version: 16
project: e2e-esbuild
- node_version: 16
project: e2e-expo
- node_version: 16
project: e2e-jest
- node_version: 16
project: e2e-js
- node_version: 16
project: e2e-linter
- node_version: 16
project: e2e-make-angular-cli-faster
- node_version: 16
project: e2e-next
- node_version: 16
project: e2e-node
- node_version: 16
project: e2e-nx-init
- node_version: 16
project: e2e-nx-misc
- node_version: 16
project: e2e-nx-plugin
- node_version: 16
project: e2e-lerna-smoke-tests
- node_version: 16
project: e2e-react
- node_version: 16
project: e2e-react-native
- node_version: 16
project: e2e-web
- node_version: 16
project: e2e-rollup
- node_version: 16
project: e2e-storybook
- node_version: 16
project: e2e-storybook-angular
- node_version: 16
project: e2e-vite
- node_version: 16
project: e2e-webpack
- node_version: 19
project: e2e-add-nx-to-monorepo
- node_version: 19
project: e2e-angular-core
- node_version: 19
project: e2e-angular-extensions
- node_version: 19
project: e2e-cra-to-nx
- node_version: 19
project: e2e-cypress
- node_version: 19
project: e2e-detox
- node_version: 19
project: e2e-esbuild
- node_version: 19
project: e2e-expo
- node_version: 19
project: e2e-jest
- node_version: 19
project: e2e-js
- node_version: 19
project: e2e-linter
- node_version: 19
project: e2e-make-angular-cli-faster
- node_version: 19
project: e2e-next
- node_version: 19
project: e2e-node
- node_version: 19
project: e2e-nx-init
- node_version: 19
project: e2e-nx-misc
- node_version: 19
project: e2e-nx-plugin
- node_version: 19
project: e2e-lerna-smoke-tests
- node_version: 19
project: e2e-react
- node_version: 19
project: e2e-react-native
- node_version: 19
project: e2e-web
- node_version: 19
project: e2e-rollup
- node_version: 19
project: e2e-storybook
- node_version: 19
project: e2e-storybook-angular
- node_version: 19
project: e2e-vite
- node_version: 19
project: e2e-webpack
# run just npm v18 on macos
- os: macos-latest - os: macos-latest
package_manager: yarn package_manager: yarn
- os: macos-latest - os: macos-latest
package_manager: pnpm package_manager: pnpm
- os: macos-latest
node_version: 16
- os: macos-latest
node_version: 19
fail-fast: false fail-fast: false
name: ${{ matrix.os_name }}/${{ matrix.package_manager }} ${{ join(matrix.project) }} name: ${{ matrix.os_name }}/${{ matrix.package_manager }}/${{ matrix.node_version }} ${{ join(matrix.project) }}
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v3
@ -191,7 +315,7 @@ jobs:
uses: actions/cache@v3 uses: actions/cache@v3
with: with:
path: '**/node_modules' path: '**/node_modules'
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} key: ${{ runner.os }}-modules-${{ matrix.node_version }}-${{ hashFiles('**/yarn.lock') }}
- name: Install packages - name: Install packages
if: steps.cache-modules.outputs.cache-hit != 'true' if: steps.cache-modules.outputs.cache-hit != 'true'
@ -318,13 +442,12 @@ jobs:
// message // message
let lastProject; let lastProject;
let result = ` let result = `
**Node** v16
\`\`\` \`\`\`
| Failed project | PM | OS | | Failed project | PM | OS | Node |
|--------------------------------|------|-------|`; |--------------------------------|------|-------|------|`;
failedProjects.forEach(matrix => { failedProjects.forEach(matrix => {
const project = matrix.project !== lastProject ? matrix.project : '...'; const project = matrix.project !== lastProject ? matrix.project : '...';
result += `\n| ${project.padEnd(30)} | ${matrix.package_manager.padEnd(4)} | ${matrix.os_name} |` result += `\n| ${project.padEnd(30)} | ${matrix.package_manager.padEnd(4)} | ${matrix.os_name} | v${matrix.node_version.pad(3)} |`
lastProject = matrix.project; lastProject = matrix.project;
}); });
result += `\`\`\``; result += `\`\`\``;

View File

@ -15,6 +15,14 @@ permissions: {}
jobs: jobs:
preinstall: preinstall:
runs-on: windows-latest runs-on: windows-latest
strategy:
matrix:
node_version:
- 19
- 18
- 16
name: Cache install (node v${{ matrix.node_version }})
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v3
@ -22,14 +30,14 @@ jobs:
- name: Set node - name: Set node
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:
node-version: 16 node-version: ${{ matrix.node_version }}
- name: Cache node_modules - name: Cache node_modules
id: cache-modules id: cache-modules
uses: actions/cache@v3 uses: actions/cache@v3
with: with:
path: '**/node_modules' path: '**/node_modules'
key: windows-modules-${{ hashFiles('**/yarn.lock') }} key: windows-modules-${{ matrix.node_version }}-${{ hashFiles('**/yarn.lock') }}
- name: Install packages - name: Install packages
if: steps.cache-modules.outputs.cache-hit != 'true' if: steps.cache-modules.outputs.cache-hit != 'true'
@ -44,7 +52,9 @@ jobs:
strategy: strategy:
matrix: matrix:
node_version: node_version:
- '16' - 19
- 18
- 16
package_manager: package_manager:
- npm - npm
project: project:
@ -73,7 +83,7 @@ jobs:
- e2e-vite - e2e-vite
- e2e-webpack - e2e-webpack
- e2e-workspace-create - e2e-workspace-create
- e2e-e2e-workspace-create-npm - e2e-workspace-create-npm
include: include:
# codeowner groups # codeowner groups
- project: e2e-add-nx-to-monorepo - project: e2e-add-nx-to-monorepo
@ -126,11 +136,105 @@ jobs:
codeowners: 'S04SJ6PL98X' codeowners: 'S04SJ6PL98X'
- project: e2e-workspace-create - project: e2e-workspace-create
codeowners: 'S04SYHYKGNP' codeowners: 'S04SYHYKGNP'
- project: e2e-e2e-workspace-create-npm - project: e2e-workspace-create-npm
codeowners: 'S04SYHYKGNP' codeowners: 'S04SYHYKGNP'
exclude:
# exclude non-CNW/Lerna tests from non-LTS node versions
- node_version: 16
project: e2e-add-nx-to-monorepo
- node_version: 16
project: e2e-angular-core
- node_version: 16
project: e2e-angular-extensions
- node_version: 16
project: e2e-cra-to-nx
- node_version: 16
project: e2e-cypress
- node_version: 16
project: e2e-esbuild
- node_version: 16
project: e2e-jest
- node_version: 16
project: e2e-js
- node_version: 16
project: e2e-linter
- node_version: 16
project: e2e-make-angular-cli-faster
- node_version: 16
project: e2e-next
- node_version: 16
project: e2e-node
- node_version: 16
project: e2e-nx-init
- node_version: 16
project: e2e-nx-misc
- node_version: 16
project: e2e-nx-plugin
- node_version: 16
project: e2e-lerna-smoke-tests
- node_version: 16
project: e2e-react
- node_version: 16
project: e2e-web
- node_version: 16
project: e2e-rollup
- node_version: 16
project: e2e-storybook
- node_version: 16
project: e2e-storybook-angular
- node_version: 16
project: e2e-vite
- node_version: 16
project: e2e-webpack
- node_version: 19
project: e2e-add-nx-to-monorepo
- node_version: 19
project: e2e-angular-core
- node_version: 19
project: e2e-angular-extensions
- node_version: 19
project: e2e-cra-to-nx
- node_version: 19
project: e2e-cypress
- node_version: 19
project: e2e-esbuild
- node_version: 19
project: e2e-jest
- node_version: 19
project: e2e-js
- node_version: 19
project: e2e-linter
- node_version: 19
project: e2e-make-angular-cli-faster
- node_version: 19
project: e2e-next
- node_version: 19
project: e2e-node
- node_version: 19
project: e2e-nx-init
- node_version: 19
project: e2e-nx-misc
- node_version: 19
project: e2e-nx-plugin
- node_version: 19
project: e2e-lerna-smoke-tests
- node_version: 19
project: e2e-react
- node_version: 19
project: e2e-web
- node_version: 19
project: e2e-rollup
- node_version: 19
project: e2e-storybook
- node_version: 19
project: e2e-storybook-angular
- node_version: 19
project: e2e-vite
- node_version: 19
project: e2e-webpack
fail-fast: false fail-fast: false
name: ${{ matrix.project }} name: ${{ matrix.project }} (v${{ matrix.node_version }})
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v3
@ -149,7 +253,7 @@ jobs:
uses: actions/cache@v3 uses: actions/cache@v3
with: with:
path: '**/node_modules' path: '**/node_modules'
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} key: ${{ runner.os }}-modules-${{ matrix.node_version }}-${{ hashFiles('**/yarn.lock') }}
- name: Install packages - name: Install packages
if: steps.cache-modules.outputs.cache-hit != 'true' if: steps.cache-modules.outputs.cache-hit != 'true'
@ -245,14 +349,13 @@ jobs:
// message // message
let result = ` let result = `
**Node** v16 *OS* Windows
**OS** Windows *Package manager* npm
**Package manager** npm
\`\`\` \`\`\`
| Failed project | | Failed project | Node |
|--------------------------------|`; |--------------------------------|------|`;
failedProjects.forEach(matrix => { failedProjects.forEach(matrix => {
result += `\n| ${matrix.project.padEnd(30)} |` result += `\n| ${matrix.project.padEnd(30)} | v${matrix.node_version.pad(3)} |`
}); });
result += `\`\`\``; result += `\`\`\``;
const message = result.split('\n').map(l => l.trim()).join('\n'); const message = result.split('\n').map(l => l.trim()).join('\n');