-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build Conan package in Travis CI #943
Conversation
- Added Travis job to build Conan package for Catch - Travis scripts to be used in Conan container (intall and run) Signed-off-by: Uilian Ries <uilianries@gmail.com>
- Catch version is updated in Travis for each new release Signed-off-by: Uilian Ries <uilianries@gmail.com>
Related issue: #926 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it possible to process only tags? I don't know, would like to investigate.
pyenv rehash | ||
pyenv activate conan | ||
fi | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you want to pip install conan
first, to ensure that latest conan is installed, and not the one that conan_package_tools might be indirectly requiring.
scripts/developBuild.py
Outdated
@@ -9,5 +9,6 @@ | |||
v.updateReadmeFile() | |||
v.updateConanFile() | |||
v.updateConanTestFile() | |||
v.updateTravisFile() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If only tags are processed, maybe this would be unnecessary.
scripts/releaseCommon.py
Outdated
|
||
def updateTravisFile(self): | ||
conanParser = re.compile( r' CONAN_REFERENCE: \"Catch\/\d+\.\d+\.\d+.*\"') | ||
f = open( travisPath, 'r' ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would always suggest the with open(travisPath, "r") as f:
context idiom, it makes sure f is closed, automatically
.travis.yml
Outdated
CONAN_GCC_VERSIONS: 6.3 | ||
CONAN_DOCKER_IMAGE: lasote/conangcc63 | ||
CONAN_REFERENCE: Catch/1.9.6 | ||
CONAN_CHANNEL: ci |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not sure if possible, but I would say that building/uploading to CI is unnecessary, I would try to only process tags.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, now is possible. CONAN_UPLOAD_ONLY_WHEN_STABLE was added in conan-package-tools to solve it. Good point, I'll change to only upload tags.
- Send package to Bintray only when branch is stable Signed-off-by: Uilian Ries <uilianries@gmail.com>
Just adding @lasote to this discussion. |
- Updated Travis file routine, to use version as parameter - Skipped x86 build on Travis -- Catch is header only - Updated Catch reference in travis.yml to 1.10.0 Signed-off-by: Uilian Ries <uilianries@gmail.com>
Hi! I merged the master branch on this PR. Now this feature is able again to be merged without conflicts. Could I help to finish this PR? The last point discussed was about create a Bintray account to push Catch as Conan package. Regards. |
- Apply new conventions introduced on Conan 1.8 - Removed outdated settings - Update license to follow SPDX format Closes catchorg#926 Closes catchorg#943
To solve the automatic Conan build for each new push, this PR brings a solution by Conan package tools.
All about Conan package tools could be found here
Travis will run build.py by Docker service. It script calls Conan, that export, build and test your package. To upload your package after all tests, you must include some environment variables in your Travis settings.
Why are they not included in travis.yml?
To provide the capability to anyone customize and upload it own package by project fork
Will this work without these environment variables?
Yes. The package will be created and tested in Travis job, but will not be uploaded to Bintray.
Will all packages be sent to the same channel?
No. Only tags (vX.X.X) will be pushed to stable channel. Otherwise, will
be sent to cinot be uploaded.Now, you should decide if you want to create an organization or use your own name. Conan project has documented about how to use Bintray here.
I would like to invite @memsharded to review and discuss about this PR.
Regards.