electron-builder
is used to package up the application by CircleCI. The configuration settings can be found in package.json
, under the "build"
key.
If you include a new top-level file to be distributed with the application, it must be added manually to the "files"
array in the configuration settings.
yarn dist
will package up the app, with installers for each OS, and output them into a release
directory.
Note: on macOS, you'll get a warning if you don't sign the package with an Apple developer certificate, which happens within the yarn dist
step. See this tutorial if you need help getting set up with a free account. A Mac Development
certificate will suffice for local testing.
- Update the version number of the release in
package.json
. - Prepare Grid-UI for release by merging any changes from
dev
intomaster
. Important: do not squash and merge, as you'll end up with two different branches. Use "Create a merge commit". - Merge the new code into
master
. CircleCI will build the new installers (yarn dist
) and create a draft release for the new version. Note: if the CI builds for a version number that already exists, it will replace the assets for that version. - Write release notes. The draft can be edited from the GitHub releases page.
- Publish the release. You must manually publish the draft. Within GitHub's UI, edit the draft and select
Publish release
. - Update Github pages Rebuild github pages to display the latest release (git commit -m "docs: pages rebuild" --allow-empty && git push origin master)
- Add the GitHub access token to the
.env
file asGH_TOKEN
. - Update the version number of the release in
package.json
. - Prepare Grid-UI for release by merging any changes from
dev
intomaster
. Important: do not squash and merge, as you'll end up with two different branches. Use "Create a merge commit". - Configure code signing keys for mac and windows. Follow guide here.
- Manually initiate the release with
yarn release
. - Write release notes. The draft can be edited from the GitHub releases page.
- Publish the release. You must manually publish the draft. Within GitHub's UI, edit the draft and select
Publish release
. - Update Github pages Rebuild github pages to display the latest release (git commit -m "docs: pages rebuild" --allow-empty && git push origin master)
grid-ui
versions may be published to various build channels. Push the changes to the appropriate branch and the CI will complete the deployment. Available channels include: dev
, ci
, alpha
, beta
, nightly
, production
, master
, and release
.
For apps created with create-react-app:
- Build the app:
yarn build
- Zip the output (but don't include the
build
dir):cd build && zip -r grid-appname-app-0.1.0.zip .
- Note: you don't have to worry about pruning this zip file, as the
build
directory is in.gitignore
.
- Create a new release in GitHub and include the zip file (e.g. drag and drop it into the GitHub release GUI).
If this is the first time the app is being introduced to Grid:
- Include the app in
grid_apps/apps.json
. See the file for examples. This will include the app in the Nano app menu. - Include the app in relevant client configurations (
about > apps
). Seeethereum_clients/client_plugins/geth.js
for examples.