This is part of the Semicolon&Sons Code Diary - consisting of lessons learned on the job. You're in the testing category.
Last Updated: 2024-12-03
My circleCI build passed when I changed the version of laravel/contentful
, a
critical package even thought the code wasn't working. This meant that somehow
the wrong version of the package was available to it (via caching) whereas it
should not have been. Here was my code for circleCI:
- restore_cache:
keys:
- php-dependencies-{{ checksum "composer.json" }}
- run: composer install --no-interaction --prefer-dist
- save_cache:
paths:
- ./vendor
key: php-dependencies-{{ checksum "composer.json" }}
The issue was my cache was based on composer.json
which, at least in this
codebase, only specified version number constraints loosely. I wanted to cache
based on the .lock
file instead:
- restore_cache:
keys:
- php-dependencies-{{ checksum "composer.lock" }}
- run: composer install --no-interaction --prefer-dist
- save_cache:
paths:
- ./vendor
key: php-dependencies-{{ checksum "composer.lock" }}
Cache based on lock files, not based on looser version specifications for dependencies.