colossalai
69 строк · 2.0 Кб
1name: Publish Nightly Version to PyPI
2
3on:
4workflow_dispatch:
5schedule:
6- cron: '0 0 * * 6' # release on every Sunday 00:00 UTC time
7
8jobs:
9publish:
10if: github.repository == 'hpcaitech/ColossalAI'
11name: Build and publish Python 🐍 distributions 📦 to PyPI
12runs-on: ubuntu-latest
13timeout-minutes: 20
14outputs:
15status: ${{ steps.publish.outcome }}
16steps:
17- uses: actions/checkout@v2
18
19- uses: actions/setup-python@v2
20with:
21python-version: '3.8.14'
22
23- run: |
24python .github/workflows/scripts/update_setup_for_nightly.py
25python setup.py sdist build
26
27# publish to PyPI if executed on the main branch
28- name: Publish package to PyPI
29uses: pypa/gh-action-pypi-publish@release/v1
30id: publish
31with:
32user: __token__
33password: ${{ secrets.PYPI_API_TOKEN }}
34verbose: true
35
36notify:
37name: Notify Lark via webhook
38needs: publish
39runs-on: ubuntu-latest
40if: ${{ always() }} && github.repository == 'hpcaitech/ColossalAI'
41steps:
42- uses: actions/checkout@v2
43
44- uses: actions/setup-python@v2
45with:
46python-version: '3.8.14'
47
48- name: Install requests
49run: pip install requests
50
51- name: Notify Lark
52id: message-preparation
53run: |
54url=$SERVER_URL/$REPO/actions/runs/$RUN_ID
55
56if [ $STATUS == 'success' ]
57then
58msg="The Colossal-AI nightly version has been successfully released to PyPI."
59else
60msg="Failed to release Colossal-AI nightly version to PyPI, please visit $url for details."
61fi
62echo $msg
63python .github/workflows/scripts/send_message_to_lark.py -m "$msg" -u $WEBHOOK_URL
64env:
65SERVER_URL: ${{github.server_url }}
66REPO: ${{ github.repository }}
67RUN_ID: ${{ github.run_id }}
68WEBHOOK_URL: ${{ secrets.LARK_NOTIFICATION_WEBHOOK_URL }}
69STATUS: ${{ needs.publish.outputs.status }}
70