mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-02 00:09:30 +01:00
The core-ci task requires reading some companion extension releases. This PR modifies the permissions to allow the build to read those releases.
157 lines
4.2 KiB
YAML
157 lines
4.2 KiB
YAML
name: Code OSS
|
|
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
- 'release/*'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
env:
|
|
VSCODE_QUALITY: 'oss'
|
|
|
|
jobs:
|
|
compile:
|
|
name: Compile & Hygiene
|
|
runs-on: [ self-hosted, 1ES.Pool=1es-vscode-oss-ubuntu-22.04-x64 ]
|
|
steps:
|
|
- name: Checkout microsoft/vscode
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v6
|
|
with:
|
|
node-version-file: .nvmrc
|
|
|
|
- name: Prepare node_modules cache key
|
|
run: mkdir -p .build && node build/azure-pipelines/common/computeNodeModulesCacheKey.ts compile $(node -p process.arch) > .build/packagelockhash
|
|
|
|
- name: Restore node_modules cache
|
|
id: cache-node-modules
|
|
uses: actions/cache/restore@v5
|
|
with:
|
|
path: .build/node_modules_cache
|
|
key: "node_modules-compile-${{ hashFiles('.build/packagelockhash') }}"
|
|
|
|
- name: Extract node_modules cache
|
|
if: steps.cache-node-modules.outputs.cache-hit == 'true'
|
|
run: tar -xzf .build/node_modules_cache/cache.tgz
|
|
|
|
- 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: Install dependencies
|
|
if: steps.cache-node-modules.outputs.cache-hit != 'true'
|
|
run: |
|
|
set -e
|
|
|
|
for i in {1..5}; do # try 5 times
|
|
npm ci && break
|
|
if [ $i -eq 5 ]; then
|
|
echo "Npm install failed too many times" >&2
|
|
exit 1
|
|
fi
|
|
echo "Npm install failed $i, trying again..."
|
|
done
|
|
env:
|
|
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
|
|
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Create node_modules archive
|
|
if: steps.cache-node-modules.outputs.cache-hit != 'true'
|
|
run: |
|
|
set -e
|
|
node build/azure-pipelines/common/listNodeModules.ts .build/node_modules_list.txt
|
|
mkdir -p .build/node_modules_cache
|
|
tar -czf .build/node_modules_cache/cache.tgz --files-from .build/node_modules_list.txt
|
|
|
|
- name: Type check /build/ scripts
|
|
run: npm run typecheck
|
|
working-directory: build
|
|
|
|
- name: Compile & Hygiene
|
|
run: npm exec -- npm-run-all2 -lp core-ci hygiene eslint valid-layers-check define-class-fields-check vscode-dts-compile-check tsec-compile-check test-build-scripts
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Check cyclic dependencies
|
|
run: node build/lib/checkCyclicDependencies.ts out-build
|
|
|
|
linux-cli-tests:
|
|
name: Linux
|
|
uses: ./.github/workflows/pr-linux-cli-test.yml
|
|
with:
|
|
job_name: CLI
|
|
rustup_toolchain: 1.88
|
|
|
|
linux-electron-tests:
|
|
name: Linux
|
|
uses: ./.github/workflows/pr-linux-test.yml
|
|
with:
|
|
job_name: Electron
|
|
electron_tests: true
|
|
|
|
linux-browser-tests:
|
|
name: Linux
|
|
uses: ./.github/workflows/pr-linux-test.yml
|
|
with:
|
|
job_name: Browser
|
|
browser_tests: true
|
|
|
|
linux-remote-tests:
|
|
name: Linux
|
|
uses: ./.github/workflows/pr-linux-test.yml
|
|
with:
|
|
job_name: Remote
|
|
remote_tests: true
|
|
|
|
macos-electron-tests:
|
|
name: macOS
|
|
uses: ./.github/workflows/pr-darwin-test.yml
|
|
with:
|
|
job_name: Electron
|
|
electron_tests: true
|
|
|
|
macos-browser-tests:
|
|
name: macOS
|
|
uses: ./.github/workflows/pr-darwin-test.yml
|
|
with:
|
|
job_name: Browser
|
|
browser_tests: true
|
|
|
|
macos-remote-tests:
|
|
name: macOS
|
|
uses: ./.github/workflows/pr-darwin-test.yml
|
|
with:
|
|
job_name: Remote
|
|
remote_tests: true
|
|
|
|
windows-electron-tests:
|
|
name: Windows
|
|
uses: ./.github/workflows/pr-win32-test.yml
|
|
with:
|
|
job_name: Electron
|
|
electron_tests: true
|
|
|
|
windows-browser-tests:
|
|
name: Windows
|
|
uses: ./.github/workflows/pr-win32-test.yml
|
|
with:
|
|
job_name: Browser
|
|
browser_tests: true
|
|
|
|
windows-remote-tests:
|
|
name: Windows
|
|
uses: ./.github/workflows/pr-win32-test.yml
|
|
with:
|
|
job_name: Remote
|
|
remote_tests: true
|