Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

Update release deployment docs #20

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
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
37 changes: 25 additions & 12 deletions release-deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,10 @@ There's nothing special about that. Each developer follows the above [Develop a
the release.

```
$ git checkout master
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added these extra steps to ensure that branches are up to date before merging.

$ git pull
$ git checkout develop
$ git pull
$ git merge master
```

Expand Down Expand Up @@ -113,7 +116,7 @@ There's nothing special about that. Each developer follows the above [Develop a
* Base: `master`
* Compare: `release-vX.Y.Z`
Paste the Release Checklist into the PR body. Each project should define a release
checklist. It will vary across projects, but you can refer to the Astro [Release](https://github.com/mobify/astro/blob/develop/RELEASE.md) document
checklist. It will vary across projects, but you can refer to the Mobify Code Style [Release](https://github.com/mobify/mobify-code-style/blob/develop/RELEASE.md) document
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Astro release doc is long and has special cases. Use the code style version for reference instead.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor point, I'd try to always reference master branches, as a best practice to try and reference reliable/production content.

for an example.

1. At some point in the checklist you will merge the release branch into `master`.
Expand All @@ -127,22 +130,21 @@ There's nothing special about that. Each developer follows the above [Develop a
* Description: Include a high-level list of things changed in this release.
Click `Publish release`.

1. Merge the `release-vX.Y.Z` into `develop`.
1. Merge `master` into `develop`.
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After the last two steps have been followed, master should be up to date with the release PR's changes. As previously discussed, master should update develop so that any hotfixes are caught and included in the downstream update.


```
$ git checkout master
$ git pull
$ git checkout develop
$ git merge release-vX.Y.Z
$ git merge master
$ git push
```

1. Finish off the tasks in the release checklist. Once everything is done, close
the release PR.
1. Finish off the tasks in the release checklist.
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At this point the PR should already be merged and closed (reference earlier steps).


Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should already be covered by previous steps.

**TBD: Discuss**
Mike N: Long-lived release branches, yes/no?

1. Create the release on Github from `master`.

### Change in plan, pull a feature from a release

**TBD: Discuss**
Expand All @@ -166,6 +168,7 @@ code in it already.

```
$ git checkout master
$ git pull
$ git checkout -b hotfix-documentation-broken-links
$ git push --set-upstream hotfix-documentation-broken-links
```
Expand Down Expand Up @@ -203,16 +206,17 @@ code in it already.
patch part of the version when releasing a hotfix and so even hotfixes go
through the process of creating a release like this.*

1. Merge the `hotfix-documentation-broken-links` into `develop`.
1. Merge `master` into `develop`.

```
$ git checkout master
$ git pull
$ git checkout develop
$ git merge hotfix-documentation-broken-links
$ git merge master
$ git push
```

1. Finish off the tasks in the release checklist. Once everything is done, close
the hotfix PR.
1. Finish off the tasks in the release checklist.

## Migrate a legacy project

Expand All @@ -233,7 +237,7 @@ The process for tagging and merging is a bit different when deploying a bundle,

1. Create a bundle to be sent to the customer for verification and approval off of the `release-vX.Y.Z` branch.

Ensure you have installed the automated bundle message script found [here] (https:// mobify.atlassian.net/wiki/questions/81789082/how-do-i-automate-a-bundle-message-using-bash). Follow these steps:
Ensure you have installed the automated bundle message script found [here] (https://mobify.atlassian.net/wiki/questions/81789082/how-do-i-automate-a-bundle-message-using-bash). Follow these steps:

```
$ grunt push -m "$(message Mobile X.Y.Z)"
Expand Down Expand Up @@ -269,3 +273,12 @@ The process for tagging and merging is a bit different when deploying a bundle,
Click `Publish release`.

**NOTE: the release tag will be 1 commit ahead of the bundle commit**

1. Merge `master` into `develop`.
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An explicit reminder here to update develop with master.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this is a duplicate of the process we wrote above, what do you think about DRYing this up by simply linking to the step above on how to do this?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A good call @jansepar . I'll update the steps in this part of the doc by linking up to the sections they are referencing.

```
$ git checkout master
$ git pull
$ git checkout develop
$ git merge master
$ git push
```