123 lines
3.6 KiB
YAML
123 lines
3.6 KiB
YAML
name: MongoengineCI
|
|
on:
|
|
# All PR
|
|
pull_request:
|
|
# master branch merge
|
|
push:
|
|
branches:
|
|
- master
|
|
# release tags
|
|
create:
|
|
tags:
|
|
- 'v[0-9]+\.[0-9]+\.[0-9]+*'
|
|
env:
|
|
MONGODB_3_4: 3.4.19
|
|
MONGODB_3_6: 3.6.13
|
|
MONGODB_4_0: 4.0.13
|
|
|
|
PYMONGO_3_4: 3.4
|
|
PYMONGO_3_6: 3.6
|
|
PYMONGO_3_9: 3.9
|
|
PYMONGO_3_11: 3.11
|
|
|
|
# MAIN_PYTHON_VERSION: 3.7
|
|
jobs:
|
|
linting:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Set up Python 3.7
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.7
|
|
- run: bash .github/workflows/install_ci_python_dep.sh
|
|
- run: pre-commit run -a
|
|
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
python-version: [3.6, 3.7, 3.8, 3.9, pypy3]
|
|
MONGODB: [$MONGODB_4_0]
|
|
PYMONGO: [$PYMONGO_3_11]
|
|
include:
|
|
- python-version: 3.7
|
|
MONGODB: $MONGODB_3_4
|
|
PYMONGO: $PYMONGO_3_6
|
|
- python-version: 3.7
|
|
MONGODB: $MONGODB_3_6
|
|
PYMONGO: $PYMONGO_3_9
|
|
- python-version: 3.7
|
|
MONGODB: $MONGODB_3_6
|
|
PYMONGO: $PYMONGO_3_11
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- run: |
|
|
bash .github/workflows/install_mongo.sh ${{ matrix.MONGODB }}
|
|
bash .github/workflows/install_ci_python_dep.sh
|
|
bash .github/workflows/start_mongo.sh ${{ matrix.MONGODB }}
|
|
- name: tox dry-run (to pre-install venv)
|
|
run: tox -e $(echo py${{ matrix.python-version }}-mg${{ matrix.PYMONGO }} | tr -d . | sed -e 's/pypypy/pypy/') -- -a "-k=test_ci_placeholder"
|
|
- name: Run test suite
|
|
run: tox -e $(echo py${{ matrix.python-version }}-mg${{ matrix.PYMONGO }} | tr -d . | sed -e 's/pypypy/pypy/') -- -a "--cov=mongoengine"
|
|
|
|
build_doc_dryrun:
|
|
# ensures that readthedocs can be built continuously
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.7
|
|
- run: |
|
|
pip install -e .
|
|
pip install -r docs/requirements.txt
|
|
- run: |
|
|
cd docs
|
|
make html-readthedocs
|
|
|
|
irc_notification:
|
|
runs-on: ubuntu-latest
|
|
needs: [linting, test]
|
|
steps:
|
|
- uses: rectalogic/notify-irc@v1
|
|
if: success()
|
|
with:
|
|
channel: "irc.freenode.org#mongoengine"
|
|
nickname: github-notifier
|
|
message: |
|
|
Build ${{ job.status }} - ${{ github.actor }} ${{ github.event_name }} ${{ github.event.ref }}
|
|
|
|
build-n-publish:
|
|
runs-on: ubuntu-latest
|
|
needs: [linting, test]
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
- name: Set up Python 3.7
|
|
uses: actions/setup-python@v1
|
|
with:
|
|
python-version: 3.7
|
|
# todo separate build from publish
|
|
# https://stackoverflow.com/questions/59349905/which-properties-does-github-event-in-a-github-workflow-have
|
|
- name: build dummy wheel for test-pypi
|
|
run: |
|
|
pip install wheel
|
|
python setup.py egg_info -b ".dev`date '+%Y%m%d%H%M%S'`" build sdist bdist_wheel
|
|
# python setup.py sdist bdist_wheel
|
|
- name: publish test-pypi
|
|
uses: pypa/gh-action-pypi-publish@master
|
|
with:
|
|
password: ${{ secrets.test_pypi_password }}
|
|
repository_url: https://test.pypi.org/legacy/
|
|
# - name: publish pypi
|
|
# uses: pypa/gh-action-pypi-publish@master
|
|
# if: github.event_name == 'create' && startsWith(github.ref, 'refs/tags/v')
|
|
# with:
|
|
# password: ${{ secrets.pypi_password }}
|