I'd really like to use pipelines caching, but I must admit to being confused as to how it works. I have a project I'm testing it on using the following pipelines script. The project uses both composer and node and has both composer.json and package.json files.
pipelines: branches: feature/cache-test: - step: caches: - composer script: - composer install --no-dev - composer run-script build - zip -FSr ${BITBUCKET_REPO_SLUG}-cache-test.zip ./ -x@exclude.lst - curl -u ${BB_AUTH_STRING} -X POST "https://api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" --form files=@${BITBUCKET_REPO_SLUG}-cache-test.zip
The composer `build` script runs yarn install and then gulp. However, when I run this project through pipelines, it reports back that `Cache "composer": Not found`. What am I doing wrong here? Or am I simply not understanding how this is supposed to work?
FWIW I also tried caching node and that didn't work either.
That's pretty much the way it should work. The first time you build with a new cache setting, it's going to say "not found". When you rerun the build, you should see the following in build setup:
Cache "node": DownloadingCache "node": ExtractingCache "node": Loaded
Then the cache has been primed for subsequent builds. Remember, the cache is dropped after 1 week.
I don't have a handy PHP project for testing so please do let us know if there's something wrong with the composer one.
I'm following the docs, but my composer cache is always empty. Do I need to create `~/.composer/cache` directory myself?
~/.composer/cache`
I have the same issue the composer dir is always emptyI never seem to get "extracting" or "loaded"I rerun the pipeline and I get <span>Cache "node": Downloading</span><span>Cache "node": Not found</span>or
<span>Cache "node": Downloading</span>
<span>Cache "node": Not found</span>
<span>Cache "composer": Downloading</span><span>Cache "composer": Not found<br><br>It never seems to load them, is there a step missing here?</span>
<span>Cache "composer": Downloading</span>
<span>Cache "composer": Not found<br><br>It never seems to load them, is there a step missing here?</span>
please do let us know if there's something wrong with the composer one
Yes, there is something wrong: it does not work, as reported just above.
Best regards.
I got the same problem, whenever I run the build, it never extacts anything and it just keeps on saying that it can not download or find cache and the cache directory remains empty.Any solutions yet?
For me the problems were:Node:The node_modules folder wasn't in the root directory. Therefore the standaard cache definition did not work. The problem was solved by assigning a custom path for the node_modules cache.Composer:The docker image that I was using, did have a composer ENV variable in it. As stated in an answer above: "COMPOSER_HOME" Which broke the caching function of Pipelines. I removed it and created a custom image, without the cache variable.Now it all works perfect!
Can we cache to reuse on other step, For example:
- step: name: abc image: node:8.11 script: - npm install - tar zcvf abc.tar.gz *- step: name: def image: atlassian/pipelines-awscli script: - aws s3 sync --delete abc.tar.gz s3://def/abc.tar.gz
@Money Dinh
Did u find solution for this ?
that would be interesting for me, too
step one composer install, step 2 phpunit, step 3 behat tests
I think `artifacts` option is a solution here.
`artifacts` is better when used to store files between steps. It's always populated with the latest version.
As far as I know cache is only populated when it's empty.
Can you share the minimal directory structure and the cache definition? I am having trouble setting it up
It looks like you're new here. Sign in or register to get started.