From ccb61a4fa408c33b49715ecf1a23e4d0d1d9cc1c Mon Sep 17 00:00:00 2001 From: alisterburt Date: Tue, 17 May 2022 19:43:55 +0100 Subject: [PATCH 1/2] add automatic testing & deployment (no tests yet) --- .github/workflows/test_and_deploy.yml | 69 +++++++++++++++++++++++++++ tests/test_stub.py | 0 2 files changed, 69 insertions(+) create mode 100644 .github/workflows/test_and_deploy.yml create mode 100644 tests/test_stub.py diff --git a/.github/workflows/test_and_deploy.yml b/.github/workflows/test_and_deploy.yml new file mode 100644 index 0000000..cbdd60f --- /dev/null +++ b/.github/workflows/test_and_deploy.yml @@ -0,0 +1,69 @@ +name: tests + +on: + push: + branches: + - main + tags: + - "v*" # Push events to matching v*, i.e. v1.0, v20.15.10 + pull_request: + branches: + - main + workflow_dispatch: + +jobs: + test: + name: ${{ matrix.platform }} py${{ matrix.python-version }} + runs-on: ${{ matrix.platform }} + strategy: + matrix: + platform: [ubuntu-latest] + python-version: ['3.8', '3.9', '3.10'] + + steps: + - uses: actions/checkout@v2 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install setuptools pytest + # this runs the tests using pytest + - name: Test with pytest + with: + run: python -m pytest tests + env: + PLATFORM: ${{ matrix.platform }} + + - name: Coverage + uses: codecov/codecov-action@v2 + + deploy: + # this will run when you have tagged a commit, starting with "v*" + # and requires that you have put your twine API key in your + # github secrets (see readme for details) + needs: [test] + runs-on: ubuntu-latest + if: contains(github.ref, 'tags') + steps: + - uses: actions/checkout@v2 + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: "3.x" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U setuptools setuptools_scm wheel twine build + - name: Build and publish + env: + TWINE_USERNAME: __token__ + TWINE_PASSWORD: ${{ secrets.TWINE_API_KEY }} + run: | + git tag + python -m build . + twine upload dist/* \ No newline at end of file diff --git a/tests/test_stub.py b/tests/test_stub.py new file mode 100644 index 0000000..e69de29 From 6233b35ce63e7559516794f535738224684fc0ec Mon Sep 17 00:00:00 2001 From: alisterburt Date: Wed, 18 May 2022 17:08:17 +0100 Subject: [PATCH 2/2] update deployment workflow --- .github/workflows/test_and_deploy.yml | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/.github/workflows/test_and_deploy.yml b/.github/workflows/test_and_deploy.yml index cbdd60f..3acb747 100644 --- a/.github/workflows/test_and_deploy.yml +++ b/.github/workflows/test_and_deploy.yml @@ -1,3 +1,6 @@ +# 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: tests on: @@ -8,7 +11,7 @@ on: - "v*" # Push events to matching v*, i.e. v1.0, v20.15.10 pull_request: branches: - - main + - master workflow_dispatch: jobs: @@ -31,16 +34,17 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - python -m pip install setuptools pytest - # this runs the tests using pytest + pip install setuptools pytest + pip install -e . + + # this runs the platform-specific tests - name: Test with pytest - with: - run: python -m pytest tests + run: pytest tests env: PLATFORM: ${{ matrix.platform }} - name: Coverage - uses: codecov/codecov-action@v2 + uses: codecov/codecov-action@v1 deploy: # this will run when you have tagged a commit, starting with "v*" @@ -58,12 +62,12 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - pip install -U setuptools setuptools_scm wheel twine build + pip install -U setuptools setuptools_scm wheel twine - name: Build and publish env: TWINE_USERNAME: __token__ TWINE_PASSWORD: ${{ secrets.TWINE_API_KEY }} run: | git tag - python -m build . - twine upload dist/* \ No newline at end of file + python setup.py sdist bdist_wheel + twine upload dist/*