hi all trying to implement additional logic of bui...
# general
l
hi all trying to implement additional logic of building and pushing docker images, have some issues with implementation of the following: - trigger build/push only if such tag/hash does not exists locally - trigger build/push only if such tag/hash does not exist in remote hub any advices how to do it in Pulumi exactly? thank you
k
This may not answer your question directly but here goes I use a release branch strategy and do a git clone (dev/test/prod)-branch within my docker build In Pulumi, I get the hash of the branch and pass it as a build arg to docker build I then do
Copy code
RUN echo ${BUILD_GIT_HASH} > /tmp/git_cache_buster.txt && \
    git clone ${BUILD_GIT_URL} --branch ${BUILD_GIT_BRANCH} ./ ...<snip>...
this process means that if the branch hash is the same, the image will be the same and therefore use all cached layers Git hash is generated by
git rev-parse --short=8 [origin]/component-name-dev
This is managed in a dynamic provider HTH
l
thank you for your receipt your idea is to build each time but speed up builds by using cache layers - sounds good in my case I also want to avoid unnecessary pushing looks like I need to implement language-specific tools to support the workflow, was thinking if pulumi had some universal helpers to do it
k
I should probably also mention that if it's fully cached, nothing is really being sent in the push, just metadata so the registry can check if it already has the layer