Skip to content

Commit

Permalink
ci: configure github actions
Browse files Browse the repository at this point in the history
  • Loading branch information
JakaKokosar committed Mar 11, 2020
1 parent 00eb853 commit 70b2e54
Show file tree
Hide file tree
Showing 10 changed files with 238 additions and 6 deletions.
37 changes: 37 additions & 0 deletions .github/workflows/cleanup_workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Cleanup workflow

on: [push]

# This is a temporary solution until Github actions provide an official support for this.
# Workflow ids are located here: https://api.github.com/repos/biolab/orange3/actions/workflows

jobs:
cancel:
name: 'Cancel Previous Runs'
runs-on: ubuntu-latest
timeout-minutes: 3

steps:
- name: Cleanup Linux workflow
uses: styfle/cancel-workflow-action@0.2.0
with:
workflow_id: 685155
access_token: ${{ secrets.GITHUB_TOKEN }}

- name: Cleanup macOS workflow
uses: styfle/cancel-workflow-action@0.2.0
with:
workflow_id: 685156
access_token: ${{ secrets.GITHUB_TOKEN }}

- name: Cleanup Windows workflow
uses: styfle/cancel-workflow-action@0.2.0
with:
workflow_id: 685157
access_token: ${{ secrets.GITHUB_TOKEN }}

- name: Cleanup Documentation workflow
uses: styfle/cancel-workflow-action@0.2.0
with:
workflow_id: 685153
access_token: ${{ secrets.GITHUB_TOKEN }}
34 changes: 34 additions & 0 deletions .github/workflows/doc_workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Documentation workflow

on:
push:
branches:
- master
pull_request:
branches:
- master

jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: False
matrix:
python: [3.7]
os: [ubuntu-18.04]

steps:
- uses: actions/checkout@v2
- name: Setup Python
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python }}

- name: Install linux system dependencies
run: sudo apt-get install -y libxkbcommon-x11-0

- name: Install Tox
run: pip install tox

- name: Build documentation
run: xvfb-run -a -s "-screen 0 1280x1024x24" tox -e build_doc
34 changes: 34 additions & 0 deletions .github/workflows/lint_workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Lint workflow

on:
# Trigger the workflow on push or pull request, but only for the master branch
push:
branches:
- master
pull_request:
branches:
- master

jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: False
matrix:
python: [3.7]
os: [ubuntu-18.04]

steps:
- uses: actions/checkout@v2
with:
fetch-depth: '2'
- name: Setup Python
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python }}

- name: Install Tox
run: pip install tox

- name: Run Pylint
run: tox -e pylint-ci
64 changes: 64 additions & 0 deletions .github/workflows/linux_workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Linux workflow

on:
# Trigger the workflow on push or pull request, but only for the master branch
push:
branches:
- master
pull_request:
branches:
- master

jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: False
matrix:
python: [3.6, 3.7]
os: [ubuntu-18.04]

services:
postgres:
image: orangedm/postgres:11
env:
POSTGRES_USER: postgres_user
POSTGRES_PASSWORD: postgres_password
POSTGRES_DB: postgres_db
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5

SQLServer:
image: mcr.microsoft.com/mssql/server:2017-latest
env:
ACCEPT_EULA: Y
SA_PASSWORD: sqlServerPassw0rd
ports:
- 1433:1433

steps:
- uses: actions/checkout@v2
- name: Setup Python
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python }}

- name: Install linux system dependencies
run: sudo apt-get install -y libxkbcommon-x11-0

- name: Install Tox
run: pip install tox

- name: Run Tox
run: xvfb-run -a -s "-screen 0 1280x1024x24" tox -e coverage
env:
ORANGE_TEST_DB_URI: postgres://postgres_user:postgres_password@localhost:5432/postgres_db|mssql://SA:sqlServerPassw0rd@localhost:1433

- name: Upload code coverage
if: matrix.python == '3.7'
run: |
pip install codecov
codecov
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
32 changes: 32 additions & 0 deletions .github/workflows/macos_workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: macOS workflow

on:
# Trigger the workflow on push or pull request, but only for the master branch
push:
branches:
- master
pull_request:
branches:
- master

jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: False
matrix:
python: [3.6, 3.7]
os: [macos-10.15]

steps:
- uses: actions/checkout@v2
- name: Setup Python
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python }}

- name: Install Tox
run: pip install tox

- name: Run Tox
run: tox -e py
31 changes: 31 additions & 0 deletions .github/workflows/windows_workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Windows workflow

on:
push:
branches:
- master
pull_request:
branches:
- master

jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: False
matrix:
python: [3.6, 3.7]
os: [windows-2016]

steps:
- uses: actions/checkout@v2
- name: Setup Python
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python }}

- name: Install Tox
run: pip install tox

- name: Run Tox
run: tox -e py
Empty file modified .travis/check_pylint_diff
100755 → 100644
Empty file.
Empty file modified .travis/install_mssql.sh
100755 → 100644
Empty file.
4 changes: 1 addition & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@
requires = [
"setuptools>=40.8.0",
"wheel",
"numpy==1.14.5; python_version=='3.6'",
"numpy==1.14.5; python_version=='3.7'",
"numpy==1.17.3; python_version=='3.8'",
"oldest-supported-numpy"
]

build-backend = "setuptools.build_meta"
8 changes: 5 additions & 3 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,15 @@ setenv =
# our desire to have OrangeDeprecationWarnings raised
PYTHONWARNINGS=module
deps =
pyqt5!=5.10,<5.14
pyqtwebengine<5.14
pyqt5==5.13.*
pyqtwebengine==5.12.*
commands_pre =
# Verify installed packages have compatible dependencies
pip check
# freeze environment
pip freeze
commands =
# --buffer
python -m unittest --verbose Orange.tests Orange.widgets.tests

[testenv:coverage]
Expand Down Expand Up @@ -68,7 +69,8 @@ skip_install = true
whitelist_externals = bash
deps = pylint
commands =
bash {toxinidir}/.travis/check_pylint_diff
bash .travis/check_pylint_diff
; bash .github/workflows/check_pylint_diff.sh

[testenv:build_doc]
changedir = {toxinidir}
Expand Down

0 comments on commit 70b2e54

Please sign in to comment.