diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6544483c4cf..9c431549693 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,10 +11,11 @@ on: - release/* jobs: - hygiene: - name: Hygiene and Layering - runs-on: ubuntu-latest + windows: + name: Windows + runs-on: windows-latest env: + CHILD_CONCURRENCY: "1" GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v2 @@ -23,6 +24,10 @@ jobs: with: node-version: 12 + - uses: actions/setup-python@v2 + with: + python-version: "2.x" + - name: Compute node modules cache key id: nodeModulesCacheKey run: echo "::set-output name=value::$(node build/azure-pipelines/common/computeNodeModulesCacheKey.js)" @@ -51,11 +56,17 @@ jobs: ELECTRON_SKIP_BINARY_DOWNLOAD: 1 run: yarn --frozen-lockfile --network-timeout 180000 - - name: Run Hygiene Checks - run: yarn gulp hygiene + - name: Compile and Download + run: yarn npm-run-all --max_old_space_size=4095 -lp compile "electron x64" playwright-install download-builtin-extensions - - name: Run Valid Layers Checks - run: yarn valid-layers-check + - name: Run Unit Tests (Electron) + run: .\scripts\test.bat + + - name: Run Unit Tests (Browser) + run: yarn test-browser --browser chromium + + - name: Run Integration Tests (Electron) + run: .\scripts\test-integration.bat linux: name: Linux @@ -122,63 +133,6 @@ jobs: id: electron-integration-tests run: DISPLAY=:10 ./scripts/test-integration.sh - windows: - name: Windows - runs-on: windows-latest - env: - CHILD_CONCURRENCY: "1" - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - steps: - - uses: actions/checkout@v2 - - - uses: actions/setup-node@v2 - with: - node-version: 12 - - - uses: actions/setup-python@v2 - with: - python-version: "2.x" - - - name: Compute node modules cache key - id: nodeModulesCacheKey - run: echo "::set-output name=value::$(node build/azure-pipelines/common/computeNodeModulesCacheKey.js)" - - name: Cache node modules - id: cacheNodeModules - uses: actions/cache@v2 - with: - path: "**/node_modules" - key: ${{ runner.os }}-cacheNodeModules7-${{ steps.nodeModulesCacheKey.outputs.value }} - restore-keys: ${{ runner.os }}-cacheNodeModules7- - - name: Get yarn cache directory path - id: yarnCacheDirPath - if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }} - run: echo "::set-output name=dir::$(yarn cache dir)" - - name: Cache yarn directory - if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }} - uses: actions/cache@v2 - with: - path: ${{ steps.yarnCacheDirPath.outputs.dir }} - key: ${{ runner.os }}-yarnCacheDir-${{ steps.nodeModulesCacheKey.outputs.value }} - restore-keys: ${{ runner.os }}-yarnCacheDir- - - name: Execute yarn - if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }} - env: - PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 - ELECTRON_SKIP_BINARY_DOWNLOAD: 1 - run: yarn --frozen-lockfile --network-timeout 180000 - - - name: Compile and Download - run: yarn npm-run-all --max_old_space_size=4095 -lp compile "electron x64" playwright-install download-builtin-extensions - - - name: Run Unit Tests (Electron) - run: .\scripts\test.bat - - - name: Run Unit Tests (Browser) - run: yarn test-browser --browser chromium - - - name: Run Integration Tests (Electron) - run: .\scripts\test-integration.bat - darwin: name: macOS runs-on: macos-latest @@ -231,6 +185,52 @@ jobs: - name: Run Integration Tests (Electron) run: DISPLAY=:10 ./scripts/test-integration.sh + hygiene: + name: Hygiene and Layering + runs-on: ubuntu-latest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + steps: + - uses: actions/checkout@v2 + + - uses: actions/setup-node@v2 + with: + node-version: 12 + + - name: Compute node modules cache key + id: nodeModulesCacheKey + run: echo "::set-output name=value::$(node build/azure-pipelines/common/computeNodeModulesCacheKey.js)" + - name: Cache node modules + id: cacheNodeModules + uses: actions/cache@v2 + with: + path: "**/node_modules" + key: ${{ runner.os }}-cacheNodeModules7-${{ steps.nodeModulesCacheKey.outputs.value }} + restore-keys: ${{ runner.os }}-cacheNodeModules7- + - name: Get yarn cache directory path + id: yarnCacheDirPath + if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }} + run: echo "::set-output name=dir::$(yarn cache dir)" + - name: Cache yarn directory + if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }} + uses: actions/cache@v2 + with: + path: ${{ steps.yarnCacheDirPath.outputs.dir }} + key: ${{ runner.os }}-yarnCacheDir-${{ steps.nodeModulesCacheKey.outputs.value }} + restore-keys: ${{ runner.os }}-yarnCacheDir- + - name: Execute yarn + if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }} + env: + PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 + ELECTRON_SKIP_BINARY_DOWNLOAD: 1 + run: yarn --frozen-lockfile --network-timeout 180000 + + - name: Run Hygiene Checks + run: yarn gulp hygiene + + - name: Run Valid Layers Checks + run: yarn valid-layers-check + monaco: name: Monaco Editor runs-on: ubuntu-latest