config.yml¶
Last source¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 | version: 2
references:
# docker container for python only jobs
python_only_config: &python_only_config
working_directory: ~/isshub
docker:
- image: circleci/python:3.8.5
# build steps to save/restore the directory used by pip to cache downloaded packages
save_pip_cache: &save_pip_cache
save_cache:
key: v1-pip-cache-{{ .Branch }}-{{ .Revision }}
paths:
- ~/.cache/pip
restore_pip_cache: &restore_pip_cache
restore_cache:
keys:
- v1-pip-cache-{{ .Branch }}-{{ .Revision }}
- v1-pip-cache-{{ .Branch }}
- v1-pip-cache
# shortcut to attach the workspace before each job
attach_workspace: &attach_workspace
attach_workspace:
at: "~/"
# complete workflow with all jobs with their dependencies
full_workflow_jobs: &full_workflow_jobs
jobs:
- checkout_code
- install_code:
requires:
- checkout_code
- check_commit:
requires:
- install_code
- linter_mypy:
requires:
- install_code
- linter_isort:
requires:
- install_code
- linter_black:
requires:
- install_code
- linter_flake8:
requires:
- install_code
- linter_pylint:
requires:
- install_code
- run_tests:
requires:
- install_code
- build_doc:
requires:
- install_code
- check_every_commit:
requires:
- install_code
- build_python_package:
requires:
- linter_mypy
- linter_isort
- linter_black
- linter_flake8
- linter_pylint
- run_tests
- test_python_package_whl:
requires:
- build_python_package
- test_python_package_targz:
requires:
- build_python_package
# jobs definition: they are used in ``workflows``
jobs:
# get the code from git and save the repo to pass it to the next job
checkout_code:
<<: *python_only_config
steps:
- checkout
- persist_to_workspace:
root: "~/"
paths:
- isshub
# install the project code and dependencies and save the venv and pip cache
install_code:
<<: *python_only_config
steps:
- *attach_workspace
- *restore_pip_cache
- run:
name: Install code
command: |
python -m venv ~/venv
source ~/venv/bin/activate
pip install --upgrade pip
make dev
- *save_pip_cache
- persist_to_workspace:
root: "~/"
paths:
- venv
- isshub
check_commit:
<<: *python_only_config
steps:
- *attach_workspace
- run:
name: Check commit message
command: |
source ~/venv/bin/activate
make check-commit
# 4 next jobs are linters: mypy, black, flake8 and pylint
# they all use the workspace
linter_mypy:
<<: *python_only_config
steps:
- *attach_workspace
- run:
name: Run "mypy" linter
command: |
source ~/venv/bin/activate
make mypy
linter_isort:
<<: *python_only_config
steps:
- *attach_workspace
- run:
name: Run "isort" linter
command: |
source ~/venv/bin/activate
make check-isort
linter_black:
<<: *python_only_config
steps:
- *attach_workspace
- run:
name: Run "black" linter
command: |
source ~/venv/bin/activate
make check-black
linter_flake8:
<<: *python_only_config
steps:
- *attach_workspace
- run:
name: Run "flake8" linter
command: |
source ~/venv/bin/activate
make flake8
linter_pylint:
<<: *python_only_config
steps:
- *attach_workspace
- run:
name: Run "pylint" linter
command: |
source ~/venv/bin/activate
make pylint
# run the tests
run_tests:
<<: *python_only_config
steps:
- *attach_workspace
- run:
name: Run tests
command: |
source ~/venv/bin/activate
make test
# build the documentation
build_doc:
<<: *python_only_config
steps:
- *attach_workspace
- type: shell
name: Install system dependencies
command: sudo apt-get update -qq -y && sudo apt-get install -y graphviz
- run:
name: Auth with github
# github changes their keys sometimes and we run into this issue:
# https://circleci.com/gh/Isshub-io/isshub/118
# so this should fix that here
command: |
mkdir -p ~/.ssh/
echo -e "Host github.com\n\tStrictHostKeyChecking no\n\tUserKnownHostsFile /dev/null\n" > ~/.ssh/config
chmod 600 ~/.ssh/config
ssh-keyscan -Ht rsa github.com >> ~/.ssh/known_hosts
- run:
name: Build documentation
command: |
source ~/venv/bin/activate
GIT_TO_SPHINX_UPDATE_BRANCHES=TRUE make doc-strict
# run check and tests for every commit in the history for which it is not already done
check_every_commit:
<<: *python_only_config
steps:
- *attach_workspace
- *restore_pip_cache
- type: shell
name: Install system dependencies
command: sudo apt-get update -qq -y && sudo apt-get install -y curl jq
- run:
name: Check every commits
command: |
source ~/venv/bin/activate
ci/check-every-commit.sh
# will build the python package, using the tag as the base version, suffixed with info from git describe if not a tag
build_python_package:
<<: *python_only_config
steps:
- *attach_workspace
- run:
name: Build package
command: |
sed -i -e "s/^version = .*$/version = $(git describe --tags)/" setup.cfg
source ~/venv/bin/activate
make dist
- store_artifacts:
path: dist/
- save_cache:
key: v1-isshub-dist-{{ .Revision }}
paths:
- ~/isshub/dist
# will test that the python wheel package is installable and works
test_python_package_whl:
<<: *python_only_config
steps:
- checkout
- *restore_pip_cache
- restore_cache:
keys:
- v1-isshub-dist-{{ .Revision }}
- run:
name: Check package
command: |
ls -la
mv dist _dist
find ./isshub/ -type f -not -path '*/tests/*' -not -path '*/features/*' -delete
find ./isshub/ -type d -empty -delete
find ./isshub/ -type d -not -path '*/tests/*' -not -path '*/features/*' -not -name 'tests' -not -name 'features' -exec touch "{}/__init__.py" \;
mv isshub isshub_tests
make full-clean
python -m venv ~/venv
source ~/venv/bin/activate
pip install --upgrade pip
pip install $(ls -tr _dist/*.whl | tail -n 1)[tests]
make tests-nocov
# will test that the python tar.gz package is installable and works
test_python_package_targz:
<<: *python_only_config
steps:
- checkout
- *restore_pip_cache
- restore_cache:
keys:
- v1-isshub-dist-{{ .Revision }}
- run:
name: Check package
command: |
ls -la
python -m venv ~/venv
source ~/venv/bin/activate
pip install --upgrade pip
mv dist _dist
find ./isshub/ -type f -not -path '*/tests/*' -not -path '*/features/*' -delete
find ./isshub/ -type d -empty -delete
find ./isshub/ -type d -not -path '*/tests/*' -not -path '*/features/*' -not -name 'tests' -not -name 'features' -exec touch "{}/__init__.py" \;
mv isshub isshub_tests
make full-clean
python -m venv ~/venv
source ~/venv/bin/activate
pip install --upgrade pip
pip install $(ls -tr _dist/*.tar.gz | tail -n 1)[tests]
make tests-nocov
workflows:
version: 2
full_workflow_on_push:
<<: *full_workflow_jobs
full_workflow_nightly:
<<: *full_workflow_jobs
triggers:
- schedule:
cron: "12 3 * * *" # Everyday at 3:21 am
filters:
branches:
only:
- develop
|
Changes¶
docs(domain): Add diagram of entities for each domain context¶
- Commit
- Hash
- Date
2020-10-04 11:50:37 +0200
- Type
Modified
- Stats
+3 -0
@@ -186,6 +186,9 @@ jobs:
<<: *python_only_config
steps:
- *attach_workspace
+ - type: shell
+ name: Install system dependencies
+ command: sudo apt-get update -qq -y && sudo apt-get install -y graphviz
- run:
name: Auth with github
# github changes their keys sometimes and we run into this issue:
ci: Run full workflow on develop every day¶
- Commit
- Hash
- Date
2020-09-26 15:16:41 +0200
- Type
Modified
- Stats
+59 -48
@@ -26,6 +26,54 @@ references:
attach_workspace:
at: "~/"
+ # complete workflow with all jobs with their dependencies
+ full_workflow_jobs: &full_workflow_jobs
+ jobs:
+ - checkout_code
+ - install_code:
+ requires:
+ - checkout_code
+ - check_commit:
+ requires:
+ - install_code
+ - linter_mypy:
+ requires:
+ - install_code
+ - linter_isort:
+ requires:
+ - install_code
+ - linter_black:
+ requires:
+ - install_code
+ - linter_flake8:
+ requires:
+ - install_code
+ - linter_pylint:
+ requires:
+ - install_code
+ - run_tests:
+ requires:
+ - install_code
+ - build_doc:
+ requires:
+ - install_code
+ - check_every_commit:
+ requires:
+ - install_code
+ - build_python_package:
+ requires:
+ - linter_mypy
+ - linter_isort
+ - linter_black
+ - linter_flake8
+ - linter_pylint
+ - run_tests
+ - test_python_package_whl:
+ requires:
+ - build_python_package
+ - test_python_package_targz:
+ requires:
+ - build_python_package
# jobs definition: they are used in ``workflows``
jobs:
@@ -242,51 +290,14 @@ jobs:
workflows:
version: 2
-
- isshub:
- jobs:
- - checkout_code
- - install_code:
- requires:
- - checkout_code
- - check_commit:
- requires:
- - install_code
- - linter_mypy:
- requires:
- - install_code
- - linter_isort:
- requires:
- - install_code
- - linter_black:
- requires:
- - install_code
- - linter_flake8:
- requires:
- - install_code
- - linter_pylint:
- requires:
- - install_code
- - run_tests:
- requires:
- - install_code
- - build_doc:
- requires:
- - install_code
- - check_every_commit:
- requires:
- - install_code
- - build_python_package:
- requires:
- - linter_mypy
- - linter_isort
- - linter_black
- - linter_flake8
- - linter_pylint
- - run_tests
- - test_python_package_whl:
- requires:
- - build_python_package
- - test_python_package_targz:
- requires:
- - build_python_package
+ full_workflow_on_push:
+ <<: *full_workflow_jobs
+ full_workflow_nightly:
+ <<: *full_workflow_jobs
+ triggers:
+ - schedule:
+ cron: "12 3 * * *" # Everyday at 3:21 am
+ filters:
+ branches:
+ only:
+ - develop
build(python): Update minimal python version to 3.8¶
- Commit
- Hash
- Date
2020-09-26 13:37:49 +0200
- Type
Modified
- Stats
+1 -1
@@ -6,7 +6,7 @@ references:
python_only_config: &python_only_config
working_directory: ~/isshub
docker:
- - image: circleci/python:3.7.3
+ - image: circleci/python:3.8.5
# build steps to save/restore the directory used by pip to cache downloaded packages
save_pip_cache: &save_pip_cache
docs(git): Only update remote branches if asked¶
- Commit
- Hash
- Date
2020-09-25 23:37:37 +0200
- Type
Modified
- Stats
+1 -1
@@ -152,7 +152,7 @@ jobs:
name: Build documentation
command: |
source ~/venv/bin/activate
- make doc-strict
+ GIT_TO_SPHINX_UPDATE_BRANCHES=TRUE make doc-strict
# run check and tests for every commit in the history for which it is not already done
check_every_commit:
ci(docs): Make CI job build_doc fail if a warning occurs¶
- Commit
- Hash
- Date
2019-08-16 00:16:52 +0200
- Type
Modified
- Stats
+1 -1
@@ -152,7 +152,7 @@ jobs:
name: Build documentation
command: |
source ~/venv/bin/activate
- make doc
+ make doc-strict
# run check and tests for every commit in the history for which it is not already done
check_every_commit:
feat(repository): Add 1st domain context (core) and entity (Repository)¶
- Commit
- Hash
- Date
2019-06-07 21:03:50 +0200
- Type
Modified
- Stats
+10 -4
@@ -201,13 +201,16 @@ jobs:
command: |
ls -la
mv dist _dist
- rm -r isshub
+ find ./isshub/ -type f -not -path '*/tests/*' -not -path '*/features/*' -delete
+ find ./isshub/ -type d -empty -delete
+ find ./isshub/ -type d -not -path '*/tests/*' -not -path '*/features/*' -not -name 'tests' -not -name 'features' -exec touch "{}/__init__.py" \;
+ mv isshub isshub_tests
make full-clean
python -m venv ~/venv
source ~/venv/bin/activate
pip install --upgrade pip
pip install $(ls -tr _dist/*.whl | tail -n 1)[tests]
- make tests
+ make tests-nocov
# will test that the python tar.gz package is installable and works
test_python_package_targz:
@@ -226,13 +229,16 @@ jobs:
source ~/venv/bin/activate
pip install --upgrade pip
mv dist _dist
- rm -r isshub
+ find ./isshub/ -type f -not -path '*/tests/*' -not -path '*/features/*' -delete
+ find ./isshub/ -type d -empty -delete
+ find ./isshub/ -type d -not -path '*/tests/*' -not -path '*/features/*' -not -name 'tests' -not -name 'features' -exec touch "{}/__init__.py" \;
+ mv isshub isshub_tests
make full-clean
python -m venv ~/venv
source ~/venv/bin/activate
pip install --upgrade pip
pip install $(ls -tr _dist/*.tar.gz | tail -n 1)[tests]
- make tests
+ make tests-nocov
workflows:
version: 2
ci: Make the CI do all checks for every commits¶
- Commit
- Hash
- Date
2019-06-03 13:55:00 +0200
- Type
Modified
- Stats
+18 -0
@@ -154,6 +154,21 @@ jobs:
source ~/venv/bin/activate
make doc
+ # run check and tests for every commit in the history for which it is not already done
+ check_every_commit:
+ <<: *python_only_config
+ steps:
+ - *attach_workspace
+ - *restore_pip_cache
+ - type: shell
+ name: Install system dependencies
+ command: sudo apt-get update -qq -y && sudo apt-get install -y curl jq
+ - run:
+ name: Check every commits
+ command: |
+ source ~/venv/bin/activate
+ ci/check-every-commit.sh
+
# will build the python package, using the tag as the base version, suffixed with info from git describe if not a tag
build_python_package:
<<: *python_only_config
@@ -252,6 +267,9 @@ workflows:
- build_doc:
requires:
- install_code
+ - check_every_commit:
+ requires:
+ - install_code
- build_python_package:
requires:
- linter_mypy
ci: Configuration for circle-ci¶
- Commit
- Hash
- Date
2019-06-03 13:55:00 +0200
- Type
Added
- Stats
+268 -0
@@ -0,0 +1,268 @@
+version: 2
+
+references:
+
+ # docker container for python only jobs
+ python_only_config: &python_only_config
+ working_directory: ~/isshub
+ docker:
+ - image: circleci/python:3.7.3
+
+ # build steps to save/restore the directory used by pip to cache downloaded packages
+ save_pip_cache: &save_pip_cache
+ save_cache:
+ key: v1-pip-cache-{{ .Branch }}-{{ .Revision }}
+ paths:
+ - ~/.cache/pip
+ restore_pip_cache: &restore_pip_cache
+ restore_cache:
+ keys:
+ - v1-pip-cache-{{ .Branch }}-{{ .Revision }}
+ - v1-pip-cache-{{ .Branch }}
+ - v1-pip-cache
+
+ # shortcut to attach the workspace before each job
+ attach_workspace: &attach_workspace
+ attach_workspace:
+ at: "~/"
+
+
+# jobs definition: they are used in ``workflows``
+jobs:
+
+ # get the code from git and save the repo to pass it to the next job
+ checkout_code:
+ <<: *python_only_config
+ steps:
+ - checkout
+ - persist_to_workspace:
+ root: "~/"
+ paths:
+ - isshub
+
+ # install the project code and dependencies and save the venv and pip cache
+ install_code:
+ <<: *python_only_config
+ steps:
+ - *attach_workspace
+ - *restore_pip_cache
+ - run:
+ name: Install code
+ command: |
+ python -m venv ~/venv
+ source ~/venv/bin/activate
+ pip install --upgrade pip
+ make dev
+ - *save_pip_cache
+ - persist_to_workspace:
+ root: "~/"
+ paths:
+ - venv
+ - isshub
+
+ check_commit:
+ <<: *python_only_config
+ steps:
+ - *attach_workspace
+ - run:
+ name: Check commit message
+ command: |
+ source ~/venv/bin/activate
+ make check-commit
+
+ # 4 next jobs are linters: mypy, black, flake8 and pylint
+ # they all use the workspace
+ linter_mypy:
+ <<: *python_only_config
+ steps:
+ - *attach_workspace
+ - run:
+ name: Run "mypy" linter
+ command: |
+ source ~/venv/bin/activate
+ make mypy
+
+ linter_isort:
+ <<: *python_only_config
+ steps:
+ - *attach_workspace
+ - run:
+ name: Run "isort" linter
+ command: |
+ source ~/venv/bin/activate
+ make check-isort
+
+ linter_black:
+ <<: *python_only_config
+ steps:
+ - *attach_workspace
+ - run:
+ name: Run "black" linter
+ command: |
+ source ~/venv/bin/activate
+ make check-black
+
+ linter_flake8:
+ <<: *python_only_config
+ steps:
+ - *attach_workspace
+ - run:
+ name: Run "flake8" linter
+ command: |
+ source ~/venv/bin/activate
+ make flake8
+
+ linter_pylint:
+ <<: *python_only_config
+ steps:
+ - *attach_workspace
+ - run:
+ name: Run "pylint" linter
+ command: |
+ source ~/venv/bin/activate
+ make pylint
+
+ # run the tests
+ run_tests:
+ <<: *python_only_config
+ steps:
+ - *attach_workspace
+ - run:
+ name: Run tests
+ command: |
+ source ~/venv/bin/activate
+ make test
+
+ # build the documentation
+ build_doc:
+ <<: *python_only_config
+ steps:
+ - *attach_workspace
+ - run:
+ name: Auth with github
+ # github changes their keys sometimes and we run into this issue:
+ # https://circleci.com/gh/Isshub-io/isshub/118
+ # so this should fix that here
+ command: |
+ mkdir -p ~/.ssh/
+ echo -e "Host github.com\n\tStrictHostKeyChecking no\n\tUserKnownHostsFile /dev/null\n" > ~/.ssh/config
+ chmod 600 ~/.ssh/config
+ ssh-keyscan -Ht rsa github.com >> ~/.ssh/known_hosts
+ - run:
+ name: Build documentation
+ command: |
+ source ~/venv/bin/activate
+ make doc
+
+ # will build the python package, using the tag as the base version, suffixed with info from git describe if not a tag
+ build_python_package:
+ <<: *python_only_config
+ steps:
+ - *attach_workspace
+ - run:
+ name: Build package
+ command: |
+ sed -i -e "s/^version = .*$/version = $(git describe --tags)/" setup.cfg
+ source ~/venv/bin/activate
+ make dist
+ - store_artifacts:
+ path: dist/
+ - save_cache:
+ key: v1-isshub-dist-{{ .Revision }}
+ paths:
+ - ~/isshub/dist
+
+ # will test that the python wheel package is installable and works
+ test_python_package_whl:
+ <<: *python_only_config
+ steps:
+ - checkout
+ - *restore_pip_cache
+ - restore_cache:
+ keys:
+ - v1-isshub-dist-{{ .Revision }}
+ - run:
+ name: Check package
+ command: |
+ ls -la
+ mv dist _dist
+ rm -r isshub
+ make full-clean
+ python -m venv ~/venv
+ source ~/venv/bin/activate
+ pip install --upgrade pip
+ pip install $(ls -tr _dist/*.whl | tail -n 1)[tests]
+ make tests
+
+ # will test that the python tar.gz package is installable and works
+ test_python_package_targz:
+ <<: *python_only_config
+ steps:
+ - checkout
+ - *restore_pip_cache
+ - restore_cache:
+ keys:
+ - v1-isshub-dist-{{ .Revision }}
+ - run:
+ name: Check package
+ command: |
+ ls -la
+ python -m venv ~/venv
+ source ~/venv/bin/activate
+ pip install --upgrade pip
+ mv dist _dist
+ rm -r isshub
+ make full-clean
+ python -m venv ~/venv
+ source ~/venv/bin/activate
+ pip install --upgrade pip
+ pip install $(ls -tr _dist/*.tar.gz | tail -n 1)[tests]
+ make tests
+
+workflows:
+ version: 2
+
+ isshub:
+ jobs:
+ - checkout_code
+ - install_code:
+ requires:
+ - checkout_code
+ - check_commit:
+ requires:
+ - install_code
+ - linter_mypy:
+ requires:
+ - install_code
+ - linter_isort:
+ requires:
+ - install_code
+ - linter_black:
+ requires:
+ - install_code
+ - linter_flake8:
+ requires:
+ - install_code
+ - linter_pylint:
+ requires:
+ - install_code
+ - run_tests:
+ requires:
+ - install_code
+ - build_doc:
+ requires:
+ - install_code
+ - build_python_package:
+ requires:
+ - linter_mypy
+ - linter_isort
+ - linter_black
+ - linter_flake8
+ - linter_pylint
+ - run_tests
+ - test_python_package_whl:
+ requires:
+ - build_python_package
+ - test_python_package_targz:
+ requires:
+ - build_python_package
Temporary circle-ci config¶
- Commit
- Hash
- Date
2019-05-27 09:32:02 +0200
- Type
Added
- Stats
+48 -0
@@ -0,0 +1,48 @@
+version: 2
+
+references:
+
+ # docker container for python only jobs
+ python_only_config: &python_only_config
+ working_directory: ~/isshub
+ docker:
+ - image: circleci/python:3.8.0a3
+
+ # build steps to save/restore the directory used by pip to cache downloaded packages
+ save_pip_cache: &save_pip_cache
+ save_cache:
+ key: v1-pip-cache-{{ .Branch }}-{{ .Revision }}
+ paths:
+ - ~/.cache/pip
+ restore_pip_cache: &restore_pip_cache
+ restore_cache:
+ keys:
+ - v1-pip-cache-{{ .Branch }}-{{ .Revision }}
+ - v1-pip-cache-{{ .Branch }}
+ - v1-pip-cache
+
+ # shortcut to attach the workspace before each job
+ attach_workspace: &attach_workspace
+ attach_workspace:
+ at: "~/"
+
+
+# jobs definition: they are used in ``workflows``
+jobs:
+
+ # get the code from git and save the repo to pass it to the next job
+ checkout_code:
+ <<: *python_only_config
+ steps:
+ - checkout
+ - persist_to_workspace:
+ root: "~/"
+ paths:
+ - isshub
+
+workflows:
+ version: 2
+
+ isshub:
+ jobs:
+ - checkout_code