---
# System prepended metadata

title: 產品上線流程表
tags: [deploy, ' gitlab', ' PM']

---

---
title: 產品上線流程表
tags: deploy, gitlab, PM,  
---
[ToC]

## 產品上線流程
#### 週五：dev -> stage
- Step1. review `trello: PM Test (dev.fio.one) deployed on dev.fio.one` 的卡片數量與細節，在 TADI 宣告 merge 進 dev 的 dead line（建議：不要晚於 16:00）
- Step2. 在 `dev.fio.one` 測試 `trello: PM Test (dev.fio.one) deployed on dev.fio.one` 的卡片
- Step3. 執行 [上線前測步驟](https://hackmd.io/@FiO-Internal/SkVfZVjO5) 中 dev.fio.one 的部分
    - 若有狀況，請先排除再繼續上線流程
- Step4. 發 PR 讓 Joe review
     - PR name eg. `Dev2Stage-20220722-1630`
     - PR 內容為本次上線的卡片 trello 連結，細節請參考 [Link](https://gitlab.com/fio.io/tms/-/merge_requests/501)
- Step5. Joe approved 後，進行人工 merge
    - `git checkout stage`
    - `git merge dev --no-ff`
    - `git push`
- Step6. 若有更新 ACL，在 stage 操作 [步驟](https://gitlab.com/fio.io/db-migrations-store#fio-usage)
    - 可新開一個資料夾在 fio ，在裡面做操作
    - clone 專案 `db-migrations-store` ，要 clone `tms-stage` 環境(要新增 .migrate 的環境位置)
    - clone 專案 `tms` ，要 clone `dev` 環境(最新 code 位置)
    - 在 migrate up 前，確認可連線到 stage 的 mongo DB

- Step7. 將 `trello: PM Test (dev.fio.one) deployed on dev.fio.one` 的卡片移到 `trello: Production Test (stage.fio.one) branch = stage (release)` 區


#### 週一：發 stage -> prod 的 PR
- Step1. 在 `stage.fio.one` 上 測試 `trello: Production Test (stage.fio.one) branch = stage (release)` 的卡片們
- Step2. 執行 [上線前測步驟](https://hackmd.io/@FiO-Internal/SkVfZVjO5) 中 stage.fio.one 的部分
    - 若有狀況，請先排除再繼續上線流程
- Step3. 確認本週有無更動 sheet-service 及 on-chain-service 檔案
    - 有的話會影響 CI 的 deploy-prod-services，去找 Joe
- Step4. 發 PR 讓 Joe review
     - PR name eg. `Stage2Prod-20220726-1000`
     - 日期要撰寫人工 merge 的時間
     - PR 內容為本次上線的卡片 trello 連結，細節請參考 [Link](https://gitlab.com/fio.io/tms/-/merge_requests/502)
- Step5. 等待 Joe approved
- Step6. 若有更新 ACL，在 prod 操作 [步驟](https://gitlab.com/fio.io/db-migrations-store#fio-usage)
    
#### 週二： merge 進 prod
- Step1. 在昨天的 `Stage2Prod` PR 中，點選 deploy![](https://i.imgur.com/t8D6Dpw.png)
- Step2. 手動 merge
  - `git checkout prod`
  - `git merge stage --no-ff`
  - `git push`
- Step3. 執行 [上線前測步驟](https://hackmd.io/@FiO-Internal/SkVfZVjO5) 中 console.fio.one 的部分
- Step4. 將 `trello: Production Test (stage.fio.one) branch = stage (release)` 卡片移到 `Release {date} console.fio.one` 區
- Step5. 在 trello 上建立下週用的 `Release {date} console.fio.one` 工作列表
- Step6. 通知團隊成員已完成上線
