到目前為止,我們已經能夠設定部署和報告伺服器,從推送新提交到更新生產環境中的應用程式都有完整的方法。 但是, 在掌握之前我們能實現什麼自動化? 如果我們進行了一系列檢查以確保我們的應用在部署前行為正確怎麼辦? 這就是github actions派上用場的地方。
github actions是一項功能,可讓您在每次遠端git儲存庫更改時執行自定義檢查以及相應的操作。 使用它的兩種主要方法是在我們的**庫上執行自動檢查或將其用於連續部署。 當我們在自己的伺服器上完成所有cd工作時,我們對前者最感興趣。 也就是說,我們將利用github actions執行測試和其他檢查,以確保我們的**庫正常。
有幾種方法可以管理您的git工作流程。 我不會過多地研究它,但是歸結為您是否要具有功能分支,是否要區分develop
和master
以及是否為每次推送自動部署**。 我研究了一段時間,這對我來說是最有意義的。 就上下文而言,我指的是從事中小型專案的個人或小型團隊。
這是我選擇的工作流程:
我們不需要進行任何配置即可開始。 在.github/workflows
下建立乙個名為nodejs.yml
的檔案並提交,github將自動處理該檔案並在actions
選項卡下顯示nodejs
工作流。
我們的管道將包括三個工作:build
,notify
和create pr
。
我們的構建步驟將包含5個命令,乙個接乙個地執行。
當然,所有步驟都是可選的。 您也可以新增自己的支票。
這是構建作業的完整**:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [8.x, 10. x, 12. x]
steps:
- uses: actions/checkout@v1
- name: use node.js $}
uses: actions/setup-node@v1
with:
node-version: $}
- name: npm install, build, and test
run: |
npm audit
npm ci
npm run lint
npm run build
npm test
strategy.matrix
允許我們在多個node.js版本上並行測試我們的應用程式,這非常方便。
現在,在成功構建後,將webhook傳送到報告伺服器。 請注意從儲存庫機密傳遞webhook_url
。
notify:
needs: build
runs-on: ubuntu-latest
steps:
- name: webhook
uses: joelwmale/[email protected]
env:
webhook_url: $}
github執行構建後,它將觸發到指定url的webhook,以便我們可以捕獲它並顯示一些訊息。
另外,您可以使用jwt或hmac對webhook請求進行簽名(例如,使用此操作 )。
最後,讓我們在成功構建後將pr傳送給master。 帶有github_字首的秘密由github本身提供,因此我們無需在此做任何其他事情。
master-pr:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: create pull request
uses: repo-sync/[email protected]
with:
github_token: $}
關於此工作流程的整潔之處在於,您可以大致了解每個pr的所有作業。
我們做到了! 我們設法建立了部署應用程式的整個工作流程。
這就是我們取得的成就。
每次推送新**:
對**庫進行了審核,以確保沒有安全漏洞
構建工具確保沒有構建時錯誤
執行linter以確保**格式正確
執行測試以確保應用正常執行
公關建立
我們收到通知
每次pr合併到master
:
cd伺服器更新應用程式
cd伺服器通知報告伺服器
我們收到通知
換句話說,所有無聊的工作都是自動完成的,而開發人員的投入卻很少。
from:
不看好devops DevOps應該不難!
不看好devops 到目前為止,我們已經能夠設定部署和報告伺服器,從推送新的提交到更新生產中的應用程式都有完整的方法。但是,在掌握之前我們能實現什麼自動化?如果我們進行了一系列檢查以確保我們的應用在部署前行為正確怎麼辦?這就是github actions派上用場的地方。github actions是...
DevOps之一 DevOps概述
devops development和operations的組合詞 用於促進開發軟體開發人員 dev it運維技術人員 ops 質量保障部門 qa 部門之間溝通 協作與整合的一組過程 方法與系統的統稱。一 概念 1 持續整合 continuous integration 持續整合強調開發人員提交了新...
DevOps模式 定義你的DevOps
遺憾的是,很少有人真的關心 devops 是什麼 當然其實也不重要。比 devops 是什麼來說,更重要的是 devops 能做 什麼 據 john willis 的說法,devops 運動的發起人 patrick debois 一直拒絕給 devops 下定義是一件了不起的事情。patrick d...