Build Node.js Headers for caching #104
Workflow file for this run
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: Build MacOS | |
on: | |
push: | |
branches: | |
- gh-mac-runner | |
env: | |
GCLIENT_EXTRA_ARGS: '--custom-var=checkout_mac=True --custom-var=host_os=mac --custom-var=host_cpu=arm64' | |
IS_RELEASE: false | |
# GENERATE_SYMBOLS: true only on release builds | |
GENERATE_SYMBOLS: false | |
AZURE_STORAGE_ACCOUNT: ${{ secrets.AZURE_STORAGE_ACCOUNT }} | |
AZURE_STORAGE_KEY: ${{ secrets.AZURE_STORAGE_KEY }} | |
AZURE_STORAGE_CONTAINER_NAME: ${{ secrets.AZURE_STORAGE_CONTAINER_NAME }} | |
ELECTRON_RBE_JWT: ${{ secrets.ELECTRON_RBE_JWT }} | |
# TODO: this should be set to the correct GN_CONFIG for the build type. | |
GN_CONFIG: //electron/build/args/testing.gn | |
GN_EXTRA_ARGS: 'target_cpu = "arm64"' | |
# Disable pre-compiled headers to reduce out size - only useful for rebuilds | |
GN_BUILDFLAG_ARGS: 'enable_precompiled_headers = false' | |
jobs: | |
checkout: | |
runs-on: LargeLinuxRunner | |
steps: | |
- name: Checkout Electron | |
uses: actions/checkout@v4 | |
with: | |
path: src/electron | |
- name: Enable ssh Debugging | |
if: runner.debug == 1 | |
uses: mxschmitt/action-tmate@v3 | |
with: | |
detached: true | |
limit-access-to-actor: true | |
- name: Install Azure CLI | |
run: | | |
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash | |
- name: Set GIT_CACHE_PATH to make gclient to use the cache | |
run: | | |
echo "GIT_CACHE_PATH=$(pwd)/git-cache" >> $GITHUB_ENV | |
- name: Setup Node.js/npm | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18.18.x | |
cache: yarn | |
cache-dependency-path: src/electron/yarn.lock | |
- name: Install Dependencies | |
run: | | |
cd src/electron | |
node script/yarn install | |
- name: Get Depot Tools | |
run: | | |
git clone --depth=1 https://chromium.googlesource.com/chromium/tools/depot_tools.git | |
if [ "`uname`" == "Darwin" ]; then | |
# remove ninjalog_uploader_wrapper.py from autoninja since we don't use it and it causes problems | |
sed -i '' '/ninjalog_uploader_wrapper.py/d' ./depot_tools/autoninja | |
else | |
sed -i '/ninjalog_uploader_wrapper.py/d' ./depot_tools/autoninja | |
# Remove swift-format dep from cipd on macOS until we send a patch upstream. | |
cd depot_tools | |
git apply --3way ../src/electron/.github/workflows/config/gclient.diff | |
fi | |
# Ensure depot_tools does not update. | |
test -d depot_tools && cd depot_tools | |
touch .disable_auto_update | |
- name: Add Depot Tools to PATH | |
run: echo "$(pwd)/depot_tools" >> $GITHUB_PATH | |
- name: Generate DEPS Hash | |
run: | | |
node src/electron/script/generate-deps-hash.js && cat src/electron/.depshash-target | |
echo "DEPSHASH=v1-src-cache-$(shasum src/electron/.depshash | cut -f1 -d' ')" >> $GITHUB_ENV | |
- name: Check If Cache Exists | |
id: check-cache | |
run: | | |
exists_json=$(az storage blob exists \ | |
--account-name $AZURE_STORAGE_ACCOUNT \ | |
--account-key $AZURE_STORAGE_KEY \ | |
--container-name $AZURE_STORAGE_CONTAINER_NAME \ | |
--name $DEPSHASH) | |
cache_exists=$(echo $exists_json | jq -r '.exists') | |
echo "cache_exists=$cache_exists" >> $GITHUB_OUTPUT | |
if (test "$cache_exists" = "true"); then | |
echo "Cache Exists for $DEPSHASH" | |
else | |
echo "Cache Does Not Exist for $DEPSHASH" | |
fi | |
- name: Gclient Sync | |
# If there is no existing src cache, we need to do a full gclient sync. | |
# TODO(codebytere): Add stale patch handling for non-release builds. | |
if: steps.check-cache.outputs.cache_exists == 'false' | |
run: | | |
gclient config \ | |
--name "src/electron" \ | |
--unmanaged \ | |
$GCLIENT_EXTRA_ARGS \ | |
"$GITHUB_SERVER_URL/$GITHUB_REPOSITORY" | |
ELECTRON_USE_THREE_WAY_MERGE_FOR_PATCHES=1 gclient sync --with_branch_heads --with_tags -vvvvv | |
# delete all .git directories under src/ except for | |
# third_party/angle/ and third_party/dawn/ because of build time generation of files | |
# gen/angle/commit.h depends on third_party/angle/.git/HEAD | |
# https://chromium-review.googlesource.com/c/angle/angle/+/2074924 | |
# and dawn/common/Version_autogen.h depends on third_party/dawn/.git/HEAD | |
# https://dawn-review.googlesource.com/c/dawn/+/83901 | |
# TODO: maybe better to always leave out */.git/HEAD file for all targets ? | |
- name: Delete .git directories under src to free space | |
if: steps.check-cache.outputs.cache_exists == 'false' | |
run: | | |
cd src | |
( find . -type d -name ".git" -not -path "./third_party/angle/*" -not -path "./third_party/dawn/*" -not -path "./electron/*" ) | xargs rm -rf | |
- name: Minimize Cache Size for Upload | |
if: steps.check-cache.outputs.cache_exists == 'false' | |
run: | | |
rm -rf src/android_webview | |
rm -rf src/ios/chrome | |
rm -rf src/third_party/blink/web_tests | |
rm -rf src/third_party/blink/perf_tests | |
rm -rf src/chrome/test/data/xr/webvr_info | |
rm -rf src/third_party/angle/third_party/VK-GL-CTS/src | |
rm -rf src/third_party/swift-toolchain | |
rm -rf src/third_party/swiftshader/tests/regres/testlists | |
rm -rf src/electron | |
- name: Compress Src Directory | |
if: steps.check-cache.outputs.cache_exists == 'false' | |
run: | | |
echo "Uncompressed src size: $(du -sh src | cut -f1 -d' ')" | |
tar -cvf $DEPSHASH.tar src | |
echo "Compressed src to $(du -sh $DEPSHASH.tar | cut -f1 -d' ')" | |
- name: Upload Compressed Src Cache to Azure | |
if: steps.check-cache.outputs.cache_exists == 'false' | |
run: | | |
az storage blob upload \ | |
--account-name $AZURE_STORAGE_ACCOUNT \ | |
--account-key $AZURE_STORAGE_KEY \ | |
--container-name $AZURE_STORAGE_CONTAINER_NAME \ | |
--file $DEPSHASH.tar \ | |
--name $DEPSHASH \ | |
--debug | |
build: | |
runs-on: macos-13-xlarge | |
needs: checkout | |
steps: | |
- name: Load Build Tools | |
run: | | |
npm i -g @electron/build-tools | |
e init --root=$PWD --out=Default testing | |
- name: Checkout Electron | |
uses: actions/checkout@v4 | |
with: | |
path: src/electron | |
- name: Install Azure CLI | |
run: | | |
brew update && brew install azure-cli | |
- name: Setup Node.js/npm | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18.18.x | |
cache: yarn | |
cache-dependency-path: src/electron/yarn.lock | |
- name: Enable ssh Debugging | |
if: runner.debug == 1 | |
uses: mxschmitt/action-tmate@v3 | |
with: | |
detached: true | |
limit-access-to-actor: true | |
- name: Install Dependencies | |
run: | | |
cd src/electron | |
node script/yarn install | |
- name: Get Depot Tools | |
run: | | |
git clone --depth=1 https://chromium.googlesource.com/chromium/tools/depot_tools.git | |
if [ "`uname`" == "Darwin" ]; then | |
# remove ninjalog_uploader_wrapper.py from autoninja since we don't use it and it causes problems | |
sed -i '' '/ninjalog_uploader_wrapper.py/d' ./depot_tools/autoninja | |
else | |
sed -i '/ninjalog_uploader_wrapper.py/d' ./depot_tools/autoninja | |
# Remove swift-format dep from cipd on macOS until we send a patch upstream. | |
cd depot_tools | |
git apply --3way ../src/electron/.github/workflows/config/gclient.diff | |
fi | |
# Ensure depot_tools does not update. | |
test -d depot_tools && cd depot_tools | |
touch .disable_auto_update | |
- name: Add Depot Tools to PATH | |
run: echo "$(pwd)/depot_tools" >> $GITHUB_PATH | |
- name: Generate DEPS Hash | |
run: | | |
node src/electron/script/generate-deps-hash.js && cat src/electron/.depshash-target | |
echo "DEPSHASH=v1-src-cache-$(shasum src/electron/.depshash | cut -f1 -d' ')" >> $GITHUB_ENV | |
- name: Download Src Cache | |
# The cache will always exist here as a result of the checkout job | |
# Either it was uploaded to Azure in the checkout job for this commit | |
# or it was uploaded in the checkout job for a previous commit. | |
run: | | |
az storage blob download \ | |
--account-name $AZURE_STORAGE_ACCOUNT \ | |
--account-key $AZURE_STORAGE_KEY \ | |
--container-name $AZURE_STORAGE_CONTAINER_NAME \ | |
--name $DEPSHASH \ | |
--file $DEPSHASH.tar \ | |
- name: Unzip and Ensure Src Cache | |
run: | | |
echo "Downloaded cache is $(du -sh $DEPSHASH.tar | cut -f1)" | |
mkdir temp-cache | |
tar -xvf $DEPSHASH.tar -C temp-cache | |
echo "Unzipped cache is $(du -sh temp-cache/src | cut -f1)" | |
if [ -d "temp-cache/src" ]; then | |
echo "Relocating Cache" | |
rm -rf src | |
mv temp-cache/src src | |
echo "Deleting zip file" | |
rm -rf $DEPSHASH.tar | |
fi | |
if [ ! -d "src/third_party/blink" ]; then | |
echo "Cache was not correctly restored - exiting" | |
exit 1 | |
fi | |
echo "Wiping Electron Directory" | |
rm -rf src/electron | |
- name: Checkout Electron | |
uses: actions/checkout@v4 | |
with: | |
path: src/electron | |
- name: Run Electron Only Hooks | |
run: | | |
echo "Running Electron Only Hooks" | |
gclient runhooks --spec="solutions=[{'name':'src/electron','url':None,'deps_file':'DEPS','custom_vars':{'process_deps':False},'managed':False}]" | |
- name: Regenerate DEPS Hash | |
run: | | |
(cd src/electron && git checkout .) && node src/electron/script/generate-deps-hash.js && cat src/electron/.depshash-target | |
echo "DEPSHASH=$(shasum src/electron/.depshash | cut -f1 -d' ')" >> $GITHUB_ENV | |
- name: Setup Environment Variables | |
run: | | |
echo "CHROMIUM_BUILDTOOLS_PATH=$(pwd)/src/buildtools" >> $GITHUB_ENV | |
- name: Fix Sync | |
# This step is required to correct for differences between "gclient sync" | |
# on Linux and the expected state on macOS. This requires: | |
# 1. Fixing Clang Install (wrong binary) | |
# 2. Fixing esbuild (wrong binary) | |
# 3. Fixing rustc (wrong binary) | |
# 4. Fixing gn (wrong binary) | |
# 5. Fix reclient (wrong binary) | |
# 6. Fixing dsymutil (wrong binary) | |
# 7. Ensuring we are using the correct ninja and adding it to PATH | |
# 8. Fixing angle (wrong remote) | |
run : | | |
SEDOPTION="-i" | |
if [ "`uname`" == "Darwin" ]; then | |
SEDOPTION="-i ''" | |
rm -rf src/third_party/llvm-build | |
python3 src/tools/clang/scripts/update.py | |
echo 'infra/3pp/tools/esbuild/${platform}' `gclient getdep --deps-file=src/third_party/devtools-frontend/src/DEPS -r 'third_party/esbuild:infra/3pp/tools/esbuild/${platform}'` > esbuild_ensure_file | |
# Remove extra output from calling gclient getdep which always calls update_depot_tools | |
sed -i '' "s/Updating depot_tools... //g" esbuild_ensure_file | |
cipd ensure --root src/third_party/devtools-frontend/src/third_party/esbuild -ensure-file esbuild_ensure_file | |
rm -rf src/third_party/rust-toolchain | |
python3 src/tools/rust/update_rust.py | |
# Prevent calling gclient getdep which always calls update_depot_tools | |
echo 'gn/gn/mac-${arch}' `gclient getdep --deps-file=src/DEPS -r 'src/buildtools/mac:gn/gn/mac-${arch}'` > gn_ensure_file | |
sed -i '' "s/Updating depot_tools... //g" gn_ensure_file | |
cipd ensure --root src/buildtools/mac -ensure-file gn_ensure_file | |
# Prevent calling gclient getdep which always calls update_depot_tools | |
echo 'infra/rbe/client/${platform}' `gclient getdep --deps-file=src/DEPS -r 'src/buildtools/reclient:infra/rbe/client/${platform}'` > gn_ensure_file | |
sed -i '' "s/Updating depot_tools... //g" gn_ensure_file | |
cipd ensure --root src/buildtools/reclient -ensure-file gn_ensure_file | |
python3 src/buildtools/reclient_cfgs/configure_reclient_cfgs.py --rbe_instance "projects/rbe-chrome-untrusted/instances/default_instance" --reproxy_cfg_template reproxy.cfg.template --rewrapper_cfg_project "" --skip_remoteexec_cfg_fetch | |
if [ "$TARGET_ARCH" == "arm64" ]; then | |
export DSYM_SHA_FILE=src/tools/clang/dsymutil/bin/dsymutil.arm64.sha1 | |
else | |
export DSYM_SHA_FILE=src/tools/clang/dsymutil/bin/dsymutil.x64.sha1 | |
fi | |
python3 src/third_party/depot_tools/download_from_google_storage.py --no_resume --no_auth --bucket chromium-browser-clang -s $DSYM_SHA_FILE -o src/tools/clang/dsymutil/bin/dsymutil | |
fi | |
echo 'infra/3pp/tools/ninja/${platform}' `gclient getdep --deps-file=src/DEPS -r 'src/third_party/ninja:infra/3pp/tools/ninja/${platform}'` > ninja_ensure_file | |
sed $SEDOPTION "s/Updating depot_tools... //g" ninja_ensure_file | |
cipd ensure --root src/third_party/ninja -ensure-file ninja_ensure_file | |
echo "$(pwd)/src/third_party/ninja" >> $GITHUB_PATH | |
cd src/third_party/angle | |
rm -f .git/objects/info/alternates | |
git remote set-url origin https://chromium.googlesource.com/angle/angle.git | |
cp .git/config .git/config.backup | |
git remote remove origin | |
mv .git/config.backup .git/config | |
git fetch | |
- name: Install build-tools & Setup RBE | |
run: | | |
echo "NUMBER_OF_NINJA_PROCESSES=200" >> $GITHUB_ENV | |
cd ~/.electron_build_tools | |
npx yarn --ignore-engines | |
# Pull down credential helper and print status | |
node -e "require('./src/utils/reclient.js').downloadAndPrepare({})" | |
HELPER=$(node -p "require('./src/utils/reclient.js').helperPath") | |
$HELPER login | |
echo 'RBE_service='`node -e "console.log(require('./src/utils/reclient.js').serviceAddress)"` >> $GITHUB_ENV | |
echo 'RBE_experimental_credentials_helper='`node -e "console.log(require('./src/utils/reclient.js').helperPath)"` >> $GITHUB_ENV | |
echo 'RBE_experimental_credentials_helper_args=print' >> $GITHUB_ENV | |
- name: Default GN gen | |
run: | | |
cd src/electron | |
# TODO(codebytere): remove this once we figure out why .git/packed-refs is initially missing | |
git pack-refs | |
cd .. | |
gn gen out/Default --args="import(\"$GN_CONFIG\") use_remoteexec=true $GN_EXTRA_ARGS $GN_BUILDFLAG_ARGS" | |
- name: Build Electron | |
run: | | |
ulimit -n 10000 | |
sudo launchctl limit maxfiles 65536 200000 | |
cd src | |
NINJA_SUMMARIZE_BUILD=1 e build -j $NUMBER_OF_NINJA_PROCESSES | |
cp out/Default/.ninja_log out/electron_ninja_log | |
node electron/script/check-symlinks.js | |
- name: Build Electron dist.zip | |
run: | | |
cd src | |
if [ "$SKIP_DIST_ZIP" != "1" ]; then | |
if [ "$IS_RELEASE"]; then | |
ADDITIONAL_TARGETS = "electron:node_headers third_party/electron_node:overlapped-checker electron:hunspell_dictionaries_zip" | |
fi | |
e build electron:electron_dist_zip $ADDITIONAL_TARGETS -j $NUMBER_OF_NINJA_PROCESSES | |
if [ "$CHECK_DIST_MANIFEST" == "1" ]; then | |
target_os=mac | |
target_cpu=arm64 | |
if [ "$MAS_BUILD" == x"true" ]; then | |
target_os=mac_mas | |
fi | |
if [ "$TARGET_ARCH" == "x64" ]; then | |
target_cpu=x64 | |
fi | |
electron/script/zip_manifests/check-zip-manifest.py out/Default/dist.zip electron/script/zip_manifests/dist_zip.$target_os.$target_cpu.manifest | |
fi | |
fi | |
- name: Build Mksnapshot | |
run: | | |
cd src | |
e build electron:electron_mksnapshot -j $NUMBER_OF_NINJA_PROCESSES | |
gn desc out/Default v8:run_mksnapshot_default args > out/Default/mksnapshot_args | |
# Remove unused args from mksnapshot_args | |
SEDOPTION="-i ''" | |
sed $SEDOPTION '/.*builtins-pgo/d' out/Default/mksnapshot_args | |
sed $SEDOPTION '/--turbo-profiling-input/d' out/Default/mksnapshot_args | |
sed $SEDOPTION '/The gn arg use_goma=true .*/d' out/Default/mksnapshot_args | |
if [ "$SKIP_DIST_ZIP" != "1" ]; then | |
e build electron:electron_mksnapshot_zip -j $NUMBER_OF_NINJA_PROCESSES | |
(cd out/Default; zip mksnapshot.zip mksnapshot_args gen/v8/embedded.S) | |
fi | |
- name: Build Chromedriver | |
run: | | |
cd src | |
e build electron:electron_chromedriver -j $NUMBER_OF_NINJA_PROCESSES | |
e build electron:electron_chromedriver_zip | |
- name: Build Node Headers | |
run: | | |
cd src | |
e build electron:node_headers | |
- name: Generate & Zip Symbols | |
run: | | |
if [ "$GENERATE_SYMBOLS" == "true" ]; then | |
e build electron:electron_symbols | |
fi | |
cd src | |
export BUILD_PATH="$PWD/out/Default" | |
e build electron:licenses | |
e build electron:electron_version_file | |
electron/script/zip-symbols.py -b $BUILD_PATH | |
# TODO(vertedinde): handle creating ffmpeg and hunspell for release builds | |
# The current generated_artifacts_<< artifact.key >> name was taken from CircleCI | |
# tp ensure we don't break anything, but we may be able to improve that. | |
- name: Move all Generated Artifacts to Upload Folder | |
run: | | |
rm -rf generated_artifacts_darwin-arm64 | |
mkdir generated_artifacts_darwin-arm64 | |
mv_if_exist() { | |
if [ -f "$1" ] || [ -d "$1" ]; then | |
echo Storing $1 | |
mv $1 generated_artifacts_darwin-arm64 | |
else | |
echo Skipping $1 - It is not present on disk | |
fi | |
} | |
cp_if_exist() { | |
if [ -f "$1" ] || [ -d "$1" ]; then | |
echo Storing $1 | |
cp $1 generated_artifacts_darwin-arm64 | |
else | |
echo Skipping $1 - It is not present on disk | |
fi | |
} | |
mv_if_exist src/out/Default/dist.zip | |
mv_if_exist src/out/Default/gen/node_headers.tar.gz | |
mv_if_exist src/out/Default/symbols.zip | |
mv_if_exist src/out/Default/mksnapshot.zip | |
mv_if_exist src/out/Default/chromedriver.zip | |
mv_if_exist src/out/ffmpeg/ffmpeg.zip | |
mv_if_exist src/out/Default/hunspell_dictionaries.zip | |
mv_if_exist src/cross-arch-snapshots | |
cp_if_exist src/out/electron_ninja_log | |
cp_if_exist src/out/Default/.ninja_log | |
- name: Upload Generated Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: generated_artifacts_darwin-arm64 | |
path: ./generated_artifacts_darwin-arm64 | |
- name: Persist Build Artifacts | |
uses: actions/cache/save@v4 | |
with: | |
path: | | |
src/out/Default/gen/node_headers | |
src/out/Default/overlapped-checker | |
src/electron | |
src/third_party/electron_node | |
src/third_party/nan | |
src/cross-arch-snapshots | |
src/third_party/llvm-build | |
src/build/linux | |
src/buildtools/mac | |
src/buildtools/third_party/libc++ | |
src/buildtools/third_party/libc++abi | |
src/third_party/libc++ | |
src/third_party/libc++abi | |
src/out/Default/obj/buildtools/third_party | |
src/v8/tools/builtins-pgo | |
key: ${{ runner.os }}-build-artifacts-${{ github.sha }} | |
test: | |
runs-on: macos-13-xlarge | |
needs: build | |
steps: | |
- name: Load Build Tools | |
run: | | |
npm i -g @electron/build-tools | |
e init --root=$(pwd) --out=Default testing | |
- name: Checkout Electron | |
uses: actions/checkout@v4 | |
with: | |
path: src/electron | |
- name: Setup Node.js/npm | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18.18.x | |
cache: yarn | |
cache-dependency-path: src/electron/yarn.lock | |
- name: Enable ssh Debugging | |
if: runner.debug == 1 | |
uses: mxschmitt/action-tmate@v3 | |
with: | |
detached: true | |
limit-access-to-actor: true | |
- name: Install Dependencies | |
run: | | |
cd src/electron | |
node script/yarn install | |
- name: Get Depot Tools | |
run: | | |
git clone --depth=1 https://chromium.googlesource.com/chromium/tools/depot_tools.git | |
if [ "`uname`" == "Darwin" ]; then | |
# remove ninjalog_uploader_wrapper.py from autoninja since we don't use it and it causes problems | |
sed -i '' '/ninjalog_uploader_wrapper.py/d' ./depot_tools/autoninja | |
else | |
sed -i '/ninjalog_uploader_wrapper.py/d' ./depot_tools/autoninja | |
# Remove swift-format dep from cipd on macOS until we send a patch upstream. | |
cd depot_tools | |
git apply --3way ../src/electron/.github/workflows/config/gclient.diff | |
fi | |
# Ensure depot_tools does not update. | |
test -d depot_tools && cd depot_tools | |
touch .disable_auto_update | |
- name: Add Depot Tools to PATH | |
run: echo "$(pwd)/depot_tools" >> $GITHUB_PATH | |
- name: Download Generated Artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: generated_artifacts_darwin-arm64 | |
path: ./generated_artifacts_darwin-arm64 | |
- name: Restore Persisted Build Artifacts | |
uses: actions/cache/restore@v4 | |
with: | |
path: | | |
src/out/Default/gen/node_headers | |
src/out/Default/overlapped-checker | |
src/electron | |
src/third_party/electron_node | |
src/third_party/nan | |
src/cross-arch-snapshots | |
src/third_party/llvm-build | |
src/build/linux | |
src/buildtools/mac | |
src/buildtools/third_party/libc++ | |
src/buildtools/third_party/libc++abi | |
src/third_party/libc++ | |
src/third_party/libc++abi | |
src/out/Default/obj/buildtools/third_party | |
src/v8/tools/builtins-pgo | |
key: ${{ runner.os }}-build-artifacts-${{ github.sha }} | |
- name: Restore Generated Artifacts | |
run: | | |
mv_if_exist() { | |
if [ -f "generated_artifacts_darwin-arm64/$1" ] || [ -d "generated_artifacts_darwin-arm64/$1" ]; then | |
echo Restoring $1 to $2 | |
mkdir -p $2 | |
mv generated_artifacts_darwin-arm64/$1 $2 | |
else | |
echo Skipping $1 - It is not present on disk | |
fi | |
} | |
mv_if_exist dist.zip src/out/Default | |
mv_if_exist node_headers.tar.gz src/out/Default/gen | |
mv_if_exist symbols.zip src/out/Default | |
mv_if_exist mksnapshot.zip src/out/Default | |
mv_if_exist chromedriver.zip src/out/Default | |
mv_if_exist ffmpeg.zip src/out/ffmpeg | |
mv_if_exist hunspell_dictionaries.zip src/out/Default | |
mv_if_exist cross-arch-snapshots src | |
- name: Unzip Dist, Mksnapshot & Chromedriver | |
run: | | |
cd src/out/Default | |
unzip -:o dist.zip | |
unzip -:o chromedriver.zip | |
unzip -:o mksnapshot.zip | |
# - name: Import & Trust Self-Signed Codesigning Cert on MacOS | |
# run: | | |
# sudo security authorizationdb write com.apple.trust-settings.admin allow | |
# cd src/electron | |
# ./script/codesign/generate-identity.sh | |
- name: Run Electron Tests | |
env: | |
MOCHA_REPORTER: mocha-multi-reporters | |
ELECTRON_TEST_RESULTS_DIR: junit | |
MOCHA_MULTI_REPORTERS: mocha-junit-reporter, tap | |
ELECTRON_DISABLE_SECURITY_WARNINGS: 1 | |
ELECTRON_SKIP_NATIVE_MODULE_TESTS: true | |
run: | | |
cd src/electron | |
node script/yarn test --runners=main --trace-uncaught --enable-logging --files |