From 4b04b995cacdc93cb7c240412213a5fc6227f652 Mon Sep 17 00:00:00 2001 From: Artur Wierzbicki Date: Tue, 15 Mar 2022 11:11:46 +0400 Subject: [PATCH] add darwin-arm64-unknown package --- .circleci/config.yml | 5 +++-- scripts/download_chromium.js | 17 ++++++++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a2b88b69..045a381f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -215,7 +215,7 @@ workflows: name: package-<< matrix.arch >> matrix: parameters: - arch: [linux-x64-glibc, darwin-x64-unknown, win32-x64-unknown] + arch: [linux-x64-glibc, darwin-x64-unknown, darwin-arm64-unknown, win32-x64-unknown] - package: filters: *filter-only-master requires: @@ -234,6 +234,7 @@ workflows: - build - package-linux-x64-glibc - package-darwin-x64-unknown + - package-darwin-arm64-unknown - package-win32-x64-unknown - package-linux-x64-glibc-no-chromium filters: *filter-only-master @@ -260,7 +261,7 @@ workflows: name: package-<< matrix.arch >> matrix: parameters: - arch: [linux-x64-glibc, darwin-x64-unknown, win32-x64-unknown] + arch: [linux-x64-glibc, darwin-x64-unknown, darwin-arm64-unknown, win32-x64-unknown] skip_signing_errors: [true] - package: diff --git a/scripts/download_chromium.js b/scripts/download_chromium.js index 53e1ddd3..a81ce8c0 100644 --- a/scripts/download_chromium.js +++ b/scripts/download_chromium.js @@ -2,6 +2,7 @@ const path = require('path'); const child_process = require('child_process'); const Puppeteer = require('puppeteer'); const { PUPPETEER_REVISIONS } = require('puppeteer/lib/cjs/puppeteer/revisions') +const fs = require('fs') const archArg = process.argv[2]; let [ @@ -37,7 +38,21 @@ browserFetcher let execPath = parts.join(path.sep); - child_process.execSync(`cp -RP ${execPath} ${outputPath}`); + if (platform === 'mac' && arch === 'arm64') { + // follow symlinks, dereference symlinks and copy them as files + child_process.execSync(`cp -LR ${execPath} ${outputPath}`); + + const dsStore = '.DS_Store' + const dsStorePaths = [`${outputPath}/${dsStore}`, `${outputPath}/${parts[parts.length - 1]}/.DS_Store`] + for (const path of dsStorePaths) { + if (!fs.existsSync(path)) { + child_process.execSync(`touch ${path}`) + } + } + } else { + // follow symlinks, copy them as symlinks + child_process.execSync(`cp -RP ${execPath} ${outputPath}`); + } console.log(`Chromium moved from ${execPath} to ${outputPath}/`); process.exit(0);