From 5d34e43f48e5351d202fcd1393e98cc5d7ee71b3 Mon Sep 17 00:00:00 2001 From: Tom Scholten Date: Sun, 13 Jul 2025 13:35:47 +0200 Subject: [PATCH 1/6] Change to UV (and minor improvements) --- .github/workflows/verify.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index fe7f79d..1b1c35a 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -33,15 +33,32 @@ jobs: steps: - name: Check out committed code uses: actions/checkout@v4 + - name: Check for existing package on TestPyPI + id: check_package + run: | + PACKAGE_VERSION=$(python -c "import toml; print(toml.load('pyproject.toml')['project']['version'])") + PACKAGE_NAME=$(python -c "import toml; print(toml.load('pyproject.toml')['project']['name'])") + + echo "Checking for package: $PACKAGE_NAME==$PACKAGE_VERSION" + if curl -sI "https://test.pypi.org/project/$PACKAGE_NAME/$PACKAGE_VERSION/" | head -n 1 | grep "HTTP/1.1 200 OK"; then + echo "Package version already exists. Skipping upload." + echo "::set-output name=should_publish::false" + else + echo "Package version does not exist. Proceeding with upload." + echo "::set-output name=should_publish::true" + fi - name: Prepare uv + if: steps.check_package.outputs.should_publish == 'true' run: | pip install uv uv venv --seed venv - name: Build + if: steps.check_package.outputs.should_publish == 'true' run: | . venv/bin/activate uv build - name: Publish distribution 📦 to TestPyPI + if: steps.check_package.outputs.should_publish == 'true' run: | . venv/bin/activate uv publish --publish-url https://test.pypi.org/legacy/ From 65d7fb429a87009247196067b70fe1ee2ff601dc Mon Sep 17 00:00:00 2001 From: Tom Scholten Date: Sun, 13 Jul 2025 13:37:18 +0200 Subject: [PATCH 2/6] Improve publishing --- .github/workflows/verify.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index 1b1c35a..c86d808 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -33,6 +33,13 @@ jobs: steps: - name: Check out committed code uses: actions/checkout@v4 + - name: Prepare uv + if: steps.check_package.outputs.should_publish == 'true' + run: | + pip install uv + uv venv --seed venv + . venv/bin/activate + uv pip install toml - name: Check for existing package on TestPyPI id: check_package run: | @@ -47,11 +54,6 @@ jobs: echo "Package version does not exist. Proceeding with upload." echo "::set-output name=should_publish::true" fi - - name: Prepare uv - if: steps.check_package.outputs.should_publish == 'true' - run: | - pip install uv - uv venv --seed venv - name: Build if: steps.check_package.outputs.should_publish == 'true' run: | From 424f4384cd7d302cc0f54f3c8380a5e6cb5d9206 Mon Sep 17 00:00:00 2001 From: Tom Scholten Date: Sun, 13 Jul 2025 13:37:55 +0200 Subject: [PATCH 3/6] Improve publishing --- .github/workflows/verify.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index c86d808..0ecb7d8 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -34,7 +34,6 @@ jobs: - name: Check out committed code uses: actions/checkout@v4 - name: Prepare uv - if: steps.check_package.outputs.should_publish == 'true' run: | pip install uv uv venv --seed venv From 4b29439ceae55d8ceb31d32dd1a8deca096dcd4a Mon Sep 17 00:00:00 2001 From: Tom Scholten Date: Sun, 13 Jul 2025 13:39:39 +0200 Subject: [PATCH 4/6] Improve publishing --- .github/workflows/verify.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index 0ecb7d8..c0b1c1c 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -42,6 +42,7 @@ jobs: - name: Check for existing package on TestPyPI id: check_package run: | + . venv/bin/activate PACKAGE_VERSION=$(python -c "import toml; print(toml.load('pyproject.toml')['project']['version'])") PACKAGE_NAME=$(python -c "import toml; print(toml.load('pyproject.toml')['project']['name'])") From ff26f6bf394b301fde949c9783e769afd5aae663 Mon Sep 17 00:00:00 2001 From: Tom Scholten Date: Sun, 13 Jul 2025 13:41:38 +0200 Subject: [PATCH 5/6] Improve publishing --- .github/workflows/verify.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index c0b1c1c..f96def6 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -46,13 +46,17 @@ jobs: PACKAGE_VERSION=$(python -c "import toml; print(toml.load('pyproject.toml')['project']['version'])") PACKAGE_NAME=$(python -c "import toml; print(toml.load('pyproject.toml')['project']['name'])") + # Use jq to check for the version in the releases object + EXISTING_VERSIONS=$(curl -s "https://test.pypi.org/pypi/$PACKAGE_NAME/json" | jq '.releases | keys[]') + echo "Checking for package: $PACKAGE_NAME==$PACKAGE_VERSION" - if curl -sI "https://test.pypi.org/project/$PACKAGE_NAME/$PACKAGE_VERSION/" | head -n 1 | grep "HTTP/1.1 200 OK"; then + + if [[ "$EXISTING_VERSIONS" =~ "$PACKAGE_VERSION" ]]; then echo "Package version already exists. Skipping upload." - echo "::set-output name=should_publish::false" + echo "should_publish=false" >> $GITHUB_OUTPUT else echo "Package version does not exist. Proceeding with upload." - echo "::set-output name=should_publish::true" + echo "should_publish=true" >> $GITHUB_OUTPUT fi - name: Build if: steps.check_package.outputs.should_publish == 'true' From fb3448d8bb92479ec8a03c77fe0696b9a5e17b34 Mon Sep 17 00:00:00 2001 From: Tom Scholten Date: Sun, 13 Jul 2025 13:42:05 +0200 Subject: [PATCH 6/6] Improve publishing --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 8ad1930..57980ec 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "airos" -version = "0.0.3a1" +version = "0.0.3a2" license = "MIT" description = "Ubiquity airOS module(s) for Python 3." readme = "README.md"