Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Separate CI checks into smaller independent jobs #595

Merged
merged 30 commits into from
Jun 21, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
f2c56e5
separate the py37 CI job into multiple jobs
rwedge Jun 12, 2019
ac1476f
fix missing colon in circleci yaml
rwedge Jun 12, 2019
2964228
use valid job names
rwedge Jun 12, 2019
aa5cf8a
fix wrong command name
rwedge Jun 12, 2019
0ed3253
update changelog
rwedge Jun 12, 2019
66e24c7
add debug statement for persisting
rwedge Jun 12, 2019
68fdf2a
fix unpacked naming
rwedge Jun 12, 2019
1347e37
make installd dev reqs job
rwedge Jun 12, 2019
c4a340f
add line break
rwedge Jun 12, 2019
724d520
add dev req job to workflow
rwedge Jun 12, 2019
b8a3fdf
missing colon
rwedge Jun 12, 2019
e74f974
install pandoc in docs job
rwedge Jun 12, 2019
f4abdf7
try configuring job docker image via workflow
rwedge Jun 12, 2019
36ab4e6
add other python versions
rwedge Jun 12, 2019
5cc5c33
remove install dev req job (too much overhead)
rwedge Jun 13, 2019
7faed55
remove dev req jobs from workflow
rwedge Jun 13, 2019
9de8f98
remove most custom commands (no longer used multiple times)
rwedge Jun 13, 2019
ea64738
add codecov option to unit test job
rwedge Jun 13, 2019
b011811
fix indent
rwedge Jun 13, 2019
12b831d
convert package_featuretools from a job to a command
rwedge Jun 13, 2019
7681ab2
lint for py36 only
rwedge Jun 13, 2019
79699cc
use py36 for codecov
rwedge Jun 13, 2019
9a5ce11
lint all python versions
rwedge Jun 13, 2019
c12800c
Merge branch 'master' into ci-expand-workflow
rwedge Jun 14, 2019
11b7bd4
Merge branch 'master' into ci-expand-workflow
rwedge Jun 20, 2019
7115607
update changelog
rwedge Jun 20, 2019
9aed2a5
include docstring tests in unit tests
rwedge Jun 20, 2019
2d52e1b
Merge branch 'master' into ci-expand-workflow
rwedge Jun 21, 2019
9b6cb8e
Merge branch 'master' into ci-expand-workflow
kmax12 Jun 21, 2019
665c7da
Merge branch 'master' into ci-expand-workflow
rwedge Jun 21, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
269 changes: 181 additions & 88 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,113 +1,146 @@
version: 2.1

executors:
python:
parameters:
image_tag:
type: string
default: "3.7"
docker:
- image: circleci/python:<< parameters.image_tag >>

commands:
install-packaged-featuretools:
description: "install featuretools from source distribution"
steps:
- run : |
source test_env/bin/activate
python setup.py sdist
FEATURETOOLS_VERSION=$(python setup.py --version)
tar -zxvf "dist/featuretools-${FEATURETOOLS_VERSION}.tar.gz"
pip install -e "featuretools-${FEATURETOOLS_VERSION}/"
pip install -r "featuretools-${FEATURETOOLS_VERSION}/test-requirements.txt"
run-packaged-tests:
description: "run unit tests on packaged testing files"
steps:
- run: |
source test_env/bin/activate
cd "featuretools-$(python setup.py --version)/"
pytest featuretools/
install-ft-complete:
description: "install featuretools[complete]"
steps:
- run: |
virtualenv test_ft_complete_env && source test_ft_complete_env/bin/activate
FEATURETOOLS_VERSION=$(python setup.py --version)
pip install -e "featuretools-${FEATURETOOLS_VERSION}/[complete]"
run-import-tests:
description: "testing imports of add-ons"
package_featuretools:
steps:
- run: |
source test_ft_complete_env/bin/activate
python -c "import featuretools_tsfresh_primitives"
python -c "import featuretools_update_checker"
python setup.py sdist
FT_VERSION=$(python setup.py --version)
tar -zxvf "dist/featuretools-${FT_VERSION}.tar.gz"
mv "featuretools-${FT_VERSION}" unpacked_sdist

jobs:
"python-27":
install_ft:
working_directory: ~/featuretools
docker:
- image: circleci/python:2.7
parameters:
image_tag:
type: string
default: "3.7"
executor:
name: python
image_tag: << parameters.image_tag >>
steps:
- run: sudo apt update && sudo apt install -y graphviz
- checkout
- run: virtualenv test_env && virtualenv dev_env
- install-packaged-featuretools
- run: source dev_env/bin/activate && make installdeps
- run: source dev_env/bin/activate && make lint
- run-packaged-tests
- install-ft-complete
- run-import-tests
- attach_workspace:
at: ~/featuretools
- package_featuretools
- run : |
virtualenv venv
source venv/bin/activate
pip install -e unpacked_sdist/
pip install -r unpacked_sdist/test-requirements.txt
- persist_to_workspace:
root: ~/featuretools
paths:
- venv
- unpacked_sdist

"python-35":
unit_tests:
working_directory: ~/featuretools
docker:
- image: circleci/python:3.5
parameters:
image_tag:
type: string
default: "3.7"
codecov:
type: boolean
default: false
executor:
name: python
image_tag: << parameters.image_tag >>
steps:
- run: sudo apt update && sudo apt install -y graphviz
- checkout
- run: virtualenv test_env && virtualenv dev_env
- install-packaged-featuretools
- run: source dev_env/bin/activate && make installdeps
- run: source dev_env/bin/activate && make lint
- run-packaged-tests
- install-ft-complete
- run-import-tests
- attach_workspace:
at: ~/featuretools
- when:
condition: << parameters.codecov >>
steps:
- run: |
source venv/bin/activate
pip install "$(cat dev-requirements.txt | grep codecov)"
coverage erase
cd unpacked_sdist/
coverage erase
pytest featuretools/ --cov=featuretools --cov-config=../.coveragerc
cd ../
cp unpacked_sdist/.coverage .coverage
codecov
- unless:
condition: << parameters.codecov >>
steps:
- run: |
source venv/bin/activate
cd unpacked_sdist
pytest featuretools/

