From f09a59155a9a03b76892944080ae88448d137f74 Mon Sep 17 00:00:00 2001 From: glados-verma Date: Fri, 14 Oct 2022 16:15:41 -0700 Subject: [PATCH] Create python_publish.yml (#1064) * Create python-publish.yml Using starter template from the marketplace; made some modifications using the packaging.python.org guide (mainly: add a test deployment workflow). * Remove tag requirement for test publishes, allowing testing of draft releases * Replace dash with underscore in filename to match convention --- .github/workflows/python_publish.yml | 68 ++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 .github/workflows/python_publish.yml diff --git a/.github/workflows/python_publish.yml b/.github/workflows/python_publish.yml new file mode 100644 index 000000000..9d95556ad --- /dev/null +++ b/.github/workflows/python_publish.yml @@ -0,0 +1,68 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This workflow will upload a Python Package using Twine when a release is created +# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries + +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +name: Upload Python Package to PyPI and TestPyPI + +on: + release: + types: [published] + +permissions: + contents: read + +jobs: + deploy: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v3 + with: + python-version: '3.7' + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install tox tox-gh-actions + pip install coveralls + wget https://github.com/protocolbuffers/protobuf/releases/download/v21.6/protoc-21.6-linux-x86_64.zip + unzip protoc-21.6-linux-x86_64.zip + sudo cp bin/protoc /usr/bin/protoc && sudo chmod 777 /usr/bin/protoc + sudo cp -r include/. /usr/include && sudo chmod -R +r /usr/include/google + protoc --version + sudo apt-get install -y libusb-1.0-0-dev libprotobuf-dev swig + pip install build + - name: Build package + run: python -m build + - name: Publish distribution to Test PyPI + uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29 + with: + password: ${{ secrets.TESTPYPI_PUBLISH_PASSWORD }} + repository_url: https://test.pypi.org/legacy/ + - name: Publish package to PyPI + if: startsWith(github.ref, 'refs/tags') + uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29 + with: + user: __token__ + password: ${{ secrets.PYPI_PUBLISH_PASSWORD }} + skip_existing: true