Publish Nightly Version to PyPI #4
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Publish Nightly Version to PyPI | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: '0 0 * * 6' # release on every Sunday 00:00 UTC time | |
jobs: | |
publish: | |
if: github.repository == 'hpcaitech/ColossalAI' | |
name: Build and publish Python 🐍 distributions 📦 to PyPI | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
outputs: | |
status: ${{ steps.publish.outcome }} | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-python@v2 | |
with: | |
python-version: '3.8.14' | |
- run: | | |
python .github/workflows/scripts/update_setup_for_nightly.py | |
python setup.py sdist build | |
# publish to PyPI if executed on the main branch | |
- name: Publish package to PyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
id: publish | |
with: | |
user: __token__ | |
password: ${{ secrets.PYPI_API_TOKEN }} | |
verbose: true | |
notify: | |
name: Notify Lark via webhook | |
needs: publish | |
runs-on: ubuntu-latest | |
if: ${{ always() }} && github.repository == 'hpcaitech/ColossalAI' | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-python@v2 | |
with: | |
python-version: '3.8.14' | |
- name: Install requests | |
run: pip install requests | |
- name: Notify Lark | |
id: message-preparation | |
run: | | |
url=$SERVER_URL/$REPO/actions/runs/$RUN_ID | |
if [ $STATUS == 'success' ] | |
then | |
msg="The Colossal-AI nightly version has been successfully released to PyPI." | |
else | |
msg="Failed to release Colossal-AI nightly version to PyPI, please visit $url for details." | |
fi | |
echo $msg | |
python .github/workflows/scripts/send_message_to_lark.py -m "$msg" -u $WEBHOOK_URL | |
env: | |
SERVER_URL: ${{github.server_url }} | |
REPO: ${{ github.repository }} | |
RUN_ID: ${{ github.run_id }} | |
WEBHOOK_URL: ${{ secrets.LARK_NOTIFICATION_WEBHOOK_URL }} | |
STATUS: ${{ needs.publish.outputs.status }} |