Skip to content
This repository has been archived by the owner on Sep 5, 2020. It is now read-only.

[gulp] Refactor and Ethereum-Wallet NSIS installer #1642

Merged
merged 31 commits into from
Apr 3, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
cd54913
Add Ethereum-Wallet NSIS installer
Feb 3, 2017
dbc7efe
minor changes
Feb 4, 2017
89ff780
improve makensis call
Feb 4, 2017
4125fc8
Improve Uploader
Feb 4, 2017
7a9c235
Refactor
Feb 4, 2017
06c52d5
refactor
Feb 20, 2017
7dcc108
remove eth node
Feb 22, 2017
bcedb49
remove build-dist.js
Feb 22, 2017
50ffd65
added 'options.platforms' and 'options.activePlatforms'
Feb 23, 2017
79c82b3
remove squirrel
Feb 24, 2017
ec3a5d3
Merge branch 'develop' into luclu-nsis-wallet
luclu Feb 24, 2017
52a78b3
fix
Feb 24, 2017
40a1647
cleanup
Feb 24, 2017
b2adcf7
string formating, windows compatibility
Mar 3, 2017
b76e7a5
md5 checksum platform compatibiliy
Mar 3, 2017
07dd11e
cleanup Linter errors
Mar 3, 2017
cfa2817
update travis.yml
Mar 3, 2017
7309dc2
Merge branch 'develop' into luclu-nsis-wallet
frozeman Mar 6, 2017
dcc3a21
minor fix
Mar 6, 2017
eece787
improve platform usage hint (don't show 'mac' on non macOS systems)
Mar 6, 2017
15265c6
Rectifying documentation
evertonfraga Mar 6, 2017
ce33734
update Readme
Mar 6, 2017
9be280e
typo in readme
Mar 11, 2017
bdc4ff8
add clarification on available platforms on the host platform
Mar 11, 2017
e9e2edf
remove unnessecary linux dep
Mar 11, 2017
0b30191
Merge
evertonfraga Mar 13, 2017
dd5c547
cleanup patch string
Mar 14, 2017
88377c3
Merge branch 'develop' into luclu-nsis-wallet
evertonfraga Mar 15, 2017
37a8e86
Merge branch 'develop' into luclu-nsis-wallet
frozeman Mar 20, 2017
b3a495f
Merge branch 'develop' into luclu-nsis-wallet
luclu Mar 27, 2017
62cedf8
Merge branch 'develop' into luclu-nsis-wallet
Mar 28, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .eslintrc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ rules:
import/no-extraneous-dependencies: ## checks if required modules are missing in packages.json
- error
- devDependencies: ## declares files, whose imports belong to devDependencies
- "**/scripts/build-dist.js"
- "**/tests/_base.js"
- "**/*.test.js"
- "**/gulpTasks/*.js"

globals: # don't warn about missing declarations
i18n: true
Expand Down
12 changes: 4 additions & 8 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,6 @@ matrix:
- sudo dpkg --add-architecture i386 && sudo add-apt-repository ppa:ubuntu-wine/ppa -y
- sudo apt-get update -q
- sudo apt-get install --no-install-recommends -y mono-devel ca-certificates-mono wine1.8
after_script:
- makensis -V2 scripts/windows-installer.nsi


# LINUX
- os: linux
Expand Down Expand Up @@ -71,14 +68,13 @@ install:

script:
- if [[ $TRAVIS_BRANCH != "master" ]]; then unset CSC_LINK CSC_KEY_PASSWORD; fi # disable macOS code-signing (production certificate) on develop branch
- travis_wait 60 gulp mist --platform $GULP_PLATFORM
- if [[ $TRAVIS_BRANCH == "master" ]]; then travis_wait 60 gulp wallet --platform $GULP_PLATFORM; fi # also build wallet if on master branch
- travis_wait 60 gulp --$GULP_PLATFORM
- if [[ $TRAVIS_BRANCH == "master" ]]; then travis_wait 60 gulp --wallet --$GULP_PLATFORM; fi # also build wallet if on master branch
- if [[ $TRAVIS_OS_NAME == "linux" ]]; then export DISPLAY=:99.0; sh -e /etc/init.d/xvfb start; sleep 3; fi
- if [[ $GULP_PLATFORM != "win" ]]; then gulp test-mist; fi
- if [[ $GULP_PLATFORM != "win" ]]; then gulp test; fi

after_success:
- gulp mist-checksums --platform $GULP_PLATFORM
- if [[ $TRAVIS_BRANCH == "master" ]]; then gulp wallet-checksums --platform $GULP_PLATFORM; fi
- if [[ $TRAVIS_BRANCH == "master" ]]; then gulp uploadQueue --$GULP_PLATFORM; fi

notifications:
webhooks:
Expand Down
84 changes: 41 additions & 43 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,60 +136,61 @@ $ electron . --rpc ~/Library/Ethereum/geth.ipc --node-networkid 1234 --node-dat
_NOTE: since `ipcpath` is also a Mist option you do not need to also include a
`--node-ipcpath` option._

You can also run `geth` separately yourself with the same options prior to start
Mist normally.
You can also launch `geth` separately with the same options prior starting
Mist.


### Deployment

Our build system relies on [gulp](http://gulpjs.com/) and [electron-builder](https://github.com/electron-userland/electron-builder/).

To create a binaries you need to install [`electron-builder` dependencies](https://github.com/electron-userland/electron-builder/wiki/Multi-Platform-Build#macos):
#### Dependencies

[meteor-build-client](https://github.com/frozeman/meteor-build-client) bundles the [meteor](https://www.meteor.com/)-based interface. Install it via:

// tools for the windows binaries
$ brew install wine --without-x11 mono makensis
// tools for the Linux binaries
$ brew install gnu-tar libicns graphicsmagick xz
// general dependencies
$ npm install -g meteor-build-client

To generate the binaries simply run:
Furthermore cross-platform builds require additional [`electron-builder` dependencies](https://github.com/electron-userland/electron-builder/wiki/Multi-Platform-Build#linux). On macOS those are:

$ cd mist
$ gulp
// windows deps
$ brew install wine --without-x11 mono makensis

// Or to generate the wallet (using the https://github.com/ethereum/meteor-dapp-wallet -> master)
$ gulp wallet
// linux deps
$ brew install gnu-tar libicns graphicsmagick xz

This will generate the binaries inside the `dist_mist/release` or `dist_wallet/release` folder.
#### Generate packages

#### Options
To generate the binaries for Mist run:

##### platform
$ gulp

Additional you can only build the windows, linux, mac or all binary by using the `platform` option:
To generate the Ethereum Wallet (this will pack the one Ðapp from https://github.com/ethereum/meteor-dapp-wallet):

$ gulp update-nodes --platform mac
$ gulp --wallet

// And
$ gulp mist --platform mac
The generated binaries will be under `dist_mist/release` or `dist_wallet/release`.

// Or
$ gulp mist --platform mac,win

#### Options

Options are:
##### platform

To build binaries for specific platforms (default: all available) use the following flags:

// on mac
$ gulp --win --linux --mac

- `mac` (Mac OSX)
- `win` (Windows)
- `linux` (Linux)
- `all` (default)
// on linux
$ gulp --win --linux

// on win
$ gulp --win

##### walletSource

With the `walletSource` you can specify the branch to use, default ist `master`:
With the `walletSource` you can specify the Wallet branch to use, default is `master`:

$ gulp mist --walletSource develop
$ gulp --wallet --walletSource develop


Options are:
Expand All @@ -198,28 +199,25 @@ Options are:
- `develop`
- `local` Will try to build the wallet from [mist/]../meteor-dapp-wallet/app

##### mist-checksums | wallet-checksums
*Note: applicable only when combined with `--wallet`*

Spits out the SHA256 checksums of distributables.
#### Checksums

Spits out the MD5 checksums of distributables.

It expects installer/zip files to be in the generated folders e.g. `dist_mist/release`

$ gulp mist-checksums
$ gulp checksums [--wallet]

3f726fff186b85c600ea2459413d0bf5ada2dbc98877764efbefa545f96eb975 ./dist_mist/release/Mist-0.8.1-ia32.exe
ab4d26d5ebc66e9aba0fa610071266bacbb83faacbb7ed0dd2acb24386190bdb ./dist_mist/release/Mist-0.8.1.exe
909b0fb4c7b09b731b2a442c457747e04ffdd9c03b6edc06079ae05a46200d13 ./dist_mist/release/Mist-0.8.1-ia32.deb
e114d6188963dfdae0489abf4e8923da58b39ff9cdbaad26e803af27c7ce55d1 ./dist_mist/release/Mist-0.8.1.deb
930787dd2f5ed6931068bff9244bccc01f397f552c48ded0f08e515e276dd080 ./dist_mist/release/Mist-0.8.1.dmg

### Code signing for production
## Testing

**As of [#972](https://github.com/ethereum/mist/pull/972) we've updated the build process and thus need to redo code-signing.**
First make sure to build Mist with:

$ gulp [--wallet]

## Testing
Then run the tests:

First make sure to build Mist with:
`gulp mist --platform [mac,linux]` or `gulp wallet --platform [mac,linux]`.
$ gulp test [--wallet]

Then run `gulp test-mist` or `gulp test-wallet`, accordingly.
*Note: Integration tests are not yet supported on Windows.*
Loading