name: Release on: push: tags: - 'v*' workflow_dispatch: jobs: code-quality: uses: ./.github/workflows/code-quality.yaml pypi-packaging: name: Build and Publish llm-foundry PyPI Package needs: - code-quality runs-on: ubuntu-latest steps: - name: Checkout source uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v3 with: python-version: '3.9' - name: Build source and wheel distributions run: | if [[ "${{ github.ref }}" =~ refs\/tags\/v ]]; then PYPI_PACKAGE_NAME="llm-foundry" else PYPI_PACKAGE_NAME="llm-foundry-test-$(date +%Y%m%d%H%M%S)" fi # Remove the peft, xentropy-cuda-lib and triton-pre-mlir dependencies as PyPI does not # support direct installs. The error message for importing PEFT, FusedCrossEntropy, # and flash_attn_triton gives instructions on how to install if a user tries to use it # without this dependency. sed '/xentropy-cuda-lib@git+https:\/\/github.com\/HazyResearch\/flash-attention.git@.*/d' -i setup.py sed '/triton-pre-mlir@git+https:\/\/github.com\/vchiley\/triton.git@.*/d' -i setup.py sed '/peft@git+https:\/\/github.com\/huggingface\/peft.git.*/d' -i setup.py python -m pip install --upgrade build twine python -m build twine check --strict dist/* - name: Publish 📦 to PyPI uses: pypa/gh-action-pypi-publish@release/v1 if: contains(github.ref, 'refs/tags/v') with: user: __token__ password: ${{ secrets.PROD_PYPI_API_TOKEN }} - name: Publish distribution 📦 to Test PyPI uses: pypa/gh-action-pypi-publish@release/v1 if: contains(github.ref, 'refs/heads/') || contains(github.ref, 'refs/pull/') with: user: __token__ password: ${{ secrets.TEST_PYPI_API_TOKEN }} repository_url: https://test.pypi.org/legacy/