From bc372dbef7952b182941646e43e4cdc7c5fd8d61 Mon Sep 17 00:00:00 2001 From: Laura Kasian Date: Tue, 25 Aug 2026 11:36:33 -0700 Subject: [PATCH 1/7] push releases to public PyPI --- .github/workflows/build_and_package.yml | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build_and_package.yml b/.github/workflows/build_and_package.yml index 7cd6d34b..b110733f 100644 --- a/.github/workflows/build_and_package.yml +++ b/.github/workflows/build_and_package.yml @@ -14,6 +14,7 @@ on: env: MAIN_PYTHON_VERSION: "3.11" POETRY_VERSION: "2.3.2" + PACKAGE_NAME: "VISOR" # For Solutions private PyPI: POETRY_HTTP_BASIC_SOLUTIONS_PRIVATE_PYPI_USERNAME: "PAT" @@ -77,6 +78,8 @@ jobs: (needs.update-changelog.result == 'success' || needs.update-changelog.result == 'skipped') && (github.event_name != 'schedule' || github.ref == 'refs/heads/main') runs-on: ubuntu-latest + permissions: + id-token: write # Required for PyPI trusted publisher authentication steps: - name: Checkout repository uses: actions/checkout@v4 @@ -266,7 +269,9 @@ jobs: path: dist/*.whl - name: Release to Azure Solutions PyPI - if : (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')) + if: | + (github.event_name == 'schedule' && github.ref == 'refs/heads/main') || + (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')) uses: ansys-internal/solution-applications-actions/release-to-private-pypi@v18 with: python-version: ${{ env.MAIN_PYTHON_VERSION }} @@ -274,16 +279,14 @@ jobs: twine-username: "TOKEN" twine-password: ${{ secrets.SOLUTIONS_PRIVATE_PYPI_UPLOAD_TOKEN }} - - name: Release to Azure PyAnsys PyPI - if: | - (github.event_name == 'schedule' && github.ref == 'refs/heads/main') || - (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')) - uses: ansys-internal/solution-applications-actions/release-to-private-pypi@v18 + - name: "Upload artifacts to PyPI" + if: (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')) + uses: pypa/gh-action-pypi-publish@ba38be9e461d3875417946c167d0b5f3d385a247 # v1.14.1 with: - python-version: ${{ env.MAIN_PYTHON_VERSION }} - twine-repository-url: https://pkgs.dev.azure.com/pyansys/_packaging/ansys-solutions/pypi/upload/ - twine-username: "TOKEN" - twine-password: ${{ secrets.SOLUTIONS_PRIVATE_PYPI_ADMIN_TOKEN }} + repository-url: "https://upload.pypi.org/legacy/" + print-hash: true + packages-dir: ${{ env.PACKAGE_NAME }}-artifacts + skip-existing: false outputs: package_version: ${{ steps.set_package_version.outputs.package_version }} From 8b623b5503b4016b9f25f4918538016926493407 Mon Sep 17 00:00:00 2001 From: pyansys-ci-bot <92810346+pyansys-ci-bot@users.noreply.github.com> Date: Tue, 25 Aug 2026 18:49:20 +0000 Subject: [PATCH 2/7] chore: adding changelog file 11.maintenance.md [dependabot-skip] --- doc/changelog.d/11.maintenance.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 doc/changelog.d/11.maintenance.md diff --git a/doc/changelog.d/11.maintenance.md b/doc/changelog.d/11.maintenance.md new file mode 100644 index 00000000..66931f78 --- /dev/null +++ b/doc/changelog.d/11.maintenance.md @@ -0,0 +1 @@ +Push releases to public PyPI From bdff84d7d465a4cc12d53300cc78096b36622517 Mon Sep 17 00:00:00 2001 From: Laura Kasian Date: Tue, 25 Aug 2026 13:04:58 -0700 Subject: [PATCH 3/7] revert due to failing ci --- .github/workflows/build_and_package.yml | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build_and_package.yml b/.github/workflows/build_and_package.yml index b110733f..3b551c3b 100644 --- a/.github/workflows/build_and_package.yml +++ b/.github/workflows/build_and_package.yml @@ -14,7 +14,7 @@ on: env: MAIN_PYTHON_VERSION: "3.11" POETRY_VERSION: "2.3.2" - PACKAGE_NAME: "VISOR" + PROJECT_NAME: "VISOR" # For Solutions private PyPI: POETRY_HTTP_BASIC_SOLUTIONS_PRIVATE_PYPI_USERNAME: "PAT" @@ -78,8 +78,6 @@ jobs: (needs.update-changelog.result == 'success' || needs.update-changelog.result == 'skipped') && (github.event_name != 'schedule' || github.ref == 'refs/heads/main') runs-on: ubuntu-latest - permissions: - id-token: write # Required for PyPI trusted publisher authentication steps: - name: Checkout repository uses: actions/checkout@v4 @@ -269,9 +267,7 @@ jobs: path: dist/*.whl - name: Release to Azure Solutions PyPI - if: | - (github.event_name == 'schedule' && github.ref == 'refs/heads/main') || - (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')) + if : (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')) uses: ansys-internal/solution-applications-actions/release-to-private-pypi@v18 with: python-version: ${{ env.MAIN_PYTHON_VERSION }} @@ -279,14 +275,16 @@ jobs: twine-username: "TOKEN" twine-password: ${{ secrets.SOLUTIONS_PRIVATE_PYPI_UPLOAD_TOKEN }} - - name: "Upload artifacts to PyPI" - if: (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')) - uses: pypa/gh-action-pypi-publish@ba38be9e461d3875417946c167d0b5f3d385a247 # v1.14.1 + - name: Release to Azure PyAnsys PyPI + if: | + (github.event_name == 'schedule' && github.ref == 'refs/heads/main') || + (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')) + uses: ansys-internal/solution-applications-actions/release-to-private-pypi@v18 with: - repository-url: "https://upload.pypi.org/legacy/" - print-hash: true - packages-dir: ${{ env.PACKAGE_NAME }}-artifacts - skip-existing: false + python-version: ${{ env.MAIN_PYTHON_VERSION }} + twine-repository-url: https://pkgs.dev.azure.com/pyansys/_packaging/ansys-solutions/pypi/upload/ + twine-username: "TOKEN" + twine-password: ${{ secrets.SOLUTIONS_PRIVATE_PYPI_ADMIN_TOKEN }} outputs: package_version: ${{ steps.set_package_version.outputs.package_version }} From f6a44c6a9adf1edbde5a59928ba8f1992397d1fc Mon Sep 17 00:00:00 2001 From: Laura Kasian Date: Tue, 25 Aug 2026 13:14:02 -0700 Subject: [PATCH 4/7] update env var --- .github/workflows/build_and_package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_and_package.yml b/.github/workflows/build_and_package.yml index 3b551c3b..c117a658 100644 --- a/.github/workflows/build_and_package.yml +++ b/.github/workflows/build_and_package.yml @@ -14,7 +14,7 @@ on: env: MAIN_PYTHON_VERSION: "3.11" POETRY_VERSION: "2.3.2" - PROJECT_NAME: "VISOR" + PACKAGE_NAME: "VISOR" # For Solutions private PyPI: POETRY_HTTP_BASIC_SOLUTIONS_PRIVATE_PYPI_USERNAME: "PAT" From 84f4362c13277b0a352166ac6086c625cf270b65 Mon Sep 17 00:00:00 2001 From: Laura Kasian Date: Tue, 25 Aug 2026 13:16:48 -0700 Subject: [PATCH 5/7] remove upload to PyAnsys PyPI and add nightly dev publishes to Azure Solutions PyPI --- .github/workflows/build_and_package.yml | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build_and_package.yml b/.github/workflows/build_and_package.yml index c117a658..d4d5d9d3 100644 --- a/.github/workflows/build_and_package.yml +++ b/.github/workflows/build_and_package.yml @@ -78,6 +78,8 @@ jobs: (needs.update-changelog.result == 'success' || needs.update-changelog.result == 'skipped') && (github.event_name != 'schedule' || github.ref == 'refs/heads/main') runs-on: ubuntu-latest + permissions: + id-token: write # Required for PyPI trusted publisher authentication steps: - name: Checkout repository uses: actions/checkout@v4 @@ -267,24 +269,15 @@ jobs: path: dist/*.whl - name: Release to Azure Solutions PyPI - if : (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')) - uses: ansys-internal/solution-applications-actions/release-to-private-pypi@v18 - with: - python-version: ${{ env.MAIN_PYTHON_VERSION }} - twine-repository-url: https://pkgs.dev.azure.com/ansys-solutions/_packaging/ansys-solutions/pypi/upload/ - twine-username: "TOKEN" - twine-password: ${{ secrets.SOLUTIONS_PRIVATE_PYPI_UPLOAD_TOKEN }} - - - name: Release to Azure PyAnsys PyPI if: | (github.event_name == 'schedule' && github.ref == 'refs/heads/main') || (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')) uses: ansys-internal/solution-applications-actions/release-to-private-pypi@v18 with: python-version: ${{ env.MAIN_PYTHON_VERSION }} - twine-repository-url: https://pkgs.dev.azure.com/pyansys/_packaging/ansys-solutions/pypi/upload/ + twine-repository-url: https://pkgs.dev.azure.com/ansys-solutions/_packaging/ansys-solutions/pypi/upload/ twine-username: "TOKEN" - twine-password: ${{ secrets.SOLUTIONS_PRIVATE_PYPI_ADMIN_TOKEN }} + twine-password: ${{ secrets.SOLUTIONS_PRIVATE_PYPI_UPLOAD_TOKEN }} outputs: package_version: ${{ steps.set_package_version.outputs.package_version }} From c29f49ab6bf81af539d66a1bd90338740852f836 Mon Sep 17 00:00:00 2001 From: Laura Kasian Date: Tue, 25 Aug 2026 13:20:00 -0700 Subject: [PATCH 6/7] remove permissions section --- .github/workflows/build_and_package.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/build_and_package.yml b/.github/workflows/build_and_package.yml index d4d5d9d3..49ef717d 100644 --- a/.github/workflows/build_and_package.yml +++ b/.github/workflows/build_and_package.yml @@ -78,8 +78,6 @@ jobs: (needs.update-changelog.result == 'success' || needs.update-changelog.result == 'skipped') && (github.event_name != 'schedule' || github.ref == 'refs/heads/main') runs-on: ubuntu-latest - permissions: - id-token: write # Required for PyPI trusted publisher authentication steps: - name: Checkout repository uses: actions/checkout@v4 From 8ecaafa845683d751c6d738a10b67acb8727801c Mon Sep 17 00:00:00 2001 From: Laura Kasian Date: Tue, 25 Aug 2026 13:48:54 -0700 Subject: [PATCH 7/7] add permissions and PyPI upload step --- .github/workflows/build_and_package.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/build_and_package.yml b/.github/workflows/build_and_package.yml index 49ef717d..9f17fd9b 100644 --- a/.github/workflows/build_and_package.yml +++ b/.github/workflows/build_and_package.yml @@ -78,6 +78,10 @@ jobs: (needs.update-changelog.result == 'success' || needs.update-changelog.result == 'skipped') && (github.event_name != 'schedule' || github.ref == 'refs/heads/main') runs-on: ubuntu-latest + permissions: + id-token: write # Required for PyPI trusted publisher authentication (OIDC) + attestations: write # Required by pypa/gh-action-pypi-publish (>=v1.11) + contents: write # Needed to download release artifacts steps: - name: Checkout repository uses: actions/checkout@v4 @@ -277,6 +281,15 @@ jobs: twine-username: "TOKEN" twine-password: ${{ secrets.SOLUTIONS_PRIVATE_PYPI_UPLOAD_TOKEN }} + - name: "Upload artifacts to PyPI" + if: (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')) + uses: pypa/gh-action-pypi-publish@ba38be9e461d3875417946c167d0b5f3d385a247 # v1.14.1 + with: + repository-url: "https://upload.pypi.org/legacy/" + print-hash: true + packages-dir: ${{ env.PACKAGE_NAME }}-artifacts + skip-existing: false + outputs: package_version: ${{ steps.set_package_version.outputs.package_version }}