提交 5de03387 authored 作者: Dan F-M's avatar Dan F-M 提交者: Brandon T. Willard

adding GitHub actions workflow

上级 d05ab606
[run]
relative_files = true
name: Tests
on:
push:
branches:
- master
- gh-actions
pull_request:
branches:
- master
jobs:
style:
name: "Check code style"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: 3.7
- name: Install dependencies
run: |
python -m pip install -U pip
python -m pip install -U black flake8
- name: Check the style
run: |
black -t py36 --check theano/ tests/ setup.py
flake8
test:
name: "Test py${{ matrix.python-version }}: ${{ matrix.part }}"
needs: style
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.6", "3.7"]
fast-compile: [0]
float32: [0]
part:
- "tests --ignore=tests/tensor --ignore=tests/sparse --ignore=tests/tensor/nnet"
- "tests/tensor tests/sparse --ignore=tests/tensor/test_basic.py --ignore=tests/tensor/test_elemwise.py --ignore=tests/tensor/test_opt.py --ignore=tests/tensor/nnet"
- "tests/tensor/test_basic.py"
- "tests/tensor/test_elemwise.py tests/tensor/test_opt.py"
- "tests/tensor/nnet --ignore-glob='*/test_abstract_conv.py'"
- "tests/tensor/nnet/test_abstract_conv.py"
include:
- python-version: "3.7"
fast-compile: 1
float32: 1
part: "tests --ignore=tests/tensor/nnet --ignore=tests/tensor/signal"
- python-version: "3.7"
fast-compile: 1
float32: 0
part: "tests --ignore=tests/tensor/nnet --ignore=tests/tensor/signal"
- python-version: "3.7"
fast-compile: 1
float32: 1
part: "tests/tensor/nnet"
- python-version: "3.7"
fast-compile: 1
float32: 0
part: "tests/tensor/nnet"
- python-version: "3.7"
fast-compile: 1
float32: 1
part: "tests/tensor/signal"
- python-version: "3.7"
fast-compile: 1
float32: 0
part: "tests/tensor/signal"
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: conda-incubator/setup-miniconda@v1
with:
python-version: ${{ matrix.python-version }}
auto-update-conda: true
# Setup
- name: Install dependencies
shell: bash -l {0}
run: |
conda install --yes -q mkl numpy scipy pip mkl-service graphviz cython libgpuarray pygpu
if [[ "$PYTHON_VERSION" != "3.6" ]]; then conda install --yes -q -c conda-forge jax jaxlib; fi
pip install -q -r requirements.txt
conda list && pip freeze
python -c 'import theano; print(theano.config.__str__(print_doc=False))'
python -c 'import theano; assert(theano.config.blas.ldflags != "")'
env:
PYTHON_VERSION: ${{ matrix.python-version }}
- name: Run tests
shell: bash -l {0}
run: |
if [[ $FAST_COMPILE == "1" ]]; then export THEANO_FLAGS=$THEANO_FLAGS,mode=FAST_COMPILE; fi
if [[ $FLOAT32 == "1" ]]; then export THEANO_FLAGS=$THEANO_FLAGS,floatX=float32; fi
export THEANO_FLAGS=$THEANO_FLAGS,warn.ignore_bug_before=all,on_opt_error=raise,on_shape_error=raise,gcc.cxxflags=-pipe
python -m pytest -x -r A --verbose --runslow --cov=theano/ --cov-append --no-cov-on-fail $PART
env:
MKL_THREADING_LAYER: GNU
MKL_NUM_THREADS: 1
OMP_NUM_THREADS: 1
PART: ${{ matrix.part }}
FAST_COMPILE: ${{ matrix.fast-compile }}
FLOAT32: ${{ matrix.float32 }}
- name: Coverage
uses: exoplanet-dev/coveralls-python-action@develop
continue-on-error: true
with:
parallel: true
coverage:
name: "Upload coverage"
needs: test
runs-on: ubuntu-latest
steps:
- name: Coveralls Finished
uses: exoplanet-dev/coveralls-python-action@develop
with:
parallel-finished: true
os: linux
dist: xenial
cache:
directories:
- $HOME/.cache/pip
- $HOME/.theano
- $HOME/download
- $HOME/miniconda
language: python
python:
- "3.7"
- "3.6"
stages:
- style-checks
- test
env:
global:
- NUMPY_VERSION=1.18.1
jobs:
- PART="tests --ignore=tests/tensor --ignore=tests/sparse --ignore=tests/tensor/nnet"
- PART="tests/tensor tests/sparse --ignore=tests/tensor/test_basic.py --ignore=tests/tensor/test_elemwise.py --ignore=tests/tensor/test_opt.py --ignore=tests/tensor/nnet"
- PART="tests/tensor/test_basic.py"
- PART="tests/tensor/test_elemwise.py tests/tensor/test_opt.py"
- PART="tests/tensor/nnet --ignore-glob='*/test_abstract_conv.py'"
- PART="tests/tensor/nnet/test_abstract_conv.py"
addons:
apt_packages:
- texlive-latex-recommended
- texlive-latex-extra
- texlive-fonts-recommended
- dvipng
before_install:
- |
if test -e $HOME/miniconda/bin ; then
echo "miniconda already installed."
else
echo "Installing miniconda."
rm -rf $HOME/miniconda
mkdir -p $HOME/download
if [[ -d $HOME/download/miniconda.sh ]] ; then rm -rf $HOME/download/miniconda.sh ; fi
wget -c https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O $HOME/download/miniconda.sh
mkdir $HOME/.conda
bash $HOME/download/miniconda.sh -b -p $HOME/miniconda
fi
$HOME/miniconda/bin/conda init bash
source ~/.bash_profile
conda activate base
hash -r
conda config --set always_yes yes --set changeps1 no
conda update -q conda
conda info -a
install:
- conda create --yes -q -n pyenv python=$TRAVIS_PYTHON_VERSION
- conda activate pyenv
- conda install --yes -q mkl numpy scipy pip mkl-service graphviz cython libgpuarray pygpu
- if [[ "$TRAVIS_PYTHON_VERSION" != "3.6" ]]; then conda install --yes -q -c conda-forge jax jaxlib; fi
- pip install -q -r requirements.txt
- conda list && pip freeze
- python -c 'import theano; print(theano.config.__str__(print_doc=False))'
- python -c 'import theano; assert(theano.config.blas.ldflags != "")'
jobs:
include:
- stage: style-checks
script:
- black -t py36 --check theano/ tests/ setup.py
- flake8
after_success: skip
- &normaltest
stage: test
env: FAST_COMPILE=1 FLOAT32=1 PART="tests --ignore=tests/tensor/nnet --ignore=tests/tensor/signal"
- <<: *normaltest
env: FAST_COMPILE=1 PART="tests --ignore=tests/tensor/nnet --ignore=tests/tensor/signal"
- <<: *normaltest
env: FAST_COMPILE=1 FLOAT32=1 PART="tests/tensor/nnet"
- <<: *normaltest
env: FAST_COMPILE=1 PART="tests/tensor/nnet"
- <<: *normaltest
env: FAST_COMPILE=1 FLOAT32=1 PART="tests/tensor/signal"
- <<: *normaltest
env: FAST_COMPILE=1 PART="tests/tensor/signal"
script:
- conda activate pyenv
- if [[ $FAST_COMPILE == "1" ]]; then export THEANO_FLAGS=$THEANO_FLAGS,mode=FAST_COMPILE; fi
- if [[ $FLOAT32 == "1" ]]; then export THEANO_FLAGS=$THEANO_FLAGS,floatX=float32; fi
- export THEANO_FLAGS=$THEANO_FLAGS,warn.ignore_bug_before=all,on_opt_error=raise,on_shape_error=raise,gcc.cxxflags=-pipe
- export MKL_THREADING_LAYER=GNU
- export MKL_NUM_THREADS=1
- export OMP_NUM_THREADS=1
- echo "$PART"
- pytest -x -r A --verbose --runslow --cov=theano/ --cov-append --no-cov-on-fail $PART
after_success:
- coveralls
after_failure:
- cat $HOME/.pip/pip.log
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论