GitHub Actions 是 GitHub 提供的一種持續整合(CI)和持續部署(CD)的工具,用於自動化軟體開發過程中的各種任務和工作流。GitHub Action Workflow 是一組定義在儲存庫中的自動化任務,可以根據不同的事件(例如程式碼推播、拉取請求、問題建立等)觸發執行。
每個 GitHub Action Workflow 都是由一個或多個步驟(Steps)組成,每個步驟可以包含一個或多個命令、指令碼或操作。這些步驟可以按順序執行,也可以並行執行,以便自動化構建、測試、部署等任務。
一些常見的用途包括:
GitHub Action Workflow 使用 YAML 檔案來定義,該檔案位於儲存庫中的 .github/workflows
目錄下。這些定義可以根據專案的需求進行設定和自定義。
# 定義構建流程
name: Build Process
# 當程式碼被推播到儲存庫時觸發工作流
on: push
jobs:
# 定義構建作業
build:
# 在 Windows 環境中執行
runs-on: windows-latest
steps:
# 步驟:檢出程式碼
- name: Checkout code
uses: actions/checkout@v3
# 步驟:設定 MSBuild
- name: Setup MSBuild
uses: microsoft/[email protected]
# 步驟:構建 VS 專案
- name: Build VS Project
run: |
# 執行生成 DLL 的命令
msbuild project.sln /p:Configuration=Release /p:Platform=x64
# 步驟:上傳 ZIP 構件
- name: Upload ZIP Artifact
uses: actions/upload-artifact@v3
with:
name: project
# 壓縮包過期時間
retention-days: 90
# 壓縮包路徑,需要根據自己專案設定進行相對應的設定
path: |
release
# 定義構建流程
name: Build Process
# 當程式碼被推播到儲存庫時觸發工作流
on: push
jobs:
# 定義構建作業
build:
# 在 Ubuntu 環境中執行
runs-on: ubuntu-latest
steps:
# 步驟:檢出程式碼
- name: Checkout code
uses: actions/checkout@v3
# 步驟:設定 Java 環境為 JDK 8,並使用 Corretto 發行版,快取 Maven
- name: Setup Java
uses: actions/setup-java@v3
with:
java-version: '8'
distribution: 'corretto'
cache: 'maven'
# 步驟:構建 Maven 專案
- name: Build Maven Project
run: |
# 執行打包 Maven 專案的命令
mvn -DskipTests package
# 步驟:上傳 ZIP 構件
- name: Upload ZIP Artifact
uses: actions/upload-artifact@v3
with:
name: project
retention-days: 90
path: |
target/*
在專案根路徑建立/.github/workflows資料夾,並在這個路徑下放置你的yaml構建指令碼
如果你對於一些不會寫的構建過程,你可以到Actions MarketPlace
找到對應的構建指令碼並直接使用。
https://github.com/marketplace?type=actions
https://docs.github.com/zh/actions