Merge pull request #189 from resin-io/misc/upload

Add Makefile rules to publish to S3
This commit is contained in:
Juan Cruz Viotti 2016-03-09 13:34:42 -04:00
commit e1016a0f43
2 changed files with 59 additions and 10 deletions

View File

@ -5,6 +5,7 @@ ELECTRON_VERSION=0.36.8
ETCHER_VERSION=$(shell node -e "console.log(require('./package.json').version)")
APPLICATION_NAME=$(shell node -e "console.log(require('./package.json').displayName)")
SIGN_IDENTITY_OSX="Rulemotion Ltd (66H43P8FRG)"
S3_BUCKET="resin-production-downloads"
etcher-release/Etcher-darwin-x64: .
$(ELECTRON_PACKAGER) . $(APPLICATION_NAME) \
@ -111,11 +112,20 @@ installer-linux: etcher-release/installers/Etcher-linux-x64.tar.gz etcher-releas
installer-win32: etcher-release/installers/Etcher-x64.exe etcher-release/installers/Etcher.exe
installer-all: installer-osx installer-linux installer-win32
etcher-release:
rm -rf node_modules
npm install --force
npm test
make installer-all
S3_UPLOAD=aws s3api put-object \
--bucket $(S3_BUCKET) \
--acl public-read \
--key etcher/$(ETCHER_VERSION)/$(notdir $<) \
--body $<
upload-linux-x64: etcher-release/installers/Etcher-linux-x64.tar.gz ; $(S3_UPLOAD)
upload-linux-ia32: etcher-release/installers/Etcher-linux-ia32.tar.gz ; $(S3_UPLOAD)
upload-win32-x64: etcher-release/installers/Etcher-x64.exe ; $(S3_UPLOAD)
upload-win32-ia32: etcher-release/installers/Etcher.exe ; $(S3_UPLOAD)
upload-osx: etcher-release/installers/Etcher.dmg ; $(S3_UPLOAD)
upload-linux: upload-linux-x64 upload-linux-ia32
upload-win32: upload-win32-x64 upload-win32-ia32
clean:
rm -rf etcher-release/

View File

@ -6,10 +6,24 @@ This is a small guide to package and publish Etcher to all supported operating s
Prequisites
-----------
- [wine](https://www.winehq.org)
- [nsis](http://nsis.sourceforge.net/Main_Page)
- [node](https://nodejs.org)
- [NodeJS](https://nodejs.org)
- [GNU Make](https://www.gnu.org/software/make/)
- [wine (for Windows)](https://www.winehq.org)
- [nsis (for Windows)](http://nsis.sourceforge.net/Main_Page)
- [XCode (for OS X)](https://developer.apple.com/xcode://developer.apple.com/xcode/)
- [AWS CLI (for uploading packages)](https://aws.amazon.com/cli://aws.amazon.com/cli/)
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
```sh
npm install --force
```
You can run the following command at any time to start from a fresh state:
```sh
make clean
```
Signing
-------
@ -28,9 +42,34 @@ Packaging
Run the following command to make installers for all supported operating systems:
```sh
make release
make installer-all
```
You can replace `all` with `osx`, `linux` or `win32` to only generate installers for those platforms:
```sh
make installer-osx
make installer-linux
make installer-win32
```
The resulting installers will be saved to `etcher-release/installers`.
You can run `make clean` to start in a fresh state.
Uploading
---------
Make sure you have the [AWS CLI tool](https://aws.amazon.com/cli://aws.amazon.com/cli/) installed and configured to access Resin.io's production downloads S3 bucket.
Run the following command to upload all installers:
```sh
make upload-all
```
As with the `installer` rule, you can replace `all` with `osx`, `linux` or `win32` to only publish those platform's installers:
```sh
make upload-osx
make upload-linux
make upload-win32
```