From 19e1937ee593ac88943553dbe377defeb5f811a1 Mon Sep 17 00:00:00 2001
From: Brad Richardson <bradrichardson@meta.com>
Date: Tue, 23 Jul 2024 10:33:54 -0400
Subject: [PATCH] Add pypi publish action

---
 .github/workflows/pypi-publish.yaml | 51 +++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 .github/workflows/pypi-publish.yaml

diff --git a/.github/workflows/pypi-publish.yaml b/.github/workflows/pypi-publish.yaml
new file mode 100644
index 0000000..645b91b
--- /dev/null
+++ b/.github/workflows/pypi-publish.yaml
@@ -0,0 +1,51 @@
+on:
+  push:
+    branches: [main]
+  release:
+    types: [published]
+
+permissions:
+  contents: read
+  id-token: write
+
+jobs:
+  build-package:
+    name: Build & verify package
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+        with:
+          fetch-depth: 0
+      - uses: hynek/build-and-inspect-python-package@v2
+
+  release-test-pypi:
+    name: Publish package to test.pypi.org
+    environment: release-test-pypi
+    if: github.repository_owner == 'OvertureMaps' && github.event_name == 'push'
+    runs-on: ubuntu-latest
+    needs: build-package
+    steps:
+      - name: Download packages built by build-and-inspect-python-package
+        uses: actions/download-artifact@v4
+        with:
+          name: Packages
+          path: dist
+      - name: Upload package to Test PyPI
+        uses: pypa/gh-action-pypi-publish@release/v1
+        with:
+          repository-url: https://test.pypi.org/legacy/
+
+  release-pypi:
+    name: Publish released package to pypi.org
+    environment: release-pypi
+    if: github.repository_owner == 'OvertureMaps' && github.event.action == 'published'
+    runs-on: ubuntu-latest
+    needs: build-package
+    steps:
+      - name: Download packages built by build-and-inspect-python-package
+        uses: actions/download-artifact@v4
+        with:
+          name: Packages
+          path: dist
+      - name: Upload package to PyPI
+        uses: pypa/gh-action-pypi-publish@release/v1