Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updating release notes #325

Merged
merged 2 commits into from
Oct 25, 2017
Merged
Changes from all commits
Commits
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
43 changes: 41 additions & 2 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,15 @@

## Prepare a release

### On GitHub

First create a draft release on GitHub for the upcoming release: https://github.com/realm/realm-studio/releases/new.

Use "tag version" with includes the v-prefix (ex. "v.1.2.0") and document the enhancements, bug-fixes and internal
changes in the body of the release. Save this as a draft release. Remember to use the correct branch (probably master).

### On Jenkins

Start by preparing a release from the branch you want to release from (default: `master`).

You have to specify the version that you want to release - please use [semantic versioning](http://semver.org/), and
Expand All @@ -14,11 +23,41 @@ choose the next version based on what changes the master has compared to the lat

To prepare a release, go to https://ci.realm.io/job/realm-studio/job/prepare/build.

To see what the prepare job does, see https://github.com/realm/realm-studio/blob/master/Jenkinsfile.prepare.
To see what the prepare job does, see https://github.com/realm/realm-studio/blob/master/Jenkinsfile.prepare - this is
what it's basically doing:

1. Checkout the branch
2. Run `npm version` with the next version specified
3. Save that new version from the `package.json` into the `package-lock.json`
4. Commit in the two files changed
5. Tag the commit with the new version
6. Waiting for you to confirm the change - see
[the console output](https://ci.realm.io/blue/organizations/jenkins/realm-studio%2Fprepare/activity)
if you're wondering why the build is taking so long
7. Push the changes and tag to GitHub
8. Start a release job

## Release a prepared release

To publish the release, go to https://ci.realm.io/job/realm-studio/job/release/build and select the version tag that
you want to build and release for.

To see what the release job does, see https://github.com/realm/realm-studio/blob/master/Jenkinsfile.release.
To see what the release job does, see https://github.com/realm/realm-studio/blob/master/Jenkinsfile.release - this is
what it's basically doing:

1. Checkout the branch
2. Check that the version tag matches the version in package.json
3. Build, test and package in two parallel tracks "MacOS" and "Others" (the latter being Windows + Linux).
1. Installing dependencies (`npm install`)
2. Build the app (`npm run build`)
3. Package up the app (`electron-builder`) - never publishing.
4. Archive + stash artifacts
4. Once packaged - it'll post a message to Slack notifying that the job is awaiting approval to continue.
5. If approved - unstash and upload artifacts to S3
6. Post the release to Slack!

## Publish on GitHub

Go to [the release on GitHub](https://github.com/realm/realm-studio/releases) and publish the release.
This turns the release in to the latest release for users downloading the latest version via
https://studio-releases.realm.io/latest.