Skip to content

Commit 9ef3558

Browse files
authored
Add version check before publishing to PyPI (#1624)
* Add version check before publishing to PyPI
1 parent 03761cf commit 9ef3558

File tree

2 files changed

+33
-12
lines changed

2 files changed

+33
-12
lines changed

.github/workflows/pre-release-base.yml

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,27 @@ jobs:
3535
run: make build base=true
3636
- name: Check Version
3737
id: check-version
38+
# In this step, we should check the version of the package
39+
# and see if it is a version that is already released
40+
# echo version=$(cd src/backend/base && poetry version --short) >> $GITHUB_OUTPUT
41+
# cd src/backend/base && poetry version --short should
42+
# be different than the last release version in pypi
43+
# which we can get from curl -s "https://pypi.org/pypi/langflow/json" | jq -r '.releases | keys | .[]' | sort -V | tail -n 1
3844
run: |
39-
echo version=$(cd src/backend/base && poetry version --short) >> $GITHUB_OUTPUT
45+
version=$(cd src/backend/base && poetry version --short)
46+
last_released_version=$(curl -s "https://pypi.org/pypi/langflow-base/json" | jq -r '.releases | keys | .[]' | sort -V | tail -n 1)
47+
if [ "$version" = "$last_released_version" ]; then
48+
echo "Version $version is already released. Skipping release."
49+
exit 1
50+
else
51+
echo version=$version >> $GITHUB_OUTPUT
52+
fi
53+
54+
- name: Publish to PyPI
55+
env:
56+
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_API_TOKEN }}
57+
run: |
58+
make publish base=true
4059
- name: Create Release
4160
uses: ncipollo/release-action@v1
4261
with:
@@ -47,11 +66,6 @@ jobs:
4766
prerelease: true
4867
tag: v${{ steps.check-version.outputs.version }}
4968
commit: dev
50-
- name: Publish to PyPI
51-
env:
52-
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_API_TOKEN }}
53-
run: |
54-
make publish base=true
5569
- name: Set up QEMU
5670
uses: docker/setup-qemu-action@v3
5771
- name: Set up Docker Buildx

.github/workflows/pre-release-langflow.yml

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,21 @@ jobs:
4040
- name: Check Version
4141
id: check-version
4242
run: |
43-
echo version=$(poetry version --short) >> $GITHUB_OUTPUT
43+
version=$(cd src/backend/base && poetry version --short)
44+
last_released_version=$(curl -s "https://pypi.org/pypi/langflow/json" | jq -r '.releases | keys | .[]' | sort -V | tail -n 1)
45+
if [ "$version" = "$last_released_version" ]; then
46+
echo "Version $version is already released. Skipping release."
47+
exit 1
48+
else
49+
echo version=$version >> $GITHUB_OUTPUT
50+
fi
4451
- name: Display pyproject.toml langflow-base Version
4552
run: cat pyproject.toml | grep langflow-base
53+
- name: Publish to PyPI
54+
env:
55+
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_API_TOKEN }}
56+
run: |
57+
make publish main=true
4658
- name: Create Release
4759
uses: ncipollo/release-action@v1
4860
with:
@@ -53,11 +65,6 @@ jobs:
5365
prerelease: true
5466
tag: v${{ steps.check-version.outputs.version }}
5567
commit: dev
56-
- name: Publish to PyPI
57-
env:
58-
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_API_TOKEN }}
59-
run: |
60-
make publish main=true
6168
- name: Set up QEMU
6269
uses: docker/setup-qemu-action@v3
6370
- name: Set up Docker Buildx

0 commit comments

Comments
 (0)