diff options
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r-- | .github/workflows/ci.yml | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..a57d1e2 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,61 @@ +name: Test + +on: + push: + pull_request: + schedule: + # Weekly, at 6:45 AM on Thursday (somewhat randomly chosen). + - cron: '45 6 * * 4' + workflow_dispatch: + +env: + PIP_DISABLE_PIP_VERSION_CHECK: 1 + PIP_NO_PYTHON_VERSION_WARNING: 1 + +jobs: + test: + strategy: + matrix: + python-version: [3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.x] + # 3.4 is not available on Focal. + runs-on: ubuntu-18.04 + name: 'Python ${{ matrix.python-version }}' + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '${{ matrix.python-version }}' + - name: Install dependencies + run: pip install -r requirements.txt + - name: Run tests + run: ./.ci/bin/main.sh + + publish_pypi: + needs: [test] + runs-on: ubuntu-latest + name: Publish + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Set up Python + uses: actions/setup-python@v2 + - name: Verify package can be installed + run: python3 -m pip install . + - name: Install package builder + run: python3 -m pip install --upgrade build + - name: Build package + run: python3 -m build + - name: Publish as artifact + uses: actions/upload-artifact@v2 + with: + name: dist + path: dist + if-no-files-found: error + - name: Publish to PyPI + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') + uses: pypa/gh-action-pypi-publish@release/v1 + with: + user: __token__ + password: '${{ secrets.PYPI_API_TOKEN }}' |