auto-releases.yml 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. # 当分支 main 有 push 事件,并且此次 push 包含了 components 目录下的文件时,执行以下任务
  2. # 读取 components/package.json 中的 version 字段,作为 Releases tag 和 Releases title
  3. # 读取仓库内的 /doc/guide/changelog.md 和 /doc/guide/changelog_en.md 中第一个二级标题与第二个二级标题之间的内容
  4. # 将两个内容合并为一个字符串,中间使用 --- 分隔
  5. # 组成内容示例为:
  6. # - 新增了一个功能。
  7. # ---
  8. # - Add a new feature.
  9. # 将合并的内容作为 Releases describe
  10. # Set as the latest release 并发布本次 Release
  11. # 删除 releases.md 文件
  12. name: Auto releases
  13. on:
  14. push:
  15. branches:
  16. - main
  17. paths:
  18. - 'components/**'
  19. jobs:
  20. releases:
  21. runs-on: ubuntu-latest
  22. steps:
  23. - name: Checkout
  24. uses: actions/checkout@v2
  25. # 读取 components/package.json 中的 version 字段,作为 Releases tag 和 Releases title
  26. - name: Get version
  27. id: version
  28. run: |
  29. echo version=$(cat components/package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g' | tr -d '[[:space:]]') >> $GITHUB_OUTPUT
  30. # echo ::set-output name=version::$(cat components/package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g' | tr -d '[[:space:]]')
  31. - name: Setup Node.js environment
  32. uses: actions/setup-node@v1
  33. with:
  34. node-version: 18.x
  35. # 安装 pnpm
  36. - name: Install pnpm
  37. run: |
  38. npm install -g pnpm
  39. # cd 到 .github/workflows 目录下,执行 pnpm install,再执行 node releases.js,生成 releases.md 文件
  40. - name: Install dependencies
  41. run: |
  42. cd .github/workflows
  43. pnpm install
  44. # 读取 releases.md 文件内容,作为 Releases describe
  45. - name: Get body
  46. id: body
  47. run: |
  48. echo body=$(cat releases.md) >> $GITHUB_OUTPUT
  49. # echo ::set-output name=body::$(cat releases.md)
  50. # 作为 latest release 发布本次 Release
  51. - name: Release
  52. uses: actions/create-release@v1
  53. env:
  54. GITHUB_TOKEN: ${{ secrets.STDF_GITHUB_TOKEN }}
  55. with:
  56. tag_name: ${{ steps.tag.outputs.version }}
  57. release_name: ${{ steps.tag.outputs.version }}
  58. body: ${{ steps.body.outputs.body }}
  59. draft: false
  60. prerelease: false
  61. # 删除 releases.md 文件
  62. - name: Remove releases.md
  63. run: |
  64. rm releases.md