GitLab CI and conan cache











up vote
0
down vote

favorite












I use GitLab CI to build my C++ project inside a docker image. I also use conan as a package manager for this project. Everything runs well but I would like to keep conan cache to avoid downloading (or even building) external libs on every build. I tried the following:



.cpp-build:
stage: build
variables:
CONAN_USER_HOME: "${CI_PROJECT_DIR}/conan-home"

before_script:
- mkdir -p build
- conan search "*"

after_script:
- conan search "*"

cache:
paths:
- conan-home
- build
key: "${CI_BUILD_NAME}"

cpp-gcc-build:
extends: .cpp-build
image: conanio/gcc8
script:
- cd build
- conan install --build=missing ../ci_test/cpp/
- cmake ../ci_test/cpp/
- make
artifacts:
paths:
- build/bin/cpp_unit_tests

cpp-gcc-test:
image: conanio/gcc8
stage: test
script:
- build/bin/cpp_unit_tests


GitLab CI seems to be restoring the conan-home directory content correctly (I tried listing the content in the before script and it seemed OK) but conan does not find any installed package in the before script and always downloads all the dependencies. I do not understand what is missing.










share|improve this question






















  • Which Gitlab version are you running? CI_BUILD_ were deprecated after GItlab 9: docs.gitlab.com/ce/ci/variables/#90-renaming. Are sure is that same runner building and consuming the cache?
    – uilianries
    yesterday












  • Thanks for the remark about CI_BUIL_. I use GitLab 11.4.5, I should change that. I am sure it is on the same runner because I have only one.
    – slepasteur
    23 hours ago










  • I tried to reproduce your error on gitlab.com: gitlab.com/uilianries/stackflow-conan-error/-/jobs/118518639. But cache is working for me. I think your cache size could be limited, or other runner/job is overriding your cache folder. You could force disable_cache to false use a new cache_dir with that runner to make sure about it. cache is cleaned automatically.
    – uilianries
    2 hours ago















up vote
0
down vote

favorite












I use GitLab CI to build my C++ project inside a docker image. I also use conan as a package manager for this project. Everything runs well but I would like to keep conan cache to avoid downloading (or even building) external libs on every build. I tried the following:



.cpp-build:
stage: build
variables:
CONAN_USER_HOME: "${CI_PROJECT_DIR}/conan-home"

before_script:
- mkdir -p build
- conan search "*"

after_script:
- conan search "*"

cache:
paths:
- conan-home
- build
key: "${CI_BUILD_NAME}"

cpp-gcc-build:
extends: .cpp-build
image: conanio/gcc8
script:
- cd build
- conan install --build=missing ../ci_test/cpp/
- cmake ../ci_test/cpp/
- make
artifacts:
paths:
- build/bin/cpp_unit_tests

cpp-gcc-test:
image: conanio/gcc8
stage: test
script:
- build/bin/cpp_unit_tests


GitLab CI seems to be restoring the conan-home directory content correctly (I tried listing the content in the before script and it seemed OK) but conan does not find any installed package in the before script and always downloads all the dependencies. I do not understand what is missing.










share|improve this question






















  • Which Gitlab version are you running? CI_BUILD_ were deprecated after GItlab 9: docs.gitlab.com/ce/ci/variables/#90-renaming. Are sure is that same runner building and consuming the cache?
    – uilianries
    yesterday












  • Thanks for the remark about CI_BUIL_. I use GitLab 11.4.5, I should change that. I am sure it is on the same runner because I have only one.
    – slepasteur
    23 hours ago










  • I tried to reproduce your error on gitlab.com: gitlab.com/uilianries/stackflow-conan-error/-/jobs/118518639. But cache is working for me. I think your cache size could be limited, or other runner/job is overriding your cache folder. You could force disable_cache to false use a new cache_dir with that runner to make sure about it. cache is cleaned automatically.
    – uilianries
    2 hours ago













up vote
0
down vote

favorite









up vote
0
down vote

favorite











I use GitLab CI to build my C++ project inside a docker image. I also use conan as a package manager for this project. Everything runs well but I would like to keep conan cache to avoid downloading (or even building) external libs on every build. I tried the following:



.cpp-build:
stage: build
variables:
CONAN_USER_HOME: "${CI_PROJECT_DIR}/conan-home"

before_script:
- mkdir -p build
- conan search "*"

after_script:
- conan search "*"

cache:
paths:
- conan-home
- build
key: "${CI_BUILD_NAME}"

cpp-gcc-build:
extends: .cpp-build
image: conanio/gcc8
script:
- cd build
- conan install --build=missing ../ci_test/cpp/
- cmake ../ci_test/cpp/
- make
artifacts:
paths:
- build/bin/cpp_unit_tests

cpp-gcc-test:
image: conanio/gcc8
stage: test
script:
- build/bin/cpp_unit_tests


