etcher/PUBLISHING.md
Juan Cruz Viotti 5d45ceade7 Add Python as a PUBLISHING pre-requisite (#391)
This is needed to build native NodeJS addons.

Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-05-03 19:45:03 -04:00

2.6 KiB

Publishing Etcher

This is a small guide to package and publish Etcher to all supported operating systems.

Prequisites

If you're going to generate installers for another platform than the one you're currently running, make sure you force-install all NPM dependencies, so optional dependencies marked for a certain operating system get installed regardless of the host operating system

npm install --force

You can run the following command at any time to start from a fresh state:

make clean

Signing

OS X

  1. Get our Apple Developer ID certificate for signing applications distributed outside the Mac App Store from the Resin.io Apple account.

  2. Install the Developer ID certificate to your Mac's Keychain by double clicking on the certificate file.

The application will be signed automatically using this certificate when packaging for OS X.

Windows

  1. Get access to our code signing certificate and decryption key as a Resin.io employee by asking for it to the relevant people.

  2. Place the cert and key in the root of the Etcher repository naming them certificate.crt.pem and certificate.key.pem, respectively.

The application and installer will be signed automatically using these certificates when packaging for Windows.

Packaging

Run the following command to make installers for all supported operating systems:

make installer-all

You can replace all with osx, linux or win32 to only generate installers for those platforms:

make installer-osx
make installer-linux
make installer-win32

The resulting installers will be saved to etcher-release/installers.

Uploading

Make sure you have the AWS CLI tool installed and configured to access Resin.io's production downloads S3 bucket.

Run the following command to upload all installers:

make upload-all

As with the installer rule, you can replace all with osx, linux or win32 to only publish those platform's installers:

make upload-osx
make upload-linux
make upload-win32