Skip to content

Update node to latest #130

Update node to latest

Update node to latest #130

Workflow file for this run

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