config.yml 23.9 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
version: 2.1
orbs:
    gcp-gke: circleci/gcp-gke@1.0.4
    go: circleci/go@1.3.0

# TPU REFERENCES
references:
    checkout_ml_testing: &checkout_ml_testing
        run:
            name: Checkout ml-testing-accelerators
            command: |
                git clone https://github.com/GoogleCloudPlatform/ml-testing-accelerators.git
                cd ml-testing-accelerators
                git fetch origin 5e88ac24f631c27045e62f0e8d5dfcf34e425e25:stable
                git checkout stable
    build_push_docker: &build_push_docker
        run:
            name: Configure Docker
            command: |
                gcloud --quiet auth configure-docker
                cd docker/transformers-pytorch-tpu
22
                if [ -z "$CIRCLE_PR_NUMBER" ]; then docker build --tag "$GCR_IMAGE_PATH:$CIRCLE_WORKFLOW_JOB_ID" -f Dockerfile --build-arg "TEST_IMAGE=1" . ; else docker build --tag "$GCR_IMAGE_PATH:$CIRCLE_WORKFLOW_JOB_ID" -f Dockerfile --build-arg "TEST_IMAGE=1" --build-arg "GITHUB_REF=pull/$CIRCLE_PR_NUMBER/head" . ; fi
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
                docker push "$GCR_IMAGE_PATH:$CIRCLE_WORKFLOW_JOB_ID"
    deploy_cluster: &deploy_cluster
        run:
            name: Deploy the job on the kubernetes cluster
            command: |
                go get github.com/google/go-jsonnet/cmd/jsonnet && \
                export PATH=$PATH:$HOME/go/bin && \
                kubectl create -f docker/transformers-pytorch-tpu/dataset.yaml || true && \
                job_name=$(jsonnet -J ml-testing-accelerators/ docker/transformers-pytorch-tpu/bert-base-cased.jsonnet --ext-str image=$GCR_IMAGE_PATH --ext-str image-tag=$CIRCLE_WORKFLOW_JOB_ID | kubectl create -f -) && \
                job_name=${job_name#job.batch/} && \
                job_name=${job_name% created} && \
                echo "Waiting on kubernetes job: $job_name" && \
                i=0 && \
                # 30 checks spaced 30s apart = 900s total.
                max_checks=30 && \
                status_code=2 && \
                # Check on the job periodically. Set the status code depending on what
                # happened to the job in Kubernetes. If we try max_checks times and
                # still the job hasn't finished, give up and return the starting
                # non-zero status code.
                while [ $i -lt $max_checks ]; do ((i++)); if kubectl get jobs $job_name -o jsonpath='Failed:{.status.failed}' | grep "Failed:1"; then status_code=1 && break; elif kubectl get jobs $job_name -o jsonpath='Succeeded:{.status.succeeded}' | grep "Succeeded:1" ; then status_code=0 && break; else echo "Job not finished yet"; fi; sleep 30; done && \
                echo "Done waiting. Job status code: $status_code" && \
45
46
47
                pod_name=$(kubectl get po -l controller-uid=`kubectl get job $job_name -o "jsonpath={.metadata.labels.controller-uid}"` | awk 'match($0,!/NAME/) {print $1}') && \
                echo "GKE pod name: $pod_name" && \
                kubectl logs -f $pod_name --container=train
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
                echo "Done with log retrieval attempt." && \
                gcloud container images delete "$GCR_IMAGE_PATH:$CIRCLE_WORKFLOW_JOB_ID" --force-delete-tags && \
                exit $status_code
    delete_gke_jobs: &delete_gke_jobs
        run:
            name: Delete GKE Jobs
            command: |
                # Match jobs whose age matches patterns like '1h' or '1d', i.e. any job
                # that has been around longer than 1hr. First print all columns for
                # matches, then execute the delete.
                kubectl get job | awk 'match($4,/[0-9]+[dh]/) {print $0}'
                kubectl delete job $(kubectl get job | awk 'match($4,/[0-9]+[dh]/) {print $1}')




Julien Chaumond's avatar
Julien Chaumond committed
64
jobs:
Aymeric Augustin's avatar
Aymeric Augustin committed
65
    run_tests_torch_and_tf:
66
        working_directory: ~/transformers
67
        docker:
68
            - image: circleci/python:3.6
69
70
        environment:
            OMP_NUM_THREADS: 1
71
72
            RUN_PT_TF_CROSS_TESTS: yes
            TRANSFORMERS_IS_CI: yes
73
74
75
76
        resource_class: xlarge
        parallelism: 1
        steps:
            - checkout
77
78
            - restore_cache:
                  keys:
Lysandre Debut's avatar
Lysandre Debut committed
79
80
                      - v0.4-torch_and_tf-{{ checksum "setup.py" }}
                      - v0.4-{{ checksum "setup.py" }}
Suraj Patil's avatar
Suraj Patil committed
81
            - run: sudo apt-get -y update && sudo apt-get install -y libsndfile1-dev
82
            - run: pip install --upgrade pip
83
84
            - run: pip install .[sklearn,tf-cpu,torch,testing,sentencepiece,speech,vision]
            - run: pip install torch-scatter -f https://pytorch-geometric.com/whl/torch-1.9.0+cpu.html
85
            - save_cache:
Lysandre Debut's avatar
Lysandre Debut committed
86
                key: v0.4-{{ checksum "setup.py" }}
87
88
                paths:
                    - '~/.cache/pip'
89
90
91
92
93
94
95
            - run: python utils/tests_fetcher.py | tee test_preparation.txt
            - store_artifacts:
                  path: ~/transformers/test_preparation.txt
            - run: |
                  if [ -f test_list.txt ]; then
                    python -m pytest -n 8 --dist=loadfile -rA -s --make-reports=tests_torch_and_tf $(cat test_list.txt) -m is_pt_tf_cross_test --durations=0 | tee tests_output.txt
                  fi
96
            - store_artifacts:
97
98
99
100
                  path: ~/transformers/tests_output.txt
            - store_artifacts:
                  path: ~/transformers/reports

101
102
103
104
105
106
    run_tests_torch_and_flax:
        working_directory: ~/transformers
        docker:
            - image: circleci/python:3.6
        environment:
            OMP_NUM_THREADS: 1
107
108
            RUN_PT_FLAX_CROSS_TESTS: yes
            TRANSFORMERS_IS_CI: yes
109
110
111
112
113
114
115
116
117
118
        resource_class: xlarge
        parallelism: 1
        steps:
            - checkout
            - restore_cache:
                  keys:
                      - v0.4-torch_and_flax-{{ checksum "setup.py" }}
                      - v0.4-{{ checksum "setup.py" }}
            - run: sudo apt-get -y update && sudo apt-get install -y libsndfile1-dev
            - run: pip install --upgrade pip
119
            - run: pip install .[sklearn,flax,torch,testing,sentencepiece,speech,vision]
120
            - run: pip install torch-scatter -f https://pytorch-geometric.com/whl/torch-1.9.0+cpu.html
121
122
123
124
            - save_cache:
                key: v0.4-{{ checksum "setup.py" }}
                paths:
                    - '~/.cache/pip'
125
126
127
128
129
130
131
            - run: python utils/tests_fetcher.py | tee test_preparation.txt
            - store_artifacts:
                  path: ~/transformers/test_preparation.txt
            - run: |
                  if [ -f test_list.txt ]; then
                    python -m pytest -n 8 --dist=loadfile -rA -s --make-reports=tests_torch_and_flax $(cat test_list.txt) -m is_pt_flax_cross_test --durations=0 | tee tests_output.txt
                  fi
132
133
134
135
136
            - store_artifacts:
                  path: ~/transformers/tests_output.txt
            - store_artifacts:
                  path: ~/transformers/reports

Aymeric Augustin's avatar
Aymeric Augustin committed
137
    run_tests_torch:
138
        working_directory: ~/transformers
Julien Chaumond's avatar
Julien Chaumond committed
139
        docker:
140
            - image: circleci/python:3.7
141
142
        environment:
            OMP_NUM_THREADS: 1
143
            TRANSFORMERS_IS_CI: yes
144
        resource_class: xlarge
145
        parallelism: 1
Julien Chaumond's avatar
Julien Chaumond committed
146
147
        steps:
            - checkout
148
149
            - restore_cache:
                  keys:
Lysandre Debut's avatar
Lysandre Debut committed
150
151
                      - v0.4-torch-{{ checksum "setup.py" }}
                      - v0.4-{{ checksum "setup.py" }}
Suraj Patil's avatar
Suraj Patil committed
152
            - run: sudo apt-get -y update && sudo apt-get install -y libsndfile1-dev
153
            - run: pip install --upgrade pip
NielsRogge's avatar
NielsRogge committed
154
            - run: pip install .[sklearn,torch,testing,sentencepiece,speech,vision,timm]
155
            - run: pip install torch-scatter -f https://pytorch-geometric.com/whl/torch-1.9.0+cpu.html
156
            - save_cache:
Lysandre Debut's avatar
Lysandre Debut committed
157
                  key: v0.4-torch-{{ checksum "setup.py" }}
158
159
                  paths:
                      - '~/.cache/pip'
160
161
162
163
164
165
166
            - run: python utils/tests_fetcher.py | tee test_preparation.txt
            - store_artifacts:
                  path: ~/transformers/test_preparation.txt
            - run: |
                  if [ -f test_list.txt ]; then
                    python -m pytest -n 3 --dist=loadfile -s --make-reports=tests_torch $(cat test_list.txt) | tee tests_output.txt
                  fi
167
            - store_artifacts:
168
169
170
                  path: ~/transformers/tests_output.txt
            - store_artifacts:
                  path: ~/transformers/reports
Lysandre Debut's avatar
Lysandre Debut committed
171

Aymeric Augustin's avatar
Aymeric Augustin committed
172
    run_tests_tf:
173
        working_directory: ~/transformers
thomwolf's avatar
thomwolf committed
174
        docker:
175
            - image: circleci/python:3.7
176
177
        environment:
            OMP_NUM_THREADS: 1
178
            TRANSFORMERS_IS_CI: yes
thomwolf's avatar
thomwolf committed
179
180
181
182
        resource_class: xlarge
        parallelism: 1
        steps:
            - checkout
183
184
            - restore_cache:
                  keys:
Lysandre Debut's avatar
Lysandre Debut committed
185
186
                      - v0.4-tf-{{ checksum "setup.py" }}
                      - v0.4-{{ checksum "setup.py" }}
187
            - run: pip install --upgrade pip
188
            - run: pip install .[sklearn,tf-cpu,testing,sentencepiece]
189
            - save_cache:
Lysandre Debut's avatar
Lysandre Debut committed
190
                  key: v0.4-tf-{{ checksum "setup.py" }}
191
192
                  paths:
                      - '~/.cache/pip'
193
194
195
196
197
198
199
            - run: python utils/tests_fetcher.py | tee test_preparation.txt
            - store_artifacts:
                  path: ~/transformers/test_preparation.txt
            - run: |
                  if [ -f test_list.txt ]; then
                    python -m pytest -n 8 --dist=loadfile -rA -s --make-reports=tests_tf $(cat test_list.txt) | tee tests_output.txt
                  fi
200
            - store_artifacts:
201
202
203
204
                  path: ~/transformers/tests_output.txt
            - store_artifacts:
                  path: ~/transformers/reports

205
206
207
208
209
210
    run_tests_flax:
        working_directory: ~/transformers
        docker:
            - image: circleci/python:3.7
        environment:
            OMP_NUM_THREADS: 1
211
            TRANSFORMERS_IS_CI: yes
212
213
214
215
216
217
        resource_class: xlarge
        parallelism: 1
        steps:
            - checkout
            - restore_cache:
                keys:
Lysandre Debut's avatar
Lysandre Debut committed
218
219
                    - v0.4-flax-{{ checksum "setup.py" }}
                    - v0.4-{{ checksum "setup.py" }}
220
            - run: pip install --upgrade pip
221
            - run: sudo pip install .[flax,testing,sentencepiece]
222
            - save_cache:
Lysandre Debut's avatar
Lysandre Debut committed
223
                  key: v0.4-flax-{{ checksum "setup.py" }}
224
225
                  paths:
                      - '~/.cache/pip'
226
227
228
229
230
231
232
            - run: python utils/tests_fetcher.py | tee test_preparation.txt
            - store_artifacts:
                  path: ~/transformers/test_preparation.txt
            - run: |
                  if [ -f test_list.txt ]; then
                    python -m pytest -n 8 --dist=loadfile -rA -s --make-reports=tests_flax $(cat test_list.txt) | tee tests_output.txt
                  fi
233
            - store_artifacts:
234
235
236
237
                  path: ~/transformers/tests_output.txt
            - store_artifacts:
                  path: ~/transformers/reports

238
239
240
241
242
243
    run_tests_pipelines_torch:
        working_directory: ~/transformers
        docker:
            - image: circleci/python:3.7
        environment:
            OMP_NUM_THREADS: 1
244
245
            RUN_PIPELINE_TESTS: yes
            TRANSFORMERS_IS_CI: yes
246
247
248
249
250
251
        resource_class: xlarge
        parallelism: 1
        steps:
            - checkout
            - restore_cache:
                  keys:
Lysandre Debut's avatar
Lysandre Debut committed
252
253
                      - v0.4-torch-{{ checksum "setup.py" }}
                      - v0.4-{{ checksum "setup.py" }}
Suraj Patil's avatar
Suraj Patil committed
254
            - run: sudo apt-get -y update && sudo apt-get install -y libsndfile1-dev
255
            - run: pip install --upgrade pip
256
            - run: pip install .[sklearn,torch,testing,sentencepiece,speech,vision]
257
            - run: pip install torch-scatter -f https://pytorch-geometric.com/whl/torch-1.9.0+cpu.html
258
            - save_cache:
Lysandre Debut's avatar
Lysandre Debut committed
259
                  key: v0.4-torch-{{ checksum "setup.py" }}
260
261
                  paths:
                      - '~/.cache/pip'
262
263
264
265
266
267
268
            - run: python utils/tests_fetcher.py | tee test_preparation.txt
            - store_artifacts:
                  path: ~/transformers/test_preparation.txt
            - run: |
                  if [ -f test_list.txt ]; then
                    python -m pytest -n 8 --dist=loadfile -rA -s --make-reports=tests_pipelines_torch -m is_pipeline_test $(cat test_list.txt) | tee tests_output.txt
                  fi
269
            - store_artifacts:
270
271
272
273
                  path: ~/transformers/tests_output.txt
            - store_artifacts:
                  path: ~/transformers/reports

274
275
276
277
278
279
    run_tests_pipelines_tf:
        working_directory: ~/transformers
        docker:
            - image: circleci/python:3.7
        environment:
            OMP_NUM_THREADS: 1
280
281
            RUN_PIPELINE_TESTS: yes
            TRANSFORMERS_IS_CI: yes
282
283
284
285
286
287
        resource_class: xlarge
        parallelism: 1
        steps:
            - checkout
            - restore_cache:
                  keys:
Lysandre Debut's avatar
Lysandre Debut committed
288
289
                      - v0.4-tf-{{ checksum "setup.py" }}
                      - v0.4-{{ checksum "setup.py" }}
290
            - run: pip install --upgrade pip
291
            - run: pip install .[sklearn,tf-cpu,testing,sentencepiece]
292
            - save_cache:
Lysandre Debut's avatar
Lysandre Debut committed
293
                  key: v0.4-tf-{{ checksum "setup.py" }}
294
295
                  paths:
                      - '~/.cache/pip'
296
297
298
299
300
301
302
            - run: python utils/tests_fetcher.py | tee test_preparation.txt
            - store_artifacts:
                  path: ~/transformers/test_preparation.txt
            - run: |
                  if [ -f test_list.txt ]; then
                    python -m pytest -n 8 --dist=loadfile -rA -s --make-reports=tests_pipelines_tf $(cat test_list.txt) -m is_pipeline_test | tee tests_output.txt
                  fi
303
304
            - store_artifacts:
                  path: ~/transformers/tests_output.txt
305
            - store_artifacts:
306
307
                  path: ~/transformers/reports

Aymeric Augustin's avatar
Aymeric Augustin committed
308
    run_tests_custom_tokenizers:
309
310
        working_directory: ~/transformers
        docker:
311
            - image: circleci/python:3.7
312
313
        environment:
            RUN_CUSTOM_TOKENIZERS: yes
314
            TRANSFORMERS_IS_CI: yes
315
316
        steps:
            - checkout
317
318
            - restore_cache:
                  keys:
Lysandre Debut's avatar
Lysandre Debut committed
319
320
                      - v0.4-custom_tokenizers-{{ checksum "setup.py" }}
                      - v0.4-{{ checksum "setup.py" }}
321
            - run: pip install --upgrade pip
322
            - run: pip install .[ja,testing,sentencepiece,jieba]
323
            - run: python -m unidic download
324
            - save_cache:
Lysandre Debut's avatar
Lysandre Debut committed
325
                  key: v0.4-custom_tokenizers-{{ checksum "setup.py" }}
326
327
                  paths:
                      - '~/.cache/pip'
328
329
330
331
            - run: |
                  if [ -f test_list.txt ]; then
                    python -m pytest -s --make-reports=tests_custom_tokenizers ./tests/test_tokenization_bert_japanese.py | tee tests_output.txt
                  fi
332
333
            - store_artifacts:
                  path: ~/transformers/tests_output.txt
334
            - store_artifacts:
335
336
                  path: ~/transformers/reports

Aymeric Augustin's avatar
Aymeric Augustin committed
337
    run_examples_torch:
338
339
        working_directory: ~/transformers
        docker:
340
            - image: circleci/python:3.6
341
342
        environment:
            OMP_NUM_THREADS: 1
343
            TRANSFORMERS_IS_CI: yes
344
345
346
347
        resource_class: xlarge
        parallelism: 1
        steps:
            - checkout
348
349
            - restore_cache:
                  keys:
Lysandre Debut's avatar
Lysandre Debut committed
350
351
                      - v0.4-torch_examples-{{ checksum "setup.py" }}
                      - v0.4-{{ checksum "setup.py" }}
352
            - run: pip install --upgrade pip
353
            - run: pip install .[sklearn,torch,sentencepiece,testing]
Sylvain Gugger's avatar
Sylvain Gugger committed
354
            - run: pip install -r examples/pytorch/_tests_requirements.txt
355
            - save_cache:
Lysandre Debut's avatar
Lysandre Debut committed
356
                  key: v0.4-torch_examples-{{ checksum "setup.py" }}
357
358
                  paths:
                      - '~/.cache/pip'
359
360
361
362
363
364
365
            - run: python utils/tests_fetcher.py | tee test_preparation.txt
            - store_artifacts:
                  path: ~/transformers/test_preparation.txt
            - run: |
                  if [ -f test_list.txt ]; then
                    TRANSFORMERS_IS_CI=1 python -m pytest -n 8 --dist=loadfile -s --make-reports=examples_torch ./examples/pytorch/ | tee examples_output.txt
                  fi
366
            - store_artifacts:
367
368
369
                  path: ~/transformers/examples_output.txt
            - store_artifacts:
                  path: ~/transformers/reports
370

Sylvain Gugger's avatar
Sylvain Gugger committed
371
    run_tests_hub:
372
373
374
        working_directory: ~/transformers
        docker:
            - image: circleci/python:3.7
375
        environment:
Sylvain Gugger's avatar
Sylvain Gugger committed
376
            HUGGINGFACE_CO_STAGING: yes
377
378
            RUN_GIT_LFS_TESTS: yes
            TRANSFORMERS_IS_CI: yes
379
380
381
382
        resource_class: xlarge
        parallelism: 1
        steps:
            - checkout
Sylvain Gugger's avatar
Sylvain Gugger committed
383
384
385
386
            - restore_cache:
                  keys:
                      - v0.4-hub-{{ checksum "setup.py" }}
                      - v0.4-{{ checksum "setup.py" }}
387
388
389
390
391
            - run: sudo apt-get install git-lfs
            - run: |
                git config --global user.email "ci@dummy.com"
                git config --global user.name "ci"
            - run: pip install --upgrade pip
Sylvain Gugger's avatar
Sylvain Gugger committed
392
393
394
395
396
            - run: pip install .[torch,sentencepiece,testing]
            - save_cache:
                  key: v0.4-hub-{{ checksum "setup.py" }}
                  paths:
                      - '~/.cache/pip'
397
398
399
400
401
402
403
            - run: python utils/tests_fetcher.py | tee test_preparation.txt
            - store_artifacts:
                  path: ~/transformers/test_preparation.txt
            - run: |
                  if [ -f test_list.txt ]; then
                    python -m pytest -sv $(cat test_list.txt) -m is_staging_test
                  fi
404

405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
    run_tests_onnxruntime:
        working_directory: ~/transformers
        docker:
            - image: circleci/python:3.7
        environment:
            OMP_NUM_THREADS: 1
            TRANSFORMERS_IS_CI: yes
        resource_class: xlarge
        parallelism: 1
        steps:
            - checkout
            - restore_cache:
                  keys:
                      - v0.4-torch-{{ checksum "setup.py" }}
                      - v0.4-{{ checksum "setup.py" }}
            - run: pip install --upgrade pip
            - run: pip install .[torch,testing,sentencepiece,onnxruntime]
            - save_cache:
                  key: v0.4-onnx-{{ checksum "setup.py" }}
                  paths:
                      - '~/.cache/pip'
426
427
428
429
430
431
432
            - run: python utils/tests_fetcher.py | tee test_preparation.txt
            - store_artifacts:
                  path: ~/transformers/test_preparation.txt
            - run: |
                  if [ -f test_list.txt ]; then
                    python -m pytest -n 1 --dist=loadfile -s --make-reports=tests_torch $(cat test_list.txt) -k onnx | tee tests_output.txt
                  fi
433
434
435
436
            - store_artifacts:
                  path: ~/transformers/tests_output.txt
            - store_artifacts:
                  path: ~/transformers/reports
437
438
439
440
    build_doc:
        working_directory: ~/transformers
        docker:
            - image: circleci/python:3.6
Lysandre's avatar
Lysandre committed
441
        resource_class: large
442
443
        steps:
            - checkout
444
445
            - restore_cache:
                  keys:
Lysandre Debut's avatar
Lysandre Debut committed
446
447
                      - v0.4-build_doc-{{ checksum "setup.py" }}
                      - v0.4-{{ checksum "setup.py" }}
Suraj Patil's avatar
Suraj Patil committed
448
            - run: sudo apt-get -y update && sudo apt-get install -y libsndfile1-dev
449
            - run: pip install --upgrade pip
450
            - run: pip install ."[docs]"
451
            - save_cache:
Lysandre Debut's avatar
Lysandre Debut committed
452
                  key: v0.4-build_doc-{{ checksum "setup.py" }}
453
454
                  paths:
                      - '~/.cache/pip'
Stas Bekman's avatar
Stas Bekman committed
455
            - run: cd docs && make html SPHINXOPTS="-W -j 4"
456
457
            - store_artifacts:
                path: ./docs/_build
458

LysandreJik's avatar
LysandreJik committed
459
    deploy_doc:
460
        working_directory: ~/transformers
LysandreJik's avatar
LysandreJik committed
461
        docker:
462
            - image: circleci/python:3.6
Lysandre's avatar
Lysandre committed
463
        resource_class: large
LysandreJik's avatar
LysandreJik committed
464
465
        steps:
            - add_ssh_keys:
466
467
                fingerprints:
                    - "5b:7a:95:18:07:8c:aa:76:4c:60:35:88:ad:60:56:71"
LysandreJik's avatar
LysandreJik committed
468
            - checkout
469
470
            - restore_cache:
                  keys:
Lysandre Debut's avatar
Lysandre Debut committed
471
472
                      - v0.4-deploy_doc-{{ checksum "setup.py" }}
                      - v0.4-{{ checksum "setup.py" }}
Sylvain Gugger's avatar
Sylvain Gugger committed
473
474
            - run: sudo apt-get -y update && sudo apt-get install -y libsndfile1-dev
            - run: pip install --upgrade pip
475
            - run: pip install ."[docs]"
476
            - save_cache:
Lysandre Debut's avatar
Lysandre Debut committed
477
                  key: v0.4-deploy_doc-{{ checksum "setup.py" }}
478
479
                  paths:
                      - '~/.cache/pip'
Lysandre's avatar
Lysandre committed
480
            - run: ./.circleci/deploy.sh
481

Aymeric Augustin's avatar
Aymeric Augustin committed
482
483
484
485
    check_code_quality:
        working_directory: ~/transformers
        docker:
            - image: circleci/python:3.6
Lysandre's avatar
Lysandre committed
486
        resource_class: large
487
488
        environment:
            TRANSFORMERS_IS_CI: yes
Aymeric Augustin's avatar
Aymeric Augustin committed
489
490
491
        parallelism: 1
        steps:
            - checkout
492
493
            - restore_cache:
                  keys:
Lysandre Debut's avatar
Lysandre Debut committed
494
495
                      - v0.4-code_quality-{{ checksum "setup.py" }}
                      - v0.4-{{ checksum "setup.py" }}
496
            - run: pip install --upgrade pip
497
            - run: pip install isort GitPython
498
            - run: pip install .[all,quality]
499
            - save_cache:
Lysandre Debut's avatar
Lysandre Debut committed
500
                  key: v0.4-code_quality-{{ checksum "setup.py" }}
501
502
                  paths:
                      - '~/.cache/pip'
503
504
            - run: black --check examples tests src utils
            - run: isort --check-only examples tests src utils
Sylvain Gugger's avatar
Sylvain Gugger committed
505
            - run: python utils/custom_init_isort.py --check_only
506
            - run: flake8 examples tests src utils
Sylvain Gugger's avatar
Sylvain Gugger committed
507
            - run: python utils/style_doc.py src/transformers docs/source --max_len 119 --check_only
508
            - run: python utils/check_copies.py
509
            - run: python utils/check_table.py
510
            - run: python utils/check_dummies.py
511
            - run: python utils/check_repo.py
512
            - run: python utils/check_inits.py
513
            - run: make deps_table_check_updated
514
            - run: python utils/tests_fetcher.py --sanity_check
515

516
    check_repository_consistency:
R茅mi Louf's avatar
R茅mi Louf committed
517
518
        working_directory: ~/transformers
        docker:
519
            - image: circleci/python:3.6
R茅mi Louf's avatar
R茅mi Louf committed
520
521
522
523
        resource_class: small
        parallelism: 1
        steps:
            - checkout
524
            - run: pip install requests
R茅mi Louf's avatar
R茅mi Louf committed
525
            - run: python ./utils/link_tester.py
526
527
528
529
530
531
532

# TPU JOBS
    run_examples_tpu:
        docker:
            - image: circleci/python:3.6
        environment:
            OMP_NUM_THREADS: 1
533
            TRANSFORMERS_IS_CI: yes
534
535
536
537
538
539
540
541
542
543
544
545
546
        resource_class: xlarge
        parallelism: 1
        steps:
            - checkout
            - go/install
            - *checkout_ml_testing
            - gcp-gke/install
            - gcp-gke/update-kubeconfig-with-credentials:
                  cluster: $GKE_CLUSTER
                  perform-login: true
            - setup_remote_docker
            - *build_push_docker
            - *deploy_cluster
547

548
549
550
551
552
553
554
555
556
    cleanup-gke-jobs:
        docker:
            - image: circleci/python:3.6
        steps:
            - gcp-gke/install
            - gcp-gke/update-kubeconfig-with-credentials:
                  cluster: $GKE_CLUSTER
                  perform-login: true
            - *delete_gke_jobs
557

LysandreJik's avatar
LysandreJik committed
558
559
560
561
workflow_filters: &workflow_filters
    filters:
        branches:
            only:
Lysandre's avatar
Lysandre committed
562
                - master
563
workflows:
LysandreJik's avatar
LysandreJik committed
564
565
566
    version: 2
    build_and_test:
        jobs:
Aymeric Augustin's avatar
Aymeric Augustin committed
567
            - check_code_quality
568
            - check_repository_consistency
Aymeric Augustin's avatar
Aymeric Augustin committed
569
570
571
            - run_examples_torch
            - run_tests_custom_tokenizers
            - run_tests_torch_and_tf
572
            - run_tests_torch_and_flax
Aymeric Augustin's avatar
Aymeric Augustin committed
573
574
            - run_tests_torch
            - run_tests_tf
575
            - run_tests_flax
576
577
            - run_tests_pipelines_torch
            - run_tests_pipelines_tf
578
            - run_tests_onnxruntime
Sylvain Gugger's avatar
Sylvain Gugger committed
579
            - run_tests_hub
580
            - build_doc
Lysandre's avatar
Lysandre committed
581
            - deploy_doc: *workflow_filters
582
583
584
585
586
587
588
589
590
591
592
593
#    tpu_testing_jobs:
#        triggers:
#            - schedule:
#                # Set to run at the first minute of every hour.
#                cron: "0 8 * * *"
#                filters:
#                    branches:
#                        only:
#                            - master
#        jobs:
#            - cleanup-gke-jobs
#            - run_examples_tpu