diff --git a/.github/workflows/draft_github_release_post.yml b/.github/workflows/draft_github_release_post.yml new file mode 100644 index 000000000..965a3d2b5 --- /dev/null +++ b/.github/workflows/draft_github_release_post.yml @@ -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 + \ No newline at end of file diff --git a/.github/workflows/scripts/generate_release_draft.py b/.github/workflows/scripts/generate_release_draft.py index 5c7153e7e..fdcd667ae 100644 --- a/.github/workflows/scripts/generate_release_draft.py +++ b/.github/workflows/scripts/generate_release_draft.py @@ -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)