--- name: Publish Python 🐍 distributions 📦 to PyPI and TestPyPI on: # Only deploy if we're the result of a PR being merged push: branches: - master jobs: deploy: name: Build and publish ${{ matrix.package }} 🐍 runs-on: ubuntu-20.04 strategy: fail-fast: true matrix: include: - PACKAGE: pyln-client WORKDIR: contrib/pyln-client - PACKAGE: pyln-testing WORKDIR: contrib/pyln-testing - PACKAGE: pyln-proto WORKDIR: contrib/pyln-proto - PACKAGE: pyn-bolt1 WORKDIR: contrib/pyln-spec/bolt1/ - PACKAGE: pyn-bolt2 WORKDIR: contrib/pyln-spec/bolt2/ - PACKAGE: pyn-bolt4 WORKDIR: contrib/pyln-spec/bolt4/ - PACKAGE: pyn-bolt7 WORKDIR: contrib/pyln-spec/bolt7/ steps: - uses: actions/checkout@master with: # Need to fetch entire history in order to locate the version tag fetch-depth: 0 - name: Set up Python 3.7 uses: actions/setup-python@v1 with: python-version: 3.7 - name: Install pypa/build and poetry run: >- python -m pip install build poetry --user - name: Build a binary wheel and a source tarball env: WORKDIR: ${{ matrix.WORKDIR }} run: | export VERSION=$(git describe --abbrev=0).post$(git describe --abbrev=1 | awk -F "-" '{print $2}') cd ${{ env.WORKDIR}} poetry version $VERSION poetry build - name: Publish distribution 📦 to Test PyPI if: github.repository == 'ElementsProject/lightning' env: POETRY_PYPI_TOKEN_TESTPYPI: ${{ secrets.TEST_PYPI_API_TOKEN }} WORKDIR: ${{ matrix.WORKDIR }} run: | cd ${{ env.WORKDIR}} poetry config repositories.testpypi https://test.pypi.org/legacy/ poetry publish --repository testpypi --no-interaction - name: Publish distribution 📦 to PyPI if: startsWith(github.ref, 'refs/tags') && github.repository == 'ElementsProject/lightning' env: POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_API_TOKEN }} WORKDIR: ${{ matrix.WORKDIR }} run: | cd ${{ env.WORKDIR}} export VERSION=$(git describe --abbrev=0) poetry version $VERSION poetry config repositories.testpypi https://test.pypi.org/legacy/ poetry publish --repository testpypi --no-interaction