modify version to v0.2.1a0 (#164) #6
Workflow file for this run
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: Upload PyPI And Release | |
on: | |
push: | |
tags: | |
- "v*" | |
workflow_dispatch: | |
env: | |
POETRY_VERSION: "1.8.3" | |
PYTHON_VERSION: "3.10.9" | |
jobs: | |
build-n-publish: | |
name: Build and publish to PyPI | |
if: github.repository == 'LazyAGI/LazyLLM' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
fetch-depth: 0 | |
- name: Set up python ${{ env.PYTHON_VERSION }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Install Poetry | |
uses: snok/install-poetry@v1 | |
with: | |
version: ${{ env.POETRY_VERSION }} | |
- name: Install deps | |
shell: bash | |
run: pip install -e . | |
- name: Test import | |
working-directory: ${{ vars.RUNNER_TEMP }} | |
shell: bash | |
run: python -c "import lazyllm" && cp LazyLLM-Env/poetry.lock . | |
- name: Check PyPI for existing version | |
id: pypi_check | |
run: | | |
VERSION=$(poetry version -s) | |
PACKAGE_NAME=$(poetry version | awk '{print $1}') | |
RESPONSE=$(curl -s https://pypi.org/pypi/$PACKAGE_NAME/json) | |
if echo "$RESPONSE" | jq -e ".releases | has(\"$VERSION\")"; then | |
echo "Version $VERSION already exists on PyPI. Skipping publish." | |
echo "pypi_version_exists=true" >> $GITHUB_ENV | |
else | |
echo "Version $VERSION does not exist on PyPI. Proceeding with publish." | |
echo "pypi_version_exists=false" >> $GITHUB_ENV | |
fi | |
- name: Build and publish to pypi | |
if: env.pypi_version_exists == 'false' | |
uses: JRubics/poetry-publish@v1.17 | |
with: | |
pypi_token: ${{ secrets.LazyLLM_INDEX_PYPI_TOKEN }} | |
ignore_dev_requirements: "yes" | |
- name: Build | |
if: env.pypi_version_exists == 'true' | |
shell: bash | |
run: poetry build | |
- name: Check if GitHub Release exists | |
id: release_check | |
run: | | |
RELEASE_TAG=${GITHUB_REF#refs/tags/} | |
RELEASES=$(curl -H "Authorization: token ${{ secrets.PERSONAL_GITHUB_TOKEN }}" -s https://api.github.com/repos/${GITHUB_REPOSITORY}/releases) | |
if echo "$RELEASES" | jq -e ".[] | select(.tag_name == \"$RELEASE_TAG\")" > /dev/null; then | |
echo "Release $RELEASE_TAG already exists. Skipping release creation." | |
echo "release_exists=true" >> $GITHUB_ENV | |
UPLOAD_URL=$(echo "$RELEASES" | jq -r ".[] | select(.tag_name == \"$RELEASE_TAG\") | .upload_url") | |
echo "upload_url=$UPLOAD_URL" >> $GITHUB_ENV | |
else | |
echo "Release $RELEASE_TAG does not exist. Proceeding with release creation." | |
echo "release_exists=false" >> $GITHUB_ENV | |
fi | |
- name: Create GitHub Release | |
if: env.release_exists == 'false' | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.PERSONAL_GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ github.ref }} | |
release_name: ${{ github.ref }} | |
draft: false | |
prerelease: false | |
- name: Set upload_url for new release | |
if: env.release_exists == 'false' | |
run: echo "upload_url=${{ steps.create_release.outputs.upload_url }}" >> $GITHUB_ENV | |
- name: Get Asset name | |
run: | | |
export PKG=$(ls dist/ | grep tar) | |
set -- $PKG | |
echo "name=$1" >> $GITHUB_ENV | |
- name: Upload Release Asset (sdist) to GitHub | |
id: upload-release-asset | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.PERSONAL_GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ env.upload_url }} | |
asset_path: dist/${{ env.name }} | |
asset_name: ${{ env.name }} | |
asset_content_type: application/zip |