GitHub Actions 入門指南

可可西里發表於2024-01-17

前言

GitHub Actions 可以構建一組自動化的工作流程,並提供了拉取請求、合併分支等事件來觸發他們。一般成熟的開源專案會在每個版本釋出時提供 releases ,它就是透過 Actions 來自動釋出的。本文就以自動釋出 releases 這個例子來認識 Actions。

建立 workflow

workflow 被稱為工作流,每個工作流以一個 yaml 檔案表達。在倉庫中建立  .github/workflows/release.yaml 檔案,如果需要多個工作流,則建立多個 yaml 檔案即可。

release.yaml:

# 定義工作流的名稱
name: teach-study Release
# 定義一個 push 事件:當推送帶有 "v*" 的標籤時觸發
on:
  push:
    tags:
      - "v*"
# 定義時區
env:
  TZ: Asia/Shanghai

這樣我們就定義好了一個事件,接下來我們來定義 jobs,來建立自動上傳 release 的邏輯:

...
jobs:
  create_release:
    name: Create Release
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Code
        uses: actions/checkout@v4
      - name: Create Release
        id: create_release
        uses: softprops/action-gh-release@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag_name: ${{ github.ref }}
          name: Demo ${{ github.ref_name }}
          draft: false
          prerelease: false

這個 jobs 包含了兩個操作。什麼是操作呢?可以理解為執行一組命令來完成某些事情,操作既可以 自定義,也可以使用  中分享的。在 job 中使用  uses 指定,搭配上  with 關鍵詞用於給操作傳遞引數。

第一個使用了  actions/checkout@v4 操作,它可以幫助我們將倉庫中的原始碼複製到工作流中來,這個操作是 GitHub Action 內建的操作之一。第二個使用了  softprops/action-gh-release@v1 的操作建立了一個 release 並自動上傳到 GitHub 中,  ${{ secrets.GITHUB_TOKEN }} 用於 自動令牌身份驗證with 傳遞了四個引數,其中  tag_name 和  name 的值傳遞了 Actions 的 , softprops/action-gh-release@v1 還有其他可選的引數,可以 檢視。

驗證

把 release.yaml 推送到倉庫中,並且設定好 GITHUB_TOKEN 的讀寫許可權:

 

GitHub Actions 入門指南

然後推送一個 v1.0.0 的標籤:

git tag v1.0.0
git push origin --tags

檢視最終效果:

GitHub Actions 入門指南

GitHub Actions 入門指南


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70036623/viewspace-3004215/,如需轉載,請註明出處,否則將追究法律責任。

相關文章