V8 now relies on abseil #132
This file contains 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: node | |
on: push | |
env: | |
WIN_SDK_VERSION: 22621 | |
jobs: | |
build: | |
needs: [vs-toolchain] | |
runs-on: ${{ fromJson('{"linux":"ubuntu-22.04","mac":"macos-12","win":"ubuntu-22.04"}')[matrix.targetOs] }} | |
continue-on-error: false | |
strategy: | |
fail-fast: false | |
matrix: | |
targetOs: [linux, mac, win] | |
arch: [x64, arm64] | |
include: | |
- targetOs: linux | |
arch: x86 | |
- targetOs: win | |
arch: x86 | |
steps: | |
- name: Prepare to Install Linux Dependencies | |
if: runner.os == 'Linux' | |
run: sudo apt update | |
- name: Install Linux Dependencies | |
if: runner.os == 'Linux' && matrix.targetOs == 'win' | |
# Needed for running ciopfs, used when setup vs toolchain. | |
run: sudo apt install -y fuse | |
- name: Install Linux Cross Compilation Toolchains | |
if: runner.os == 'linux' && matrix.arch != 'x64' | |
run: sudo apt install -y gcc-multilib g++-multilib | |
- name: Install Linux Arm Toolchains | |
if: matrix.targetOs == 'linux' && startsWith(matrix.arch, 'arm') | |
run: sudo apt install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf libc6-dev-armhf-cross linux-libc-dev-armhf-cross binutils-aarch64-linux-gnu | |
- uses: actions/setup-python@v3 | |
with: | |
python-version: '3.x' | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Maximize Build Space | |
if: matrix.targetOs == 'win' | |
uses: hirnidrin/free-disk-space@main | |
- name: Get Windows SDK | |
if: matrix.targetOs == 'win' | |
uses: actions/cache/restore@v3 | |
with: | |
path: '*.zip' | |
key: vs-toolchain-${{ env.WIN_SDK_VERSION }} | |
fail-on-cache-miss: true | |
enableCrossOsArchive: true | |
- name: Build | |
run: | | |
node scripts/bootstrap.js --target-os=${{ matrix.targetOs }} --target-cpu=${{ matrix.arch }} --node-repo=https://github.com/zcbenz/node --node-commit=patch-gn-2 | |
node scripts/build.js | |
- name: Run Tests | |
if: matrix.arch == 'x64' && (matrix.targetOs == 'linux' || matrix.targetOs == 'mac') | |
run: | | |
node scripts/build.js node_cctest node_embedtest overlapped_checker | |
cd node | |
../out/Release/node_cctest | |
../out/Release/node_embedtest 'require("./test/embedding/test-embedding.js")' | |
# TODO(zcbenz): Fix the tests. | |
./tools/test.py --shell ../out/Release/node --flaky-tests=dontcare --skip-tests=parallel/test-crypto-no-algorithm,parallel/test-process-config,parallel/test-process-versions,parallel/test-snapshot-basic,test/parallel/test-v8-serialize-leak,sequential/test-watch-mode-inspect | |
vs-toolchain: | |
runs-on: windows-2022 | |
continue-on-error: false | |
steps: | |
- name: Check cache | |
id: check-cache | |
# It is not job failure when this step fails. | |
continue-on-error: true | |
env: | |
GH_TOKEN: ${{ github.token }} | |
shell: bash | |
run: | | |
# Check if vs-toolchain has been generated before. | |
gh extension install actions/gh-actions-cache | |
gh actions-cache list --repo $GITHUB_REPOSITORY | grep -q vs-toolchain-$WIN_SDK_VERSION | |
- name: Validate branch | |
if: steps.check-cache.outcome == 'failure' | |
run: | | |
# GitHub limits where cache is accessible, we don't want to create | |
# vs toolchain for every branch so force creating one on main branch. | |
if (${env:GITHUB_BASE_REF}) { | |
$env:GIT_BRANCH = ${env:GITHUB_BASE_REF} | |
} else { | |
$env:GIT_BRANCH = ${env:GITHUB_REF} -replace '^refs/heads/', '' | |
} | |
if (${env:GIT_BRANCH} -ne 'main') { | |
Write-Output 'Can not create vs-toolchain in a sub-branch, please re-run the main branch job.' | |
Write-Output "The value of GIT_BRANCH is: ${env:GIT_BRANCH}." | |
Exit 1 | |
} | |
- name: Checkout | |
if: steps.check-cache.outcome == 'failure' | |
uses: actions/checkout@v3 | |
with: | |
repository: yue/build-gn | |
- name: Generate Windows SDK package | |
if: steps.check-cache.outcome == 'failure' | |
# See: https://chromium.googlesource.com/chromium/src/+/master/docs/win_cross.md | |
run: python third_party/depot_tools/win_toolchain/package_from_installed.py 2022 -w 10.0.${env:WIN_SDK_VERSION}.0 | |
- name: Save to cache | |
uses: actions/cache/save@v3 | |
if: steps.check-cache.outcome == 'failure' | |
with: | |
path: '*.zip' | |
key: vs-toolchain-${{ env.WIN_SDK_VERSION }} | |
enableCrossOsArchive: true |