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

bb5e73eb3d816d563f2a58fe65c6bd57b045dbde

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

d5fe750e551a02600298e3173d108626ae4808e8

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

1dd172eed252bdfb4d76a277899dbd5043254a25

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

207325feae8d5731a59bfa368c08e2ade4e1f982

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

3ea3c14f0befb167c3438835e58c3238972b42c1

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

37d8930e4da80b776842d3834d6bf81f860c5692

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

207539153f1de5ee11a9d8b03848a44da8165a9c

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

fcd2779c4a1fc545cb105ab3b71a43fc70af8fdc

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

be9a9e09d4270e0d2fef32b408b8754442eab3dc

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