14
Release Purpose Release is a pakaged build by delivery team. This bundle many features reflected from customer requirement. This Release Package will be deployed to the customer site. Relationship Principles of version name

Release Purpose Relationship

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

ReleaseRelease Purpose

Khai báo

<MAJOR>.<MINOR>.<PATCH>

Quy tc tng s

Examples

Title Description Is Required? Purpose
app/code/Magestore All files and directories under app/code/Magestore modules
Yes Make sure all files deliver to customer alike all files we managing on our VCS
pub
Some line, version of POS still store images in pub directory, release package have to have that folder to prevent missing image when deploy onto customer site
Yes (if exist) Contains images use for some modules like: Webpos, Rewardpoints
thì version tip theo là 2.0.0
Release package file structure
var/.magestore_delivery/release- <tag_name>.manifest
Note: <tag_name> is release tag name
Store hashed content of all files in release package use sha1 algorithm
Yes
- To save the state of all file content that we deliver to customer - To verify the file on customer site still in original content after a while usage (before we fixbug or deploy newer version).
var/.magestore_delivery/release- <tag_name>.manifest.sha1
Store hashed content of file: var/.magestore_delivery/release-<tag_name>.manifest
use sha1 algorithm
Yes Quickly check the release manifest modified or not.
1. Prepare environment (as same UAT site as posible - the site that we negotiate with customer when project start).
2. Presenter comes to each issue anh plays follow the scenario described. 3. Update issue label
Not qualified Comment the reason not qualified Move issue back to the column "State: Pending"
Activity
Internal Acceptance Prerequisite

Do not thing with issue.
1. Summary the result of all issues need to release 2. Make decision
If any issue with label "Type: Bug" or "Type: User story" does not meet its requirement or have to move back to previous state, that means the upcomming release is not qualified
Cancel (Not qualify the quality of code to deliver to the customer) Plan next Internal Acceptance day.
Release (Qualified)
1. From project page go to Repotitory > Branches. Type "release" in the search box, then press "Enter"
Decide to do the release Prerequisite

Release use tool
2. If the branch named "release" exists click "Delete" button, otherwise go to step 4.
3. Type "release" then click "Delete protected branch"
4. Click button "New branch"
Then click "Create branch" button
6. Waiting for release job running.
Prepare release manually Prepare release manually
Prerequisite

1. Collect issue card need to release for project as requirement at prerequisite section above.
2. Clone project to local computer 3. Checkout branch develop 4. From the collected issue list at step 1, choose the next version release follow [Principles
of Naming Version] 5. Create release branch from develop with name follow format: release-v<release_version>
. <release_version> is the release number you selected at step 4 6. Change release version
Edit file Source/server/app/code/Magestore/Deli/etc/config.xml . Change the version to release version number
7. Write release note Edit file CHANGELOG.md (create new if not exists). Append the list issue card collect from step 1, write as below format
<release_version> : release version <pos_line> : current POS line project using. <pos_version> : current POS version project using. <issue_id> : id of issue in project on gitlab <issue_url> : url to view issue on gitlab <issue_title> : issue title
v<release_version>
1. [#<issue_id>](<issue_url>): <issue_title>
8. Build code client 9. Copy build directory in Source/client/pos dir to pos dir in
Source/server/app/code/Magestore/Webpos/build/apps
10. Create release manifest Create a file contains all file content is hashed in sha1 algorithm
Delete all files under Source/server/var/.magestore_delivery/ Create release manifest file
Issue Card type feature or bug need to release have to assign into the milestone of current week. Issue card have to have at least two labels: "Type: Bug" or "Type: User story" and "State: Delivery Ready"
Source/server/var/.magestore_delivery/release-v<release_version>.manifest
cd Source/serverfind app/code/Magestore -type f -exec sha1sum "{}" +
>"var/.magestore_delivery/release-v<release_version>.manifest"
sha1sum "var/.magestore_delivery/release-v<release_version>.manifest"
git add CHANGELOG.md Source/server/app/code/Magestore/Webpos/build
13. Add release tag
14. Push commit and tag to remote
git push -u origin release-v<release_version> --tags
Release Release manually

1. Merge relase code to master branch
git fetchgit checkout -b master # omit -b flag if you already checkout master before
git pull origin mastergit merge --no-ff relase-v<release_version> -m "Merge branch
'release-v<release_version>' into 'master'"
2. Merge release code back to develop branch
git fetchgit checkout -b develop # omit -b flag if you already checkout develop
before
git merge --ff-only relase-v<release_version>
git push -u origin develop
3. Create release notes on gitlab Access project tags page follow format: https://gitlab.com/noodle_team/<project_path>/-/tags
Click edit to release tag Copy release note from CHANGELOG.md at youre root repository Paste to release note section Click button Save changes
4. Move issue collected at step 1 of prepare release activity from column "State: Delivery Ready" to column "State: Delivery Done" in Group Issue Board.
Process after prepare release activity
1. Checkout release tag
git checkout tags/v<release_version>
cd Source/server
<tag_name>.tar.gz app/code/Magestore var/.magestore_delivery# folder named "pub" is
existstar -cvaf <project_path>-delivery-<tag_name>.tar.gz app/code/Magestore pub
Create release package Create from tag Create by hand
See the guide on Gitlab
1. Download package from release page (note: only download package with extension .tar.gz )
Downloaded package has below format: <project_path>-<tag_name>.tar.gz 2. Extract downloaded package
tar -xvf <project_path>-<tag_name>.tar.gz
3. Change to server dir in extracted package
cd <project_path>-<tag_name>/Source/server
4. Create release package
<tag_name>.tar.gz app/code/Magestore var/.magestore_delivery# folder named "pub" is
existstar -cvaf <project_path>-delivery-<tag_name>.tar.gz app/code/Magestore pub
Use tool
Create from release full Source code package Create by hand
var/.magestore_delivery
See the guide on Gitlab
1. Go to Gitlab Group issue board 2. Drag issues related to the release from column "State: Delivery Ready" then drop to
column "State: Delivery Done"
Update soon
1. Go to Project detail page 2. Create new issue card for Project
Title: "Delivery <release_tag>" Description: Copy from release notes, then link back to project detail release page Labels: "State: To Do", "Type: Deploy" Milestone: Milestone of current week.
Use tool
Use tool
Update soon.
Use tool
Revision #20 Created Wed, May 20, 2020 8:36 AM by Mike Mike Updated Wed, Mar 17, 2021 7:08 AM by Oliver Hoang