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 “
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