| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- # 当分支 main 有 push 事件并且 tag 为 v* 时触发,使用 GitHub Actions 执行以下步骤:
- # 读取 tag 内容,例如 v0.0.12,作为 Releases title
- # 读取仓库内的 /doc/guide/changelog.md 和 /doc/guide/changelog_en.md 中第一个二级标题与第二个二级标题之间的内容
- # 将两个内容合并为一个字符串,中间使用 --- 分隔
- # 组成内容示例为:
- # - 新增了一个功能。
- # ---
- # - Add a new feature.
- # 将合并的内容作为 Releases describe
- # Set as the latest release 并发布本次 Release
- name: Auto releases
- on:
- push:
- branches:
- - main
- jobs:
- releases:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- - uses: actions/checkout@v2
- # 读取最新push的 tag 内容,如果是 v 开头,则往下执行,否则退出
- - name: Check tag
- run: |
- if [[ $GITHUB_REF != 'refs/tags/v'* ]]; then
- echo "This is not a tag push. Skipping."
- exit 78
- fi
- # 读取 tag 内容,例如 v0.0.12,作为 Releases title
- - name: Get tag
- id: tag
- run: |
- echo tag=${GITHUB_REF#refs/*/} >> $GITHUB_OUTPUT
- - name: Setup Node.js environment
- uses: actions/setup-node@v1
- with:
- node-version: 18.x
- # 安装 pnpm
- - name: Install pnpm
- run: |
- npm install -g pnpm
- # cd 到 .github/workflows 目录下,执行 pnpm install,再执行 node releases.js,生成 releases.md 文件
- - name: Install dependencies
- run: |
- cd .github/workflows
- pnpm install
- # 读取 releases.md 文件内容,作为 Releases describe
- - name: Get body
- id: body
- run: |
- echo body=$(cat releases.md) >> $GITHUB_OUTPUT
- # echo ::set-output name=body::$(cat releases.md)
- # 作为 latest release 发布本次 Release
- - name: Release
- uses: actions/create-release@v1
- env:
- GITHUB_TOKEN: ${{ secrets.STDF_GITHUB_TOKEN }}
- with:
- tag_name: ${{ steps.tag.outputs.tag }}
- release_name: ${{ steps.tag.outputs.tag }}
- body: ${{ steps.body.outputs.body }}
- draft: false
- prerelease: false
- # 删除 releases.md 文件
- - name: Remove releases.md
- run: |
- rm releases.md
|