Merge pull request #4977 from microsoft/hediet/b/biological-antelope #2904
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: [push, pull_request] | |
jobs: | |
build: | |
name: CI | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- uses: actions/setup-node@v4 | |
with: | |
node-version-file: .nvmrc | |
- name: Cache node modules | |
id: cacheNodeModules | |
uses: actions/cache@v4 | |
with: | |
path: '**/node_modules' | |
key: ${{ runner.os }}-cacheNodeModules2-${{ hashFiles('**/package-lock.json', '**/package.json') }} | |
restore-keys: ${{ runner.os }}-cacheNodeModules2- | |
- name: Install build tools | |
if: steps.cache-node-modules.outputs.cache-hit != 'true' | |
run: | | |
sudo apt update -y | |
sudo apt install -y build-essential pkg-config libx11-dev libx11-xcb-dev libxkbfile-dev libnotify-bin libkrb5-dev | |
- name: execute `npm ci` (1) | |
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }} | |
env: | |
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 | |
ELECTRON_SKIP_BINARY_DOWNLOAD: 1 | |
run: | | |
npm ci | |
- name: Download Playwright | |
run: npx playwright install --with-deps | |
- name: execute `npm ci` (2) | |
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }} | |
run: npm ci --prefix webpack-plugin | |
# CI steps temporarily disabled (enable by end of august 2025) | |
# # <building-from-source> | |
# - name: Setup, Build & Test monaco-editor-core | |
# run: yarn ts-node ./scripts/ci/build-monaco-editor-core-pkg nightly | |
# env: | |
# VSCODE_REF: 'main' | |
# PRERELEASE_VERSION: 'dev-${today}' | |
# - name: Link monaco-editor-core | |
# run: npm link | |
# working-directory: ./dependencies/vscode/out-monaco-editor-core | |
# - name: Link monaco-editor-core | |
# run: npm link monaco-editor-core | |
# # </building-from-source> | |
# TODO: prettier formatting | |
# - name: Check prettier | |
# run: npm run prettier-check | |
- name: Build | |
run: npm run build | |
- name: Run unit tests | |
run: npm test | |
- name: Compile webpack plugin | |
run: npm run compile --prefix webpack-plugin | |
- name: Package using webpack plugin | |
run: npm run package-for-smoketest-webpack | |
- name: Package using esbuild | |
run: npm run package-for-smoketest-esbuild | |
- name: Package using vite | |
run: npm run package-for-smoketest-vite | |
# - name: Package using parcel | |
# run: npm run package-for-smoketest-parcel --prefix test/smoke/parcel | |
# Disabled for now, as the parcel bundler cannot deal with VS Code process variable | |
- name: Run smoke test | |
run: npm run smoketest | |
# - name: Install website node modules | |
# working-directory: website | |
# run: yarn install --frozen-lockfile | |
# - name: Build website | |
# working-directory: website | |
# run: yarn run build | |
# - name: Test website | |
# working-directory: website | |
# run: yarn test |