使用 GitHub Actions 触发自动发布

315 阅读2分钟

使用 GitHub Actions 触发自动发布(自动发布新版本)可以通过在你的 GitHub 仓库中创建一个自定义工作流(workflow)来实现。以下是具体步骤: 1. 创建 GitHub Actions 工作流文件: 在你的项目根目录下创建一个 .github/workflows 文件夹,如果这个文件夹还不存在的话。 2. 定义工作流: 在 .github/workflows 文件夹中创建一个 YAML 文件(比如 release.yml)来定义你的工作流。以下是一个简单的示例,用于在每次推送到 main 分支时自动发布新版本:


yaml

name: Release

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Set up Node.js
        uses: actions/setup-node@v2
        with:
          node-version: '14'

      - name: Install dependencies
        run: npm install

      - name: Run tests
        run: npm test

      - name: Bump version and push tag
        id: bump_version
        uses: anothrNick/github-tag-action@v1.36.0
        with:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: Create Release
        id: create_release
        uses: actions/create-release@v1
        with:
          tag_name: ${{ steps.bump_version.outputs.new_tag }}
          release_name: Release ${{ steps.bump_version.outputs.new_tag }}
          body: |
            Release notes here...
          draft: false
          prerelease: false

      - name: Upload Release Asset
        uses: actions/upload-release-asset@v1
        with:
          upload_url: ${{ steps.create_release.outputs.upload_url }}
          asset_path: ./path/to/your/asset.zip
          asset_name: asset.zip
          asset_content_type: application/zip

以上工作流文件做了以下几件事:

  • 当推送到 main 分支时触发该工作流。 -- 检出代码。
  • 设置 Node.js 环境。
  • 安装依赖并运行测试。
  • 使用 github-tag-action 自动生成新的标签(tag)。
  • 使用 create-release 动作创建一个新的发布。
  • 使用 upload-release-asset 上传一个发布资源。
  1. 保存工作流文件并推送: 保存文件并推送更改到你的 GitHub 仓库。
git add .github/workflows/release.yml
git commit -m "Add release workflow" git push origin main
  1. 配置必要的 Secrets: 如果你的工作流需要一些敏感信息,比如 GITHUB_TOKEN,你需要在 GitHub 仓库的设置中配置它们。GitHub 默认会为每个工作流提供一个 GITHUB_TOKEN,你不需要额外配置。
  2. 触发工作流: 每次你推送代码到 main 分支时,这个工作流将会被自动触发,进行新的发布。 这样,你就可以通过 GitHub Actions 自动发布你的项目了。根据你的项目需求,可以调整和扩展上述示例中的各个步骤。