"python-36":
lint_test:
working_directory: ~/featuretools
docker:
- image: circleci/python:3.6
parameters:
image_tag:
type: string
default: "3.7"
executor:
name: python
image_tag: << parameters.image_tag >>
steps:
- run: sudo apt update && sudo apt install -y graphviz pandoc
- checkout
- run: virtualenv test_env && virtualenv dev_env
- install-packaged-featuretools
- run: source dev_env/bin/activate && make installdeps
- run: source dev_env/bin/activate && make lint
- run-packaged-tests
- install-ft-complete
- run-import-tests
- run: source dev_env/bin/activate && make -C docs/ -e "SPHINXOPTS=-W" clean html
- attach_workspace:
at: ~/featuretools
- run: |
source venv/bin/activate
pip install -r unpacked_sdist/dev-requirements.txt
- run: source venv/bin/activate && make lint

"python-37":
build_docs:
working_directory: ~/featuretools
docker:
- image: circleci/python:3.7
steps:
- run: sudo apt update && sudo apt install -y graphviz
- run: sudo apt update && sudo apt install -y pandoc
- checkout
- attach_workspace:
at: ~/featuretools
- run: |
source venv/bin/activate
pip install -r unpacked_sdist/dev-requirements.txt
- run: |
source venv/bin/activate
make -C docs/ -e "SPHINXOPTS=-W" clean html

install_ft_complete:
working_directory: ~/featuretools
parameters:
image_tag:
type: string
default: "3.7"
executor:
name: python
image_tag: << parameters.image_tag >>
steps:
- checkout
- run: virtualenv test_env && virtualenv dev_env
- install-packaged-featuretools
- run: source dev_env/bin/activate && make installdeps
- run: source dev_env/bin/activate && make lint
- install-ft-complete
- run-import-tests
- package_featuretools
- run: |
source test_env/bin/activate
pip install "$(cat dev-requirements.txt | grep codecov)"
coverage erase
FEATURETOOLS_VERSION=$(python setup.py --version)
cd "featuretools-${FEATURETOOLS_VERSION}/"
coverage erase
pytest featuretools/ --cov=featuretools --cov-config=../.coveragerc
cd ../
cp "featuretools-${FEATURETOOLS_VERSION}/.coverage" .coverage
codecov
"changelog_updated":
virtualenv venv
source venv/bin/activate
pip install -e unpacked_sdist/[complete]
- run: |
source venv/bin/activate
python -c "import featuretools_tsfresh_primitives"
python -c "import featuretools_update_checker"

changelog_updated:
working_directory: ~/featuretools
docker:
- image: circleci/python:3.7
- image: busybox:latest
steps:
- checkout
- run: cat docs/source/changelog.rst | grep ":pr:\`${CIRCLE_PULL_REQUEST##https://github.com/Featuretools/featuretools/pull/}\`"
Expand All @@ -116,13 +149,73 @@ workflows:
version: 2
test_all_python_versions:
jobs:
- "python-27"
- "python-35"
- "python-36"
- "python-37"
changelog_updated:
jobs:
- install_ft:
name: "py27 install featuretools"
image_tag: "2.7"
- install_ft:
name: "py35 install featuretools"
image_tag: "3.5"
- install_ft:
name: "py36 install featuretools"
image_tag: "3.6"
- install_ft:
name: "py37 install featuretools"
- unit_tests:
name: "py27 unit tests"
image_tag: "2.7"
requires:
- "py27 install featuretools"
- unit_tests:
name: "py35 unit tests"
image_tag: "3.5"
requires:
- "py35 install featuretools"
- unit_tests:
name: "py36 unit tests"
image_tag: "3.6"
codecov: true
requires:
- "py36 install featuretools"
- unit_tests:
name: "py37 unit tests"
requires:
- "py37 install featuretools"
- lint_test:
name: "py27 lint test"
image_tag: "2.7"
requires:
- "py27 install featuretools"
- lint_test:
name: "py35 lint test"
image_tag: "3.5"
requires:
- "py35 install featuretools"
- lint_test:
name: "py36 lint test"
image_tag: "3.6"
requires:
- "py36 install featuretools"
- lint_test:
name: "py37 lint test"
requires:
- "py37 install featuretools"
- build_docs:
name: "build docs"
requires:
- "py37 install featuretools"
- install_ft_complete:
name: "py27 install featuretools complete test"
image_tag: "2.7"
- install_ft_complete:
name: "py35 install featuretools complete test"
image_tag: "3.5"
- install_ft_complete:
name: "py36 install featuretools complete test"
image_tag: "3.6"
- install_ft_complete:
name: "py37 install featuretools complete test"
- changelog_updated:
name: "changelog updated"
filters:
branches:
ignore: /^master?/
4 changes: 2 additions & 2 deletions docs/source/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ Changelog
* Remove Timedelta data param (:pr:`619`)
* Documentation Changes
* Testing Changes
* Miscellaneous changes (:pr:`612`)
* Miscellaneous changes (:pr:`595`, :pr:`612`)

Thanks to the following people for contributing to this release:
:user:`CJStadler`
:user:`CJStadler`, :user:`rwedge`

**v0.9.0** June 19, 2019
* Enhancements
Expand Down