[workflow] added workflow to auto draft the release post (#1144)

pull/1139/head^2
Frank Lee 2022-06-21 14:43:25 +08:00 committed by GitHub
parent 18091581c0
commit d1918304bb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 45 additions and 2 deletions

View File

@ -0,0 +1,42 @@
name: Draft GitHub Release Post
on:
workflow_dispatch:
pull_requests:
paths:
- 'version.txt'
types:
- closed
jobs:
release:
name: Draft Release Post
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-python@v2
with:
python-version: '3.7.12'
- name: generate draft
id: generate_draft
run: |
version=v$(cat version.txt)
pip install requests
python ./.github/workflows/scripts/generate_release_draft.py --out $PWD/release_draft.md --version $version
echo "::set-output name=version::$version"
echo "::set-output name=path::$PWD/release_draft.md"
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
tag_name: ${{ steps.generate_draft.outputs.version }}
release_name: Version ${{ steps.generate_draft.outputs.version }} Release Today!
body_path: ${{ steps.generate_draft.outputs.path }}
draft: True
prerelease: false

View File

@ -13,6 +13,7 @@ TAGS_API = 'https://api.github.com/repos/hpcaitech/ColossalAI/tags'
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument('--out', type=str, help='output path for the release draft', required=True)
parser.add_argument('--version', type=str, help='current version to release', required=True)
return parser.parse_args()
@ -97,6 +98,7 @@ def generate_release_post_markdown(current_version, last_version, release_info):
if __name__ == '__main__':
args = parse_args()
token = os.environ['GITHUB_API_TOKEN']
headers = {'Authorization': token}
@ -111,10 +113,9 @@ if __name__ == '__main__':
# collate into markdown
release_info = collate_release_info(commit_info)
markdown_text = generate_release_post_markdown('v0.1.7', last_version, release_info)
markdown_text = generate_release_post_markdown(args.version, last_version, release_info)
# write into a file
args = parse_args()
with open(args.out, 'w') as f:
for line in markdown_text:
f.write(line)