@@ -20,6 +20,12 @@ executors:
2020 shell : bash.exe
2121
2222commands :
23+ generate_cache_key :
24+ description : " Generates a cache key file that changes daily"
25+ steps :
26+ - run :
27+ name : Generate cache key
28+ command : echo "$(date +"%Y-%m-%d")" > .cachekey
2329 designate_upload_channel :
2430 description : " inserts the correct upload channel into ${BASH_ENV}"
2531 steps :
@@ -80,20 +86,17 @@ jobs:
8086 resource_class : small
8187 steps :
8288 - checkout
83- - run :
84- name : Generate cache key
85- # This will refresh cache on daily
86- command : echo "$(date +"%Y-%U-%d")" > .circleci-daily
89+ - generate_cache_key
8790 - restore_cache :
8891
8992 keys :
90- - tp-nix-{{ checksum ".circleci-daily " }}-{{ checksum "./build_tools/setup_helpers/build_third_party.sh" }}-{{ checksum "./build_tools/setup_helpers/build_third_party_helper.sh" }}
93+ - tp-nix-{{ checksum ".cachekey " }}-{{ checksum "./build_tools/setup_helpers/build_third_party.sh" }}-{{ checksum "./build_tools/setup_helpers/build_third_party_helper.sh" }}
9194
9295 - run :
9396 command : ./build_tools/setup_helpers/build_third_party.sh $PWD --download-only
9497 - save_cache :
9598
96- key : tp-nix-{{ checksum ".circleci-daily " }}-{{ checksum "./build_tools/setup_helpers/build_third_party.sh" }}-{{ checksum "./build_tools/setup_helpers/build_third_party_helper.sh" }}
99+ key : tp-nix-{{ checksum ".cachekey " }}-{{ checksum "./build_tools/setup_helpers/build_third_party.sh" }}-{{ checksum "./build_tools/setup_helpers/build_third_party_helper.sh" }}
97100
98101 paths :
99102 - third_party/tmp
@@ -376,21 +379,18 @@ jobs:
376379 - checkout
377380 - attach_workspace :
378381 at : third_party
379- - run :
380- name : Generate cache key
381- # This will refresh cache on Sundays, nightly build should generate new cache.
382- command : echo "$(date +"%Y-%U")" > .circleci-weekly
382+ - generate_cache_key
383383 - restore_cache :
384384
385385 keys :
386- - env-v2-linux-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/linux/scripts/environment.yml" }}-{{ checksum ".circleci-weekly " }}
386+ - env-v2-linux-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/linux/scripts/environment.yml" }}-{{ checksum ".cachekey " }}
387387
388388 - run :
389389 name : Setup
390390 command : .circleci/unittest/linux/scripts/setup_env.sh
391391 - save_cache :
392392
393- key : env-v2-linux-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/linux/scripts/environment.yml" }}-{{ checksum ".circleci-weekly " }}
393+ key : env-v2-linux-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/linux/scripts/environment.yml" }}-{{ checksum ".cachekey " }}
394394
395395 paths :
396396 - conda
@@ -419,21 +419,18 @@ jobs:
419419 - checkout
420420 - attach_workspace :
421421 at : third_party
422- - run :
423- name : Generate cache key
424- # This will refresh cache on Sundays, nightly build should generate new cache.
425- command : echo "$(date +"%Y-%U")" > .circleci-weekly
422+ - generate_cache_key
426423 - restore_cache :
427424
428425 keys :
429- - env-v2-linux-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/linux/scripts/environment.yml" }}-{{ checksum ".circleci-weekly " }}
426+ - env-v2-linux-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/linux/scripts/environment.yml" }}-{{ checksum ".cachekey " }}
430427
431428 - run :
432429 name : Setup
433430 command : docker run -t --gpus all -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux/scripts/setup_env.sh
434431 - save_cache :
435432
436- key : env-v2-linux-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/linux/scripts/environment.yml" }}-{{ checksum ".circleci-weekly " }}
433+ key : env-v2-linux-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/linux/scripts/environment.yml" }}-{{ checksum ".cachekey " }}
437434
438435 paths :
439436 - conda
@@ -457,21 +454,18 @@ jobs:
457454 name : windows-cpu
458455 steps :
459456 - checkout
460- - run :
461- name : Generate cache key
462- # This will refresh cache on Sundays, nightly build should generate new cache.
463- command : echo "$(date +"%Y-%U")" > .circleci-weekly
457+ - generate_cache_key
464458 - restore_cache :
465459
466460 keys :
467- - env-v2 -windows-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/windows/scripts/environment.yml" }}-{{ checksum ".circleci-weekly " }}
461+ - env-v3 -windows-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/windows/scripts/environment.yml" }}-{{ checksum ".cachekey " }}
468462
469463 - run :
470464 name : Setup
471465 command : .circleci/unittest/windows/scripts/setup_env.sh
472466 - save_cache :
473467
474- key : env-v2 -windows-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/windows/scripts/environment.yml" }}-{{ checksum ".circleci-weekly " }}
468+ key : env-v3 -windows-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/windows/scripts/environment.yml" }}-{{ checksum ".cachekey " }}
475469
476470 paths :
477471 - conda
@@ -496,21 +490,18 @@ jobs:
496490 CUDA_VERSION : " 10.1"
497491 steps :
498492 - checkout
499- - run :
500- name : Generate cache key
501- # This will refresh cache on Sundays, nightly build should generate new cache.
502- command : echo "$(date +"%Y-%U")" > .circleci-weekly
493+ - generate_cache_key
503494 - restore_cache :
504495
505496 keys :
506- - env-v1-windows-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/windows/scripts/environment.yml" }}-{{ checksum ".circleci-weekly " }}
497+ - env-v1-windows-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/windows/scripts/environment.yml" }}-{{ checksum ".cachekey " }}
507498
508499 - run :
509500 name : Setup
510501 command : .circleci/unittest/windows/scripts/setup_env.sh
511502 - save_cache :
512503
513- key : env-v1-windows-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/windows/scripts/environment.yml" }}-{{ checksum ".circleci-weekly " }}
504+ key : env-v1-windows-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/windows/scripts/environment.yml" }}-{{ checksum ".cachekey " }}
514505
515506 paths :
516507 - conda
@@ -534,21 +525,18 @@ jobs:
534525 resource_class : medium
535526 steps :
536527 - checkout
537- - run :
538- name : Generate cache key
539- # This will refresh cache on Sundays, nightly build should generate new cache.
540- command : echo "$(date +"%Y-%U")" > .circleci-weekly
528+ - generate_cache_key
541529 - restore_cache :
542530
543531 keys :
544- - env-v2-linux-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/linux/scripts/environment.yml" }}-{{ checksum ".circleci-weekly " }}
532+ - env-v2-linux-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/linux/scripts/environment.yml" }}-{{ checksum ".cachekey " }}
545533
546534 - run :
547535 name : Setup
548536 command : .circleci/unittest/linux/scripts/setup_env.sh
549537 - save_cache :
550538
551- key : env-v2-linux-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/linux/scripts/environment.yml" }}-{{ checksum ".circleci-weekly " }}
539+ key : env-v2-linux-{{ arch }}-py<< parameters.python_version >>-{{ checksum ".circleci/unittest/linux/scripts/environment.yml" }}-{{ checksum ".cachekey " }}
552540
553541 paths :
554542 - conda
0 commit comments