@seamapi/cli 0.18.1 → 0.18.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +1 -1
- package/src/lib/version.ts +1 -1
package/README.md
CHANGED
|
@@ -22,7 +22,9 @@ $ npm install --global @seamapi/cli
|
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
Alternatively, download a standalone binary for your platform from the
|
|
25
|
-
[latest GitHub release].
|
|
25
|
+
[latest GitHub release]. The macOS binaries are signed with the Seam Labs, Inc.
|
|
26
|
+
Apple Developer ID and notarized by Apple, so macOS runs them without
|
|
27
|
+
a Gatekeeper prompt.
|
|
26
28
|
|
|
27
29
|
On Arch Linux, install the [`seam-bin`][aur] package from the AUR with
|
|
28
30
|
|
|
@@ -396,6 +398,58 @@ The following repository secrets must be set on [GitHub Actions]:
|
|
|
396
398
|
[GitHub Actions]: https://github.com/features/actions
|
|
397
399
|
[GPG private key]: https://github.com/marketplace/actions/import-gpg#prerequisites
|
|
398
400
|
|
|
401
|
+
### Signing the macOS binaries
|
|
402
|
+
|
|
403
|
+
The standalone macOS binaries are code signed and notarized while they are
|
|
404
|
+
built, so that Gatekeeper lets them run on machines other than the one that
|
|
405
|
+
built them. Both need an [Apple Developer Program] membership.
|
|
406
|
+
|
|
407
|
+
Anything that releases signs, and fails rather than publish a binary that
|
|
408
|
+
macOS refuses to run. A check builds the macOS binaries with `sign: false`
|
|
409
|
+
instead: a pull request from a fork cannot read the credentials, and nothing a
|
|
410
|
+
check builds is ever released. There is no ad-hoc signature fallback, since
|
|
411
|
+
Gatekeeper rejects one anywhere but the machine that made it.
|
|
412
|
+
|
|
413
|
+
Set these repository secrets to code sign:
|
|
414
|
+
|
|
415
|
+
- `APPLE_CERTIFICATE`: A base64 encoded PKCS#12 (`.p12`) bundle holding a
|
|
416
|
+
[Developer ID Application] certificate, its private key, and its certificate
|
|
417
|
+
chain. Export it from Keychain Access, then encode it with
|
|
418
|
+
`base64 --input certificate.p12 | pbcopy`.
|
|
419
|
+
- `APPLE_CERTIFICATE_PASSWORD`: The password set while exporting the bundle.
|
|
420
|
+
- `APPLE_SIGNING_IDENTITY`: Normally left unset. The build signs with the one
|
|
421
|
+
Developer ID Application identity in the bundle, so this is only needed to
|
|
422
|
+
choose between several, e.g.,
|
|
423
|
+
`Developer ID Application: Seam Labs, Inc. (XXXXXXXXXX)`.
|
|
424
|
+
|
|
425
|
+
And these to notarize, from an [App Store Connect API key]:
|
|
426
|
+
|
|
427
|
+
- `APPLE_API_KEY`: The base64 encoded API private key (`.p8`).
|
|
428
|
+
- `APPLE_API_KEY_ID`: The API key id.
|
|
429
|
+
- `APPLE_API_ISSUER_ID`: The API key issuer id.
|
|
430
|
+
|
|
431
|
+
Notarization tickets cannot be stapled to a bare executable, so Gatekeeper
|
|
432
|
+
looks them up online the first time a downloaded binary runs.
|
|
433
|
+
|
|
434
|
+
Check the credentials without cutting a release by triggering
|
|
435
|
+
[a build workflow_dispatch on GitHub Actions], on the web or with
|
|
436
|
+
|
|
437
|
+
```
|
|
438
|
+
$ gh workflow run build.yml --ref <branch>
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
GitHub only offers a workflow_dispatch for a workflow already on the default
|
|
442
|
+
branch, so the build workflow must be merged first. It then runs against any
|
|
443
|
+
branch.
|
|
444
|
+
|
|
445
|
+
Then confirm the run's macOS binaries job signed and notarized: it verifies the
|
|
446
|
+
signature, assesses the binary the way Gatekeeper does, and runs it.
|
|
447
|
+
|
|
448
|
+
[App Store Connect API key]: https://developer.apple.com/documentation/appstoreconnectapi/creating-api-keys-for-app-store-connect-api
|
|
449
|
+
[Apple Developer Program]: https://developer.apple.com/programs/
|
|
450
|
+
[Developer ID Application]: https://developer.apple.com/help/account/reference/certificate-types/
|
|
451
|
+
[a build workflow_dispatch on GitHub Actions]: https://github.com/seamapi/cli/actions?query=workflow%3A_build
|
|
452
|
+
|
|
399
453
|
## Contributing
|
|
400
454
|
|
|
401
455
|
> If using squash merge, edit and ensure the commit message follows the [Angular Commit Message Conventions] specification.
|
package/lib/version.d.ts
CHANGED
package/lib/version.js
CHANGED
package/package.json
CHANGED
package/src/lib/version.ts
CHANGED