diff --git a/.github/workflows/publish_pypi.yml b/.github/workflows/publish_pypi.yml new file mode 100644 index 0000000..ebbcb42 --- /dev/null +++ b/.github/workflows/publish_pypi.yml @@ -0,0 +1,85 @@ +name: Publish Python 🐍 distribution 📦 to PyPI + +on: [push, pull_request] + +jobs: + build: + name: Build distribution 📦 + runs-on: ubuntu-latest + strategy: + matrix: + package: ["happtiq_commons_gen_ai", "happtiq_commons_google_cloud"] + + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.x" + - name: Install pypa/build + run: | + python3 -m pip install build --user + - name: Build a binary wheel and a source tarball + run: | + cd packages/${{ matrix.package }} + python3 -m build + - name: Store the distribution packages + uses: actions/upload-artifact@v3 + with: + name: python-package-distributions + path: packages/${{ matrix.package }}/dist/ + + publish-to-pypi: + name: Publish Python 🐍 distribution 📦 to PyPI + if: startsWith(github.ref, 'refs/tags/') # only publish to PyPI on tag pushes + needs: + - build + runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/p/${{ matrix.package }} + permissions: + id-token: write # IMPORTANT: mandatory for trusted publishing + + steps: + - name: Download all the dists + uses: actions/download-artifact@v3 + with: + name: python-package-distributions + path: dist/ + - name: Publish distribution 📦 to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + password: ${{ secrets.PYPI_API_TOKEN }} + + github-release: + name: Sign the Python 🐍 distribution 📦 with Sigstore and upload them to GitHub Release + needs: + - publish-to-pypi + runs-on: ubuntu-latest + permissions: + contents: write # IMPORTANT: mandatory for making GitHub Releases + id-token: write # IMPORTANT: mandatory for sigstore + + steps: + - name: Download all the dists + uses: actions/download-artifact@v3 + with: + name: python-package-distributions + path: dist/ + - name: Sign the dists with Sigstore + uses: sigstore/gh-action-sigstore-python@v2.1.1 + with: + inputs: | + ./dist/*.tar.gz + ./dist/*.whl + - name: Create GitHub Release + env: + GITHUB_TOKEN: ${{ github.token }} + run: | + gh release create '${{ github.ref_name }}' --repo '${{ github.repository }}' --notes "" + - name: Upload artifact signatures to GitHub Release + env: + GITHUB_TOKEN: ${{ github.token }} + run: | + gh release upload '${{ github.ref_name }}' dist/** --repo '${{ github.repository }}' diff --git a/packages/happtiq_commons_gen_ai/README.md b/packages/happtiq_commons_gen_ai/README.md new file mode 100644 index 0000000..621e39f --- /dev/null +++ b/packages/happtiq_commons_gen_ai/README.md @@ -0,0 +1 @@ +# happtiq-oss-python-libs \ No newline at end of file diff --git a/packages/happtiq_commons_gen_ai/pyproject.toml b/packages/happtiq_commons_gen_ai/pyproject.toml index ed67077..304b799 100644 --- a/packages/happtiq_commons_gen_ai/pyproject.toml +++ b/packages/happtiq_commons_gen_ai/pyproject.toml @@ -1,11 +1,12 @@ [build-system] -requires = ["setuptools>=61.0.0", "wheel"] +requires = ["setuptools>=64", "setuptools_scm>=8", "wheel"] build-backend = "setuptools.build_meta" [project] name = "happtiq_commons_gen_ai" -version = "0.0.1" requires-python = ">=3.9" +readme = "README.md" +dynamic = ["version"] dependencies = [ 'google-cloud-aiplatform', diff --git a/packages/happtiq_commons_google_cloud/README.md b/packages/happtiq_commons_google_cloud/README.md new file mode 100644 index 0000000..621e39f --- /dev/null +++ b/packages/happtiq_commons_google_cloud/README.md @@ -0,0 +1 @@ +# happtiq-oss-python-libs \ No newline at end of file diff --git a/packages/happtiq_commons_google_cloud/pyproject.toml b/packages/happtiq_commons_google_cloud/pyproject.toml index 2f1abdc..d29fe42 100644 --- a/packages/happtiq_commons_google_cloud/pyproject.toml +++ b/packages/happtiq_commons_google_cloud/pyproject.toml @@ -1,11 +1,12 @@ [build-system] -requires = ["setuptools>=61.0.0", "wheel"] +requires = ["setuptools>=64", "setuptools_scm>=8", "wheel"] build-backend = "setuptools.build_meta" [project] name = "happtiq_commons_google_cloud" -version = "0.0.1" requires-python = ">=3.9" +readme = "README.md" +dynamic = ["version"] dependencies = [ 'google-cloud-storage',