使用GitHub Actions實現自動化部署( 二 )

是一個持續集成 (Continuous integration)和持續交付 (Continuous delivery)的平臺,它可以做到自動化構建、測試、部署 。你可以創建工作流,構建和測試每一個 pull request 或者部署合并后的代碼到生產環境 。

使用GitHub Actions實現自動化部署

文章插圖
Workflows(工作流)工作流是一個可配置的自動化的程序 。創建一個工作流,你需要定義一個 YAML 文件,當你的倉庫觸發某個事件的時候,工作流就會運行,當然也可以手動觸發,或者定義一個時間表 。一個倉庫可以創建多個工作流,每一個工作流都可以執行不同的步驟 。
使用GitHub Actions實現自動化部署

文章插圖
Events(事件)事件是指倉庫觸發運行工作流的具體的行為,比如創建一個 pull request、新建一個 issue、或者推送一個 commit 。你也可以使用時間表觸發一個工作流,或者通過請求一個 REST API,再或者手動觸發 。
Jobs(任務)任務是在同一個運行器上執行的一組步驟 。一個步驟要么是一個shell 腳本要么是一個動作 。步驟會順序執行 , 并彼此獨立 。因為每一個步驟都在同一個運行器上被執行,所以你可以從一個步驟傳遞數據到另一個步驟。
你可以配置一個任務依賴其他任務,默認情況下,任務沒有依賴 , 并行執行 。當一個任務需要另外一個任務的時候 , 它會等到依賴的任務完成再執行 。
Actions(動作)動作是 GitHub Actions 平臺的一個自定義的應用,它會執行一個復雜但是需要頻繁重復的作業 。使用動作可以減少重復代碼 。比如一個 action 可以實現從 GitHub 拉取你的 git 倉庫 , 為你的構建環境創建合適的工具鏈等 。你可以寫自己的動作 ,或者在 GitHub 市場找已經實現好的動作 。
Runners(運行器)一個運行器是一個可以運行工作流的服務 。每一個運行器一次只運行一個單獨的任務 。GitHub 提供 Ubuntu Linux,Microsoft Windows 和 macOS 運行器,每一個工作流都運行在一個獨立新建的虛擬機中 。如果你需要一個不同的操作系統 , 你可以自定義運行器 。
了解完上面這些有關GitHub Actions的概念,我們開始搭建一條自己的工作流用于項目的部署 。
搭建工作流.github/workflows我們在之前建好的倉庫中點擊New workflow來新建一條工作流 。
使用GitHub Actions實現自動化部署

文章插圖
然后會到選擇工作流的頁面
使用GitHub Actions實現自動化部署

文章插圖
這里你可以選擇一條別人建好的工作流,也可以選擇新建自己的工作流 。
我們還是選擇新建自己的工作流,然后會在我們項目的根目錄下新建一個目錄.github/workflows , 這里會新建一個yml文件,我們這里就叫ci.yml好了
yml在這個文件中,我們要做的事情還是打包以及部署
name: Build and Deployon: # 監聽 main 分支上的 push 事件push:branches:- mainjobs:build-and-deploy:runs-on: ubuntu-latest # 構建環境使用 ubuntusteps:- name: Checkout# 將代碼拉到虛擬機uses: actions/checkout@v2.3.1with:persist-credentials: false- name: Install and Build # 下載依賴 打包項目run: |npm installnpm run build- name: Deploy# 部署uses: JamesIves/github-pages-deploy-action@v4.3.3with:branch: static-pages # 部署后提交到的分支folder: dist # 這里填打包好的目錄名稱我們把這個文件提交上去,它就會在提交代碼后自己完成打包及部署的工作 。
自動化部署
使用GitHub Actions實現自動化部署

文章插圖

使用GitHub Actions實現自動化部署

文章插圖
在代碼提交上去后,它會按照我們工作流的步驟進行打包及部署
使用GitHub Actions實現自動化部署

文章插圖
并且上面可以查看整個工作流的日志 , 方便排查問題
使用GitHub Actions實現自動化部署

文章插圖
部署完訪問地址還是一樣https://bettersong.github.io/nanjiu
到這里我們基于GitHub Actions實現的自動化部署流程就完成了,現在我們在本地修改完代碼后就只需要將代碼推送到遠程,就能夠實現自動打包部署了 。
最后喜歡的同學歡迎點個贊呀~
原文首發地址點這里,歡迎大家關注公眾號 「前端南玖」,如果你想進前端交流群一起學習,請點這里

推薦閱讀