-
Notifications
You must be signed in to change notification settings - Fork 575
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
have Travis and Appveyor build official release packages #2861
Comments
We should install zlib on Travis so nightly and official builds have compressed drmemtrace support. |
Switches to a separate invocation of package.cmake for cronbuilds, to make them look like release packages. Checks out Dr. Memory to include it in the package. Fixes #2861
Switches to a separate invocation of package.cmake for cronbuilds, to make them look like release packages. Cronbuilds on Travis and Appveyor no longer run the same jobs as a regular build but instead run one package.cmake job. Checks out Dr. Memory to include it in the package. Does a shallow clone, assuming 250 is enough for the embedded DR. Excludes drmemory/ from vera checks. Removes the "package" parameter from non-cron builds which should make them a little faster (xref i#4059). There are still further decisions and actions but now the cronbuilds have the same content as past manual builds. Issue: #2861, #4059
There are a number of other issues here:
|
zlib was installed by 674b71d. |
Adds jobs to the Travis cronbuild matrix to build ARM, AArch64, and Android packages. Adds toolchain setting based on the existing env var and parameter scheme into package.cmake to match runsuite.cmake. Adds logic to exclude the Dr. Memory build for AArch64. Adds ignoring of a "git tag" failure to handle races among the four jobs. Issue: #2861 Fixes #3002
Another question:
|
Adds jobs to the Travis cronbuild matrix to build ARM, AArch64, and Android packages. Adds toolchain setting based on the existing env var and parameter scheme into package.cmake to match runsuite.cmake. Adds logic to exclude the Dr. Memory build for AArch64. Adds ignoring of a "git tag" failure to handle races among the four jobs. Adds the 32_only and 64_only args to package.cmake to match runsuite.cmake. Fixes the Windows Dr. Memory checkout directory. Makes a Dr. Memory embedded build location error fatal. Adds proper naming of cross-compiled packages, including adding a new PACKAGE_SUBSYS CMake variable for setting -EABIHF, etc. suffixes. Issue: #2861 Fixes #3002
Here is what I'm doing:
Testing:
Then to make an official release, I would do a manual cron build and say:
We'll go with that for now, keeping the manual releases and manual changelists. One step at a time. |
If the build number is 0, we omit it from the package name, rather than appending it. .travis.yml now takes in VERSION_NUMBER and uses it directly. There is no more TAG_SUFFIX: VERSION_NUMBER has to include the build number if that's desired, and that will be part of the tag as well. If VERSION_NUMBER is not set it uses the default as before. runsuite_wrapper.pl parses VERSION_NUMBER and if it has a -NNN it passes that as the build= arg to package.cmake. It also passes a version= argument. Testing: $ TRAVIS_EVENT_TYPE=cron ~/dr/git/src/suite/runsuite_wrapper.pl travis 64_only Running ctest -VV -S "/home/bruening/dr/git/src/suite/../make/package.cmake,travis;64_only;build=0;invoke=/home/bruening/dr/git/src/suite/../drmemory/package.cmake;drmem_only" $ VERSION_NUMBER=8.1.2 TRAVIS_EVENT_TYPE=cron ~/dr/git/src/suite/runsuite_wrapper.pl travis 64_only Running ctest -VV -S "/home/bruening/dr/git/src/suite/../make/package.cmake,travis;64_only;build=0;version=8.1.2;invoke=/home/bruening/dr/git/src/suite/../drmemory/package.cmake;drmem_only" $ VERSION_NUMBER=8.21.42-39 TRAVIS_EVENT_TYPE=cron ~/dr/git/src/suite/runsuite_wrapper.pl travis 64_only Running ctest -VV -S "/home/bruening/dr/git/src/suite/../make/package.cmake,travis;64_only;build=39;version=8.21.42;invoke=/home/bruening/dr/git/src/suite/../drmemory/package.cmake;drmem_only" Fixes #2861
If the build number is 0, we omit it from the package name, rather than appending it. .travis.yml now takes in VERSION_NUMBER and uses it directly. There is no more TAG_SUFFIX: VERSION_NUMBER has to include the build number if that's desired, and that will be part of the tag as well. If VERSION_NUMBER is not set it uses the default as before with a cronbuild- prefix for the tag. runsuite_wrapper.pl parses VERSION_NUMBER and if it has a -NNN it passes that as the build= arg to package.cmake. It also passes a version= argument. Testing: $ TRAVIS_EVENT_TYPE=cron ~/dr/git/src/suite/runsuite_wrapper.pl travis 64_only Running ctest -VV -S "/home/bruening/dr/git/src/suite/../make/package.cmake,travis;64_only;build=0;invoke=/home/bruening/dr/git/src/suite/../drmemory/package.cmake;drmem_only" $ VERSION_NUMBER=8.1.2 TRAVIS_EVENT_TYPE=cron ~/dr/git/src/suite/runsuite_wrapper.pl travis 64_only Running ctest -VV -S "/home/bruening/dr/git/src/suite/../make/package.cmake,travis;64_only;build=0;version=8.1.2;invoke=/home/bruening/dr/git/src/suite/../drmemory/package.cmake;drmem_only" $ VERSION_NUMBER=8.21.42-39 TRAVIS_EVENT_TYPE=cron ~/dr/git/src/suite/runsuite_wrapper.pl travis 64_only Running ctest -VV -S "/home/bruening/dr/git/src/suite/../make/package.cmake,travis;64_only;build=39;version=8.21.42;invoke=/home/bruening/dr/git/src/suite/../drmemory/package.cmake;drmem_only" Fixes #2861
Fix an error where the Android package build is not listed as deploying. Issue: #2861
We trigger a custom build by setting VERSION_NUMBER in Travis. But Appveyor does not have access to that. Here we extract that number from the git tag that the Travis build set. Issue: #2861
Turns out the TRAVIS_EVENT_TYPE env var is not set during jobs matrix creation. Instead we have to use the "type = cron" condition. Issue: #2861
Turns out the TRAVIS_EVENT_TYPE env var is not set during jobs matrix creation. Instead we have to use the "type = cron" condition. Issue: #2861
We have to check both the Travis "type" and the env var to support both manual and scheduled package builds. Issue: #2861
We have to check both the Travis "type" and the env var to support both manual and scheduled package builds. Issue: #2861
Previously official packages were built on developer machines. Now that we
have Travis and Appveyor we should leverage it for a centralized, standardized
official release process.
Complications include:
Xref package.cmake command lines at https://github.com/DynamoRIO/dynamorio/wiki/New-Release
For weekly builds (#1967) I ended up having each build job create its own
package, for efficiency of having all platforms have their own without
separate jobs to invoke package.cmake. But, this splits i386 and x86_64,
and makes packages that don't look like official packages. As part of
making official packages we may want to change the weekly to use
package.cmake too: since they are only weekly the extra jobs should be ok.
The text was updated successfully, but these errors were encountered: