mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-24 18:49:00 +01:00
284 lines
11 KiB
YAML
284 lines
11 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- release/*
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
- release/*
|
|
|
|
jobs:
|
|
linux:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
# TODO: rename azure-pipelines/linux/xvfb.init to github-actions
|
|
- name: Setup Build Environment
|
|
- run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y libxkbfile-dev pkg-config libsecret-1-dev libxss1 dbus xvfb libgtk-3-0 libgbm1
|
|
sudo cp build/azure-pipelines/linux/xvfb.init /etc/init.d/xvfb
|
|
sudo chmod +x /etc/init.d/xvfb
|
|
sudo update-rc.d xvfb defaults
|
|
sudo service xvfb start
|
|
name: Setup Build Environment
|
|
|
|
- uses: actions/setup-node@v2-beta
|
|
with:
|
|
node-version: 12
|
|
|
|
- name: Compute yarn cache key
|
|
id: yarn-cache-key
|
|
run: echo "::set-output name=value::${{ hashFiles('**/yarn.lock', '.yarnrc', 'remote/.yarnrc') }}"
|
|
|
|
- name: Cache node modules
|
|
id: node-modules-cache # use this to check for `cache-hit` (`steps.node-modules-cache.outputs.cache-hit != 'true'`)
|
|
uses: actions/cache@v2
|
|
env:
|
|
cache-name: node-modules-cache
|
|
with:
|
|
path: |
|
|
./node_modules
|
|
./build/node_modules
|
|
./build/lib/watch/node_modules
|
|
./extensions/node_modules
|
|
./extensions/configuration-editing/node_modules
|
|
./extensions/css-language-features/node_modules
|
|
./extensions/css-language-features/server/node_modules
|
|
./extensions/debug-auto-launch/node_modules
|
|
./extensions/debug-server-ready/node_modules
|
|
./extensions/emmet/node_modules
|
|
./extensions/extension-editing/node_modules
|
|
./extensions/git/node_modules
|
|
./extensions/git-ui/node_modules
|
|
./extensions/github/node_modules
|
|
./extensions/github-authentication/node_modules
|
|
./extensions/grunt/node_modules
|
|
./extensions/gulp/node_modules
|
|
./extensions/html-language-features/node_modules
|
|
./extensions/html-language-features/server/node_modules
|
|
./extensions/image-preview/node_modules
|
|
./extensions/jake/node_modules
|
|
./extensions/json-language-features/node_modules
|
|
./extensions/json-language-features/server/node_modules
|
|
./extensions/markdown-language-features/node_modules
|
|
./extensions/merge-conflict/node_modules
|
|
./extensions/microsoft-authentication/node_modules
|
|
./extensions/npm/node_modules
|
|
./extensions/php-language-features/node_modules
|
|
./extensions/search-result/node_modules
|
|
./extensions/typescript-language-features/node_modules
|
|
./extensions/vscode-api-tests/node_modules
|
|
./extensions/vscode-colorize-tests/node_modules
|
|
./extensions/vscode-custom-editor-tests/node_modules
|
|
./extensions/vscode-notebook-tests/node_modules
|
|
./extensions/vscode-test-resolver/node_modules
|
|
./remote/node_modules
|
|
./remote/web/node_modules
|
|
./test/automation/node_modules
|
|
./test/integration/browser/node_modules
|
|
./test/smoke/node_modules
|
|
./test/ui/splitview/node_modules
|
|
./test/ui/tree/node_modules
|
|
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ steps.yarn-cache-key.outputs.value }}
|
|
restore-keys: |
|
|
${{ runner.os }}-build-${{ env.cache-name }}-
|
|
${{ runner.os }}-build-
|
|
${{ runner.os }}-
|
|
|
|
- name: Install Dependencies
|
|
if: ${{ steps.node-modules-cache.outputs.cache-hit != 'true' }}
|
|
run: yarn --frozen-lockfile
|
|
|
|
- name: Compile /build/ folder
|
|
# this normally executes as a postinstall script, but if the cache is hit above,
|
|
# yarn will not execute at all. Therefore, we manually launch it if necessary
|
|
if: ${{ steps.node-modules-cache.outputs.cache-hit == 'true' }}
|
|
run: yarn run compile
|
|
working-directory: ./build
|
|
|
|
- name: Download Electron
|
|
run: yarn electron x64
|
|
|
|
- name: Run Hygiene Checks
|
|
run: yarn gulp hygiene
|
|
|
|
- name: Run Monaco Editor Checks
|
|
run: yarn monaco-compile-check
|
|
|
|
- name: Run Valid Layers Checks
|
|
run: yarn valid-layers-check
|
|
|
|
- name: Compile Sources
|
|
run: yarn compile
|
|
|
|
- name: Download Built-in Extensions
|
|
run: yarn download-builtin-extensions
|
|
|
|
- name: Run Unit Tests (Electron)
|
|
run: DISPLAY=:10 ./scripts/test.sh
|
|
|
|
- name: Run Unit Tests (Browser)
|
|
run: DISPLAY=:10 yarn test-browser --browser chromium
|
|
|
|
- name: Run Integration Tests (Electron)
|
|
run: DISPLAY=:10 ./scripts/test-integration.sh
|
|
|
|
# windows:
|
|
# runs-on: windows-2016
|
|
# env:
|
|
# CHILD_CONCURRENCY: "1"
|
|
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
# steps:
|
|
# - uses: actions/checkout@v1
|
|
# - uses: actions/setup-node@v1
|
|
# with:
|
|
# node-version: 10
|
|
# - uses: actions/setup-python@v1
|
|
# with:
|
|
# python-version: '2.x'
|
|
# - run: yarn --frozen-lockfile
|
|
# name: Install Dependencies
|
|
# - run: yarn electron
|
|
# name: Download Electron
|
|
# - run: yarn gulp hygiene
|
|
# name: Run Hygiene Checks
|
|
# - run: yarn monaco-compile-check
|
|
# name: Run Monaco Editor Checks
|
|
# - run: yarn valid-layers-check
|
|
# name: Run Valid Layers Checks
|
|
# - run: yarn compile
|
|
# name: Compile Sources
|
|
# - run: yarn download-builtin-extensions
|
|
# name: Download Built-in Extensions
|
|
# - run: .\scripts\test.bat --tfs "Unit Tests"
|
|
# name: Run Unit Tests (Electron)
|
|
# - run: yarn test-browser --browser chromium
|
|
# name: Run Unit Tests (Browser)
|
|
# - run: .\scripts\test-integration.bat --tfs "Integration Tests"
|
|
# name: Run Integration Tests (Electron)
|
|
|
|
# darwin:
|
|
# runs-on: macos-latest
|
|
# env:
|
|
# CHILD_CONCURRENCY: "1"
|
|
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
# steps:
|
|
# - uses: actions/checkout@v1
|
|
# - uses: actions/setup-node@v1
|
|
# with:
|
|
# node-version: 10
|
|
# - run: yarn --frozen-lockfile
|
|
# name: Install Dependencies
|
|
# - run: yarn electron x64
|
|
# name: Download Electron
|
|
# - run: yarn gulp hygiene
|
|
# name: Run Hygiene Checks
|
|
# - run: yarn monaco-compile-check
|
|
# name: Run Monaco Editor Checks
|
|
# - run: yarn valid-layers-check
|
|
# name: Run Valid Layers Checks
|
|
# - run: yarn compile
|
|
# name: Compile Sources
|
|
# - run: yarn download-builtin-extensions
|
|
# name: Download Built-in Extensions
|
|
# - run: ./scripts/test.sh --tfs "Unit Tests"
|
|
# name: Run Unit Tests (Electron)
|
|
# - run: yarn test-browser --browser chromium --browser webkit
|
|
# name: Run Unit Tests (Browser)
|
|
# - run: ./scripts/test-integration.sh --tfs "Integration Tests"
|
|
# name: Run Integration Tests (Electron)
|
|
|
|
monaco:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- uses: actions/setup-node@v2-beta
|
|
with:
|
|
node-version: 12
|
|
|
|
- name: Compute yarn cache key
|
|
id: yarn-cache-key
|
|
run: echo "::set-output name=value::${{ hashFiles('**/yarn.lock', '.yarnrc', 'remote/.yarnrc') }}"
|
|
|
|
- name: Cache node modules
|
|
id: node-modules-cache # use this to check for `cache-hit` (`steps.node-modules-cache.outputs.cache-hit != 'true'`)
|
|
uses: actions/cache@v2
|
|
env:
|
|
cache-name: node-modules-cache
|
|
with:
|
|
path: |
|
|
./node_modules
|
|
./build/node_modules
|
|
./build/lib/watch/node_modules
|
|
./extensions/node_modules
|
|
./extensions/configuration-editing/node_modules
|
|
./extensions/css-language-features/node_modules
|
|
./extensions/css-language-features/server/node_modules
|
|
./extensions/debug-auto-launch/node_modules
|
|
./extensions/debug-server-ready/node_modules
|
|
./extensions/emmet/node_modules
|
|
./extensions/extension-editing/node_modules
|
|
./extensions/git/node_modules
|
|
./extensions/git-ui/node_modules
|
|
./extensions/github/node_modules
|
|
./extensions/github-authentication/node_modules
|
|
./extensions/grunt/node_modules
|
|
./extensions/gulp/node_modules
|
|
./extensions/html-language-features/node_modules
|
|
./extensions/html-language-features/server/node_modules
|
|
./extensions/image-preview/node_modules
|
|
./extensions/jake/node_modules
|
|
./extensions/json-language-features/node_modules
|
|
./extensions/json-language-features/server/node_modules
|
|
./extensions/markdown-language-features/node_modules
|
|
./extensions/merge-conflict/node_modules
|
|
./extensions/microsoft-authentication/node_modules
|
|
./extensions/npm/node_modules
|
|
./extensions/php-language-features/node_modules
|
|
./extensions/search-result/node_modules
|
|
./extensions/typescript-language-features/node_modules
|
|
./extensions/vscode-api-tests/node_modules
|
|
./extensions/vscode-colorize-tests/node_modules
|
|
./extensions/vscode-custom-editor-tests/node_modules
|
|
./extensions/vscode-notebook-tests/node_modules
|
|
./extensions/vscode-test-resolver/node_modules
|
|
./remote/node_modules
|
|
./remote/web/node_modules
|
|
./test/automation/node_modules
|
|
./test/integration/browser/node_modules
|
|
./test/smoke/node_modules
|
|
./test/ui/splitview/node_modules
|
|
./test/ui/tree/node_modules
|
|
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ steps.yarn-cache-key.outputs.value }}
|
|
restore-keys: |
|
|
${{ runner.os }}-build-${{ env.cache-name }}-
|
|
${{ runner.os }}-build-
|
|
${{ runner.os }}-
|
|
|
|
- name: Install Dependencies
|
|
if: ${{ steps.node-modules-cache.outputs.cache-hit != 'true' }}
|
|
run: yarn --frozen-lockfile
|
|
|
|
- name: Compile /build/ folder
|
|
# this normally executes as a postinstall script, but if the cache is hit above,
|
|
# yarn will not execute at all. Therefore, we manually launch it if necessary
|
|
if: ${{ steps.node-modules-cache.outputs.cache-hit == 'true' }}
|
|
run: yarn run compile
|
|
working-directory: ./build
|
|
|
|
- name: Run Monaco Editor Checks
|
|
run: yarn monaco-compile-check
|
|
|
|
- name: Editor Distro & ESM Bundle
|
|
run: yarn gulp editor-esm-bundle
|