Skip to content

Commit 4c093c7

Browse files
committed
doc: add macos release builder setup notes
Closes: #1393 PR-URL: #2199
1 parent 0c23255 commit 4c093c7

File tree

1 file changed

+47
-20
lines changed

1 file changed

+47
-20
lines changed

ansible/MANUAL_STEPS.md

Lines changed: 47 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,29 @@
11
# Manual steps required to setup machines
22

3-
* [Firewall Config](#adding-firewall-entries-for-jenkins-workers)
4-
* [Release machines](#release--machines)
5-
* [RHEL7-s390x](#RHEL7-s390x)
6-
* [V8 Build Tools](#V8-build-tools)
7-
* [Devtoolset-6](#devtoolset-6-install)
3+
* [Adding firewall entries for Jenkins workers](#adding-firewall-entries-for-jenkins-workers)
4+
* [`release-*` machines](#release--machines)
5+
* [macOS release machines](#macos-release-machines)
6+
* [Full Xcode](#full-xcode)
7+
* [Signing certificates](#signing-certificates)
8+
* [RHEL7-S390X](#rhel7-s390x)
9+
* [V8 build-tools](#v8-build-tools)
10+
* [devtoolset-6 install](#devtoolset-6-install)
811
* [macOS](#macos)
9-
* [AIX 72](#aix-72-install)
10-
* [ccache on AIX 72](#ccache-374-on-aix-72)
11-
* [AHA filesystem](#Enable-the-AHA-fs)
12-
* [XL Compilers](#Install-XL-compilers)
13-
* [Missing shared objects](#fix-missing-shared-objects)
14-
* [Preparing GCC](#Preparing-gcc-distributables)
15-
* [Preparing ccache](#Preparing-ccache-distributables)
16-
* [Windows](#windows-azurerackspace)
17-
* [Control Machine](#control-machine-where-ansible-is-run)
18-
* [Target machines](#Target-machines)
19-
* [Jenkins Workspace](#jenkins-workspace)
20-
* [Docker hosts](#Docker-hosts)
21-
* [SmartOS](#SmartOS)
22-
* [Raspberry Pi](#Raspberry-Pi)
23-
* [NFS boot](#NFS-boot)
12+
* [AIX 7.2 Install](#aix-72-install)
13+
* [ccache 3.7.4 on AIX 7.2](#ccache-374-on-aix-72)
14+
* [Enable the AHA fs](#enable-the-aha-fs)
15+
* [Install XL compilers](#install-xl-compilers)
16+
* [Fix "Missing" shared objects](#fix-missing-shared-objects)
17+
* [Preparing gcc distributables](#preparing-gcc-distributables)
18+
* [Preparing ccache distributables](#preparing-ccache-distributables)
19+
* [Windows (Azure/Rackspace)](#windows-azurerackspace)
20+
* [Control machine (where Ansible is run)](#control-machine-where-ansible-is-run)
21+
* [Target machines](#target-machines)
22+
* [jenkins-workspace](#jenkins-workspace)
23+
* [Docker hosts](#docker-hosts)
24+
* [SmartOS](#smartos)
25+
* [Raspberry Pi](#raspberry-pi)
26+
* [NFS boot](#nfs-boot)
2427

2528

2629
## Adding firewall entries for Jenkins workers
@@ -57,11 +60,35 @@ Host node-www
5760

5861
Its necessary to accept the `known_hosts` keys interactively on first ssh or
5962
the release builds will fail. After setting up .ssh, do something like this:
63+
6064
```
6165
ssh node-www date
6266
// ... accept the host keys
6367
```
6468

69+
### macOS release machines
70+
71+
Previous notes: [#1393](https://github.com/nodejs/build/issues/1393)
72+
73+
#### Full Xcode
74+
75+
Xcode Command-line tools are not enough to perform a full notarization cycle, full Xcode must be installed manually.
76+
77+
As root:
78+
79+
* Download Xcode: https://developer.apple.com/download/more/ - find non-beta version, open Developer Tools in browser, Networking tab, start download (then cancel), in Networking tab "Copy as cURL" (available in Chrome & FF)
80+
* Download onto release machine using the copied curl command (may need `-o xcode.xip` appended to curl command) to `/tmp`
81+
* Extract: `xip --extract xcode.xip`
82+
* Move `Xcode.app` directory to `/Applications`
83+
* `xcode-select --switch /Applications/Xcode.app`
84+
* `xcode-select -r` - accept license
85+
86+
#### Signing certificates
87+
88+
* Extract from secrets/build/release: `dotgpg cat Apple\ Developer\ ID\ Node.js\ Foundation.p12.base64 | base64 -d > /tmp/Apple\ Developer\ ID\ Node.js\ Foundation.p12`
89+
* Transfer to release machine (scp to /tmp)
90+
* `sudo security import /tmp/Apple\ Developer\ ID\ Node.js\ Foundation.p12 -k /Library/Keychains/System.keychain -T /usr/bin/codesign -T /usr/bin/productsign -P 'XXXX'` (where XXXX is found in secrets/build/release/apple.md) (`security unlock-keychain -u /Library/Keychains/System.keychain` _may_ be required prior to running this command).
91+
6592
## RHEL7-S390X
6693

6794
### V8 build-tools

0 commit comments

Comments
 (0)