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 # - 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 # # 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