GitHub Action一鍵部署配置,值得擁有


最近由於自己的個人應用增加,每次都需要在服務器手動發布,覺得特別麻煩,所以想通過代碼控制自動發布,直接選擇了GitHub Action。

GitHub Action持續集成服務,目前已經免費開放使用,由於大部分人的個人項目都是放在github上,那么使用它來發布、測試、部署,是非常方便的。

參考:個人博客原文鏈接跳轉

#Github Action配置

下面的內容默認你已經會創建Github Action,官方提供了很多Github Action 配置模版,可以根據自己的需求隨意選擇,不是太了解的可以先參考阮一峰 GitHub Actions入門教程,了解一下Github Action。

我們來看看Github Action配置文件的基本構成,配置文件格式是.yml,示例如下:

# main.yml # 一個 workflow,名字為Github Action Example name: Github Action Example # 觸發 workflow 的事件 on: push: # 分支隨意 branches: - master # 一個workflow由執行的一項或多項job jobs: # 一個job任務,任務名為build build: # runs-on 指定job任務運行所需要的虛擬機環境(必填字段) runs-on: ubuntu-latest # steps是每個Job的運行步驟,可以包含一個或多個步驟 steps: # action命令,切換分支獲取源碼 - name: Checkout # 使用action庫 actions/checkout獲取源碼 uses: actions/checkout@master # action命令,安裝Node10 - name: use Node.js 10 # 使用action庫 actions/setup-node安裝node uses: actions/setup-node@v1 with: node-version: 10 # action命令,install && test - name: npm install and test # 運行的命令或者 action run: | npm install npm run test # 環境變量 env: CI: true 
  • Action是工作流中最小的可移植構建塊。你可以創建自己的動作,使用從GitHub社區共享的action庫,以及自定義公共action庫。

  • Step是Job執行的一組任務。Job中的每個步驟都在同一運行程序中執行,從而允許該Job中的操作使用文件系統共享信息,Step可以運行命令或action。

  • Job由Step構成。你可以定義工作流文件中Job的運行方式的依賴關系規則。Job可以同時並行運行,也可以依賴於先前Job的狀態依次運行。

  • Workflow由一個或多個Job組成,可以通過事件進行計划或激活。你可以在存儲庫中設置一個可配置的自動化過程,以在GitHub上構建,測試,打包,發布或部署任何項目。

Github: Github Action插件查詢庫,可以查詢你需要的action庫,這些都是共享的,如果滿足不了需求也可以自己定義。

#Github Action發布阿里雲ECS

下面就是我發布到阿里雲ECS的 Github Action配置文件

我的Github Action服務配置

# main.yml name: deploy to aliyun on: push: branches: - master jobs: build: runs-on: ubuntu-latest steps: # 切換分支 - name: Checkout uses: actions/checkout@master # 下載 git submodule - uses: srt32/git-actions@v0.0.3 with: args: git submodule update --init --recursive # 使用 node:10 - name: use Node.js 10 uses: actions/setup-node@v1 with: node-version: 10 # npm install - name: npm install and build run: | npm install npm run build env: CI: true # Deploy - name: Deploy uses: easingthemes/ssh-deploy@v2.0.7 env: SSH_PRIVATE_KEY: ${{ secrets.ACCESS_TOKEN }} ARGS: "-avz --delete" SOURCE: "[Current File Dir]" REMOTE_HOST: "[Domain]" REMOTE_USER: "[UserName]" TARGET: "[Server Dir]" 

以上是我的配置文件,action插件請根據自己的需求合理選擇。我是要博客網站,發布到阿里雲服務上,所以采用以上配置,而最后的action Deploy中action插件的選擇,也是根據需求,在Github: action插件庫中選擇的。

#更多

使用GitHub Actions發布Hexo網站到GitHub Pages

GitHub Actions發布博客到阿里雲OSS

GitHub Actions自動構建鏡像並推送到阿里雲容器鏡像服務

#參考

Core concepts for GitHub Actions

阮一峰: GitHub Actions 入門教程

ps: 微信公眾號:Yopai,有興趣的可以關注,每周不定期更新。不斷分享,不斷進步


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM