|
@@ -1,81 +0,0 @@
|
|
|
-# 当分支 main 有 push 事件,并且提交信息包含 [active releases] 时触发,表示主动触发此 Action
|
|
|
|
|
-# 读取 components/package.json 中的 version 字段,作为 Releases tag 和 Releases title
|
|
|
|
|
-# 读取仓库内的 /doc/guide/changelog.md 和 /doc/guide/changelog_en.md 的第一行内容,去除 ## 和空格,与 components/package.json 中的 version 字段比较
|
|
|
|
|
-# 如果不相同则此次不需要发布 Release,退出
|
|
|
|
|
-# 如果相同则继续往下执行
|
|
|
|
|
-# 读取仓库内的 /doc/guide/changelog.md 中前两个二级标题之间的内容,包含换行和空格
|
|
|
|
|
-# 读取仓库内的 /doc/guide/changelog_en.md 中第一个二级标题与第二个二级标题之间的内容,包含换行和空格
|
|
|
|
|
-# Set as the latest release 并发布本次 Release,body 为上一步的两个内容合并为一个字符串,中间使用 --- 分隔
|
|
|
|
|
-
|
|
|
|
|
-name: Auto releases
|
|
|
|
|
-
|
|
|
|
|
-on:
|
|
|
|
|
- push:
|
|
|
|
|
- branches:
|
|
|
|
|
- - main
|
|
|
|
|
- if: "contains(github.event.head_commit.message, '[active releases]')"
|
|
|
|
|
-
|
|
|
|
|
-jobs:
|
|
|
|
|
- releases:
|
|
|
|
|
- runs-on: ubuntu-latest
|
|
|
|
|
-
|
|
|
|
|
- steps:
|
|
|
|
|
- - name: Checkout
|
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
|
-
|
|
|
|
|
- # 读取 components/package.json 中的 version 字段,作为 Releases tag 和 Releases title
|
|
|
|
|
- - name: Get version
|
|
|
|
|
- id: version
|
|
|
|
|
- run: |
|
|
|
|
|
- echo version=$(cat components/package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g' | tr -d '[[:space:]]') >> $GITHUB_OUTPUT
|
|
|
|
|
-
|
|
|
|
|
- # 读取仓库内的 /doc/guide/changelog.md 的第一行内容,去除 ## 和空格
|
|
|
|
|
- - name: Get md_version
|
|
|
|
|
- id: md_version
|
|
|
|
|
- run: |
|
|
|
|
|
- echo md_version=$(cat doc/guide/changelog.md | head -1 | sed 's/## //g' | tr -d '[[:space:]]') >> $GITHUB_OUTPUT
|
|
|
|
|
-
|
|
|
|
|
- # 读取仓库内的 /doc/guide/changelog_en.md 的第一行内容,去除 ## 和空格
|
|
|
|
|
- - name: Get md_version_en
|
|
|
|
|
- id: md_version_en
|
|
|
|
|
- run: |
|
|
|
|
|
- echo md_version_en=$(cat doc/guide/changelog_en.md | head -1 | sed 's/## //g' | tr -d '[[:space:]]') >> $GITHUB_OUTPUT
|
|
|
|
|
-
|
|
|
|
|
- # 比较 Get version 与 Get md_version 和 Get md_version_en 三者的输出内容,如果不相同则此次不需要发布 Release,退出
|
|
|
|
|
- - name: Check version
|
|
|
|
|
- run: |
|
|
|
|
|
- if [[ ${{ steps.version.outputs.version }} != ${{ steps.md_version.outputs.md_version }} ]]; then
|
|
|
|
|
- echo "This is not a tag push. Skipping."
|
|
|
|
|
- exit 78
|
|
|
|
|
- fi
|
|
|
|
|
- if [[ ${{ steps.version.outputs.version }} != ${{ steps.md_version_en.outputs.md_version_en }} ]]; then
|
|
|
|
|
- echo "This is not a tag push. Skipping."
|
|
|
|
|
- exit 78
|
|
|
|
|
- fi
|
|
|
|
|
-
|
|
|
|
|
- # 读取仓库内的 /doc/guide/changelog.md 中前两个二级标题之间的内容,包含换行和空格
|
|
|
|
|
- - name: Get changelog
|
|
|
|
|
- id: changelog
|
|
|
|
|
- run: |
|
|
|
|
|
- echo changelog=$(sed -n '1,/##/{/##/!p;}' doc/guide/changelog.md | sed '/^$/d') >> $GITHUB_OUTPUT
|
|
|
|
|
-
|
|
|
|
|
- # 读取仓库内的 /doc/guide/changelog_en.md 中第一个二级标题与第二个二级标题之间的内容,包含换行和空格
|
|
|
|
|
- - name: Get changelog_en
|
|
|
|
|
- id: changelog_en
|
|
|
|
|
- run: |
|
|
|
|
|
- echo changelog_en=$(sed -n '1,/##/{/##/!p;}' doc/guide/changelog_en.md | sed '/^$/d') >> $GITHUB_OUTPUT
|
|
|
|
|
-
|
|
|
|
|
- # 作为 latest release 发布本次 Release,body 为 changelog 和 changelog_en 的合并内容,中间使用 --- 分隔
|
|
|
|
|
- - name: Release
|
|
|
|
|
- uses: actions/create-release@v1
|
|
|
|
|
- env:
|
|
|
|
|
- GITHUB_TOKEN: ${{ secrets.STDF_GITHUB_TOKEN }}
|
|
|
|
|
- with:
|
|
|
|
|
- tag_name: v${{ steps.version.outputs.version }}
|
|
|
|
|
- release_name: v${{ steps.version.outputs.version }}
|
|
|
|
|
- body: |
|
|
|
|
|
- ${{ steps.changelog.outputs.changelog }}
|
|
|
|
|
- ---
|
|
|
|
|
- ${{ steps.changelog_en.outputs.changelog_en }}
|
|
|
|
|
- draft: false
|
|
|
|
|
- prerelease: false
|
|
|