GitLab CI seems to be restoring the conan-home directory content correctly (I tried listing the content in the before script and it seemed OK) but conan does not find any installed package in the before script and always downloads all the dependencies. I do not understand what is missing.










share|improve this question













I use GitLab CI to build my C++ project inside a docker image. I also use conan as a package manager for this project. Everything runs well but I would like to keep conan cache to avoid downloading (or even building) external libs on every build. I tried the following:



.cpp-build:
stage: build
variables:
CONAN_USER_HOME: "${CI_PROJECT_DIR}/conan-home"

before_script:
- mkdir -p build
- conan search "*"

after_script:
- conan search "*"

cache:
paths:
- conan-home
- build
key: "${CI_BUILD_NAME}"

cpp-gcc-build:
extends: .cpp-build
image: conanio/gcc8
script:
- cd build
- conan install --build=missing ../ci_test/cpp/
- cmake ../ci_test/cpp/
- make
artifacts:
paths:
- build/bin/cpp_unit_tests

cpp-gcc-test:
image: conanio/gcc8
stage: test
script:
- build/bin/cpp_unit_tests


GitLab CI seems to be restoring the conan-home directory content correctly (I tried listing the content in the before script and it seemed OK) but conan does not find any installed package in the before script and always downloads all the dependencies. I do not understand what is missing.







c++ gitlab gitlab-ci conan






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked yesterday









slepasteur

749




749












  • Which Gitlab version are you running? CI_BUILD_ were deprecated after GItlab 9: docs.gitlab.com/ce/ci/variables/#90-renaming. Are sure is that same runner building and consuming the cache?
    – uilianries
    yesterday












  • Thanks for the remark about CI_BUIL_. I use GitLab 11.4.5, I should change that. I am sure it is on the same runner because I have only one.
    – slepasteur
    23 hours ago










  • I tried to reproduce your error on gitlab.com: gitlab.com/uilianries/stackflow-conan-error/-/jobs/118518639. But cache is working for me. I think your cache size could be limited, or other runner/job is overriding your cache folder. You could force disable_cache to false use a new cache_dir with that runner to make sure about it. cache is cleaned automatically.
    – uilianries
    2 hours ago


















  • Which Gitlab version are you running? CI_BUILD_ were deprecated after GItlab 9: docs.gitlab.com/ce/ci/variables/#90-renaming. Are sure is that same runner building and consuming the cache?
    – uilianries
    yesterday












  • Thanks for the remark about CI_BUIL_. I use GitLab 11.4.5, I should change that. I am sure it is on the same runner because I have only one.
    – slepasteur
    23 hours ago










  • I tried to reproduce your error on gitlab.com: gitlab.com/uilianries/stackflow-conan-error/-/jobs/118518639. But cache is working for me. I think your cache size could be limited, or other runner/job is overriding your cache folder. You could force disable_cache to false use a new cache_dir with that runner to make sure about it. cache is cleaned automatically.
    – uilianries
    2 hours ago
















Which Gitlab version are you running? CI_BUILD_ were deprecated after GItlab 9: docs.gitlab.com/ce/ci/variables/#90-renaming. Are sure is that same runner building and consuming the cache?
– uilianries
yesterday






Which Gitlab version are you running? CI_BUILD_ were deprecated after GItlab 9: docs.gitlab.com/ce/ci/variables/#90-renaming. Are sure is that same runner building and consuming the cache?
– uilianries
yesterday














Thanks for the remark about CI_BUIL_. I use GitLab 11.4.5, I should change that. I am sure it is on the same runner because I have only one.
– slepasteur
23 hours ago




Thanks for the remark about CI_BUIL_. I use GitLab 11.4.5, I should change that. I am sure it is on the same runner because I have only one.
– slepasteur
23 hours ago












I tried to reproduce your error on gitlab.com: gitlab.com/uilianries/stackflow-conan-error/-/jobs/118518639. But cache is working for me. I think your cache size could be limited, or other runner/job is overriding your cache folder. You could force disable_cache to false use a new cache_dir with that runner to make sure about it. cache is cleaned automatically.
– uilianries
2 hours ago




I tried to reproduce your error on gitlab.com: gitlab.com/uilianries/stackflow-conan-error/-/jobs/118518639. But cache is working for me. I think your cache size could be limited, or other runner/job is overriding your cache folder. You could force disable_cache to false use a new cache_dir with that runner to make sure about it. cache is cleaned automatically.
– uilianries
2 hours ago

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53204344%2fgitlab-ci-and-conan-cache%23new-answer', 'question_page');
}
);

Post as a guest





































active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















 

draft saved


draft discarded



















































 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53204344%2fgitlab-ci-and-conan-cache%23new-answer', 'question_page');
}
);

Post as a guest




















































































Popular posts from this blog

Guess what letter conforming each word

Port of Spain

Run scheduled task as local user group (not BUILTIN)