Skip to content
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

re-add public package builds per commit #1967

Closed
derekbruening opened this issue Jul 6, 2016 · 3 comments
Closed

re-add public package builds per commit #1967

derekbruening opened this issue Jul 6, 2016 · 3 comments

Comments

@derekbruening
Copy link
Contributor

Xref #1962

As our Chromium buildbots are being removed, we're looking for a new way to create a package and make it publicly available after each commit. Travis CI supports uploading build artifacts to various places: https://docs.travis-ci.com/user/deployment

@derekbruening
Copy link
Contributor Author

This issue also covers setting this up for Windows on Appveyor

derekbruening added a commit that referenced this issue Mar 4, 2018
Adds support for Travis builds to produce auto-published package files.
Each job can create its own package file, using existing support in
runsuite*.cmake and package.cmake with some additions here to enable and
tweak that code.  Longer-term we may want to use package.cmake instead and
even make official builds on Travis (i#2861).

Adds Travis deployment to Github Releases of produced packages files.  The
tag is "cronbuild-${VERSION_NUMBER}": e.g., "cronbuild-7.0.17592".

Adds better support for 32-bit-only or 64-bit-only x86 package files by
naming them differently and removing the drrun warnings on incomplete
packages when missing the opposite bitwidth.

Issue: #1967
derekbruening added a commit that referenced this issue Mar 4, 2018
Adds support for Travis builds to produce auto-published package files.
Each job can create its own package file, using existing support in
runsuite*.cmake and package.cmake with some additions here to enable and
tweak that code.  Longer-term we may want to use package.cmake instead and
even make official builds on Travis (i#2861).

Adds Travis deployment to Github Releases of produced packages files.  The
tag is "cronbuild-${VERSION_NUMBER}": e.g., "cronbuild-7.0.17592".

Adds Appveyor tag-triggered deployment.

Adds better support for 32-bit-only or 64-bit-only x86 package files by
naming them differently and removing the drrun warnings on incomplete
packages when missing the opposite bitwidth.

Adds better build order handling to ensure release build is the default
for tool files.

Issue: #1967
derekbruening added a commit that referenced this issue Mar 4, 2018
Fixes an error in ad850c4 where only the 64-bit package was deployed.
However, it is not clear that Travis supports deployments from multiple
parallel jobs, and it is also not clear how racy tagging and deploying is
going to work.  This is an attempt to see what happens: the 2nd tag may
fail and abort its deploy.

Sets the GitHub Release title and description.
Fixes a git diff error on Appveyor tagged builds.

Issue: #1967
derekbruening added a commit that referenced this issue Mar 4, 2018
Adds package building in each Appveyor build.

Adds force_update for Appveyor deployment to try and get it in the same
GitHub Release as Travis.

Issue: #1967
derekbruening added a commit that referenced this issue Mar 4, 2018
Adds the proper path for our package files to be "artifacts" that can then
be deployed to GitHub Releases.

Issue: #1967
derekbruening added a commit that referenced this issue Mar 4, 2018
Adds the proper path for our package files to be "artifacts" that can then
be deployed to GitHub Releases.

Issue: #1967
derekbruening added a commit that referenced this issue Mar 5, 2018
Since Appveyor appears to clobber the GitHub Release name and description
set by Travis, we set similar values for Appveyor.

Sets the Appveyor deploy file to use the artifact name, as the path (with
wildcards) failed.

Issue: #1967
derekbruening added a commit that referenced this issue Mar 5, 2018
Yet another attempt to get Appveyor and Travis to upload files to the same
GitHub Release, by using not only the same tag but the same name.

Issue: #1967
derekbruening added a commit that referenced this issue Mar 5, 2018
We don't want flaky tests to derail package deployment, so we disable test
running for such builds.  We've already run the tests for the same commit
via regular master-push triggers: these package builds are coming from a
cron trigger (Travis) or a tag addition (Appveyor), not a code change.

Issue: #1967
derekbruening added a commit that referenced this issue Mar 5, 2018
We don't want flaky tests to derail package deployment, so we disable test
running for such builds.  We've already run the tests for the same commit
via regular master-push triggers: these package builds are coming from a
cron trigger (Travis) or a tag addition (Appveyor), not a code change.

Issue: #1967
@derekbruening
Copy link
Contributor Author

Dr. Memory was set up with DynamoRIO/drmemory@e3beb46 and DynamoRIO/drmemory@5a534c4

I'm now considering this closed. We have Travis and Appveyor weekly cron jobs posted to a GitHub Release with a new tag "cronbuild-". I updated the wiki pointers.

A minor improvement could be to not bother with the "package" argument for non-cron-builds to save time but it's too small to spend time on.

#2861 covers making official packages; #2860 covers deploying the HTML docs; DynamoRIO/drmemory#2086 covers adding .msi packages for Dr. Memory.

Closing.

@derekbruening
Copy link
Contributor Author

Adding a note on how to test cron builds manually:

"Trigger build" from the Travis menu and enter custom YAML code:

env:
  global:
    - TRAVIS_EVENT_TYPE=cron
    - TAG_SUFFIX=B

Use the suffix to make unique names if doing multiple on one day (or same
day as real cron job).

Can't do any branch but master.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant