From 6140f840580f4afd6e41e2503c47cdf9b27d1524 Mon Sep 17 00:00:00 2001 From: Xavier Olive Date: Fri, 30 Dec 2022 00:59:30 +0100 Subject: [PATCH] update yml --- .github/workflows/pypi-publish.yml | 52 ++++++++++++++++++++++++------ .github/workflows/run-tests.yml | 18 +++++------ 2 files changed, 51 insertions(+), 19 deletions(-) diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml index eb6956a..8028df4 100644 --- a/.github/workflows/pypi-publish.yml +++ b/.github/workflows/pypi-publish.yml @@ -1,29 +1,63 @@ # This workflows 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 -name: PyPI Publish +name: publish on: release: types: [created] + workflow_dispatch: + +env: + POETRY_VERSION: "1.3.1" + PYTHON_VERSION: "3.10" jobs: deploy: - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + python-version: ["3.8", "3.9", "3.10", "3.11"] + steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 + - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: - python-version: "3.x" + python-version: ${{ env.PYTHON_VERSION }} + + - name: Install and configure Poetry + uses: snok/install-poetry@v1.3.3 + with: + version: ${{ env.POETRY_VERSION }} + virtualenvs-create: true + virtualenvs-in-project: true + + - name: Display Python version + run: poetry run python -c "import sys; print(sys.version)" + + - name: Build packages + run: poetry build + - name: Install dependencies run: | - python -m pip install --upgrade pip - pip install setuptools wheel twine + poetry run pip install --upgrade pip + poetry run pip install twine + - name: Build and publish env: TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} run: | - python setup.py sdist bdist_wheel - twine upload dist/* + poetry run twine upload dist/*.whl + + - name: Build and publish (source) + if: "startsWith(runner.os, 'ubuntu') and env.PYTHON_VERSION == '3.10'" + env: + TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} + TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} + run: | + poetry run twine upload dist/*.tar.gz diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 9d4aaa7..e65b6c6 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -27,18 +27,14 @@ jobs: with: python-version: ${{ matrix.python-version }} - # Poetry cache depends on OS, Python version and Poetry version. - - name: Cache Poetry cache - uses: actions/cache@v3 - with: - path: ~/.cache/pypoetry - key: poetry-cache-${{ runner.os }}-${{ env.PYTHON_VERSION }}-${{ env.POETRY_VERSION }} - # virtualenv cache should depends on OS, Python version and `poetry.lock` (and optionally workflow files). - name: Cache Packages uses: actions/cache@v3 + if: runner.os != 'windows-latest' with: - path: ~/.local + path: | + ~/.local + .venv key: poetry-${{ runner.os }}-${{ env.PYTHON_VERSION }}-${{ hashFiles('**/poetry.lock') }} - name: Add poetry to windows path @@ -53,12 +49,14 @@ jobs: virtualenvs-create: true virtualenvs-in-project: true + - name: Display Python version + run: poetry run python -c "import sys; print(sys.version)" + - name: Install dependencies run: | poetry install - name: Type checking - if: ${{ env.PYTHON_VERSION != '3.7' }} run: | poetry run mypy pyModeS @@ -67,7 +65,7 @@ jobs: poetry run pytest tests --cov --cov-report term-missing - name: Upload coverage to Codecov - if: ${{ github.event_name != 'pull_request_target' && env.PYTHON_VERSION == '3.10' }} + if: ${{ github.event_name != 'pull_request_target' }} uses: codecov/codecov-action@v2 with: env_vars: PYTHON_VERSION