Skip to content

Commit

Permalink
global: migrate CI to GH Actions
Browse files Browse the repository at this point in the history
closes #219
  • Loading branch information
Parth Shandilya committed Dec 1, 2020
1 parent 02012fb commit 8a897c6
Show file tree
Hide file tree
Showing 2 changed files with 106 additions and 5 deletions.
96 changes: 96 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: CI

on:
push:
branches: master
pull_request:
branches: master
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '0 3 * * 6'
workflow_dispatch:
inputs:
reason:
description: 'Reason'
required: false
default: 'Manual trigger'

jobs:
Tests:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: [3.6, 3.7, 3.8]
requirements-level: [min, pypi]
db-service: [postgresql9, postgresql11, mysql5, mysql8]

exclude:
- python-version: 3.8
requirements-level: min

- db-service: postgresql11
python-version: 3.6

- db-service: mysql8
python-version: 3.6

include:
- db-service: postgresql9
DB: postgresql
POSTGRESQL_VERSION: POSTGRESQL_9_LATEST
SQLALCHEMY_DATABASE_URI: "postgresql+psycopg2://invenio:invenio@localhost:5432/invenio"
EXTRAS: "all,postgresql"

- db-service: postgresql11
DB: postgresql
POSTGRESQL_VERSION: POSTGRESQL_11_LATEST
SQLALCHEMY_DATABASE_URI: "postgresql+psycopg2://invenio:invenio@localhost:5432/invenio"
EXTRAS: "all,postgresql"

- db-service: mysql5
DB: mysql
MYSQL_VERSION: MYSQL_5_LATEST
SQLALCHEMY_DATABASE_URI: "mysql+pymysql://invenio:invenio@localhost:3306/invenio"
EXTRAS: "all,mysql"

- db-service: mysql8
DB: mysql
MYSQL_VERSION: MYSQL_8_LATEST
SQLALCHEMY_DATABASE_URI: "mysql+pymysql://invenio:invenio@localhost:3306/invenio"
EXTRAS: "all,mysql"

env:
SQLALCHEMY_DATABASE_URI: ${{matrix.SQLALCHEMY_DATABASE_URI}}
POSTGRESQL_VERSION: ${{matrix.POSTGRESQL_VERSION}}
MYSQL_VERSION: ${{matrix.MYSQL_VERSION}}
DB: ${{ matrix.DB }}

steps:
- name: Checkout
uses: actions/checkout@v2

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}

- name: Generate dependencies
run: |
python -m pip install --upgrade pip setuptools py wheel requirements-builder
requirements-builder -e ${{ matrix.EXTRAS }} ${{ matrix.requirements-file }} --level=${{ matrix.requirements-level }} setup.py > .${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt
- name: Cache pip
uses: actions/cache@v2
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('.${{ matrix.requirements-level }}-${{ matrix.python-version }}-requirements.txt') }}

- name: Install dependencies
run: |
pip install -r .${{matrix.requirements-level}}-${{ matrix.python-version }}-requirements.txt
pip install .[${{ matrix.EXTRAS }}]
pip freeze
- name: Run tests
run: |
./run-tests.sh
15 changes: 10 additions & 5 deletions run-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,15 @@
# Invenio is free software; you can redistribute it and/or modify it
# under the terms of the MIT License; see LICENSE file for more details.

# Quit on errors
set -o errexit

pydocstyle invenio_oauth2server && \
isort -rc -c -df **/*.py && \
check-manifest --ignore ".travis-*" && \
sphinx-build -qnNW docs docs/_build/html && \
python setup.py test && \
# Quit on unbound symbols
set -o nounset

pydocstyle invenio_oauth2server
isort -rc -c -df **/*.py
check-manifest --ignore ".travis-*"
sphinx-build -qnNW docs docs/_build/html
python setup.py test
sphinx-build -qnNW -b doctest docs docs/_build/doctest

0 comments on commit 8a897c6

Please sign in to comment.