OverviewThe try server lets committers try uncommitted patches on multiple platform in an automated way.
Workflow
How to specify a subset of tests to run-b, --bot to specify the bot-b, --bot is additive, except that if you don't specify it at all you'll get default botsAllowed uses:
Specify multiple builders using the default tests:
-b buildername,buildername,buildernameor specify multiple different test steps:
-b buildername:some_unittest,some_unittest,some_unittestor specify a --gtest_filter:
-b buildername:some_unittest:GTestFixture.GTestTest-t, --testfilter-t, --testfilter is multiplicative, but if you don't specify it at all you'll get all testsAllowed uses:
Specify different test steps to run :
-t some_unittest,some_unittestSpecify a --gtest_filter
-t some_unittest:GTestFixture.GTestTestExamplesRuns the default tests on 'win_rel' but only compile on 'win':
git cl try -b win_rel -b win:compileCompiles on both 'win_rel' and 'win' without running tests:
git cl try -b win_rel,win -t compileRuns base_unittests on win_rel but no other test:
git cl try -b win_rel:base_unittestsRuns a single specific test from base_unittests on win_rel:
git cl try -b win_rel:base_unittests:SpecificTestNameRuns base_unittests and in addition default tests on win_rel:
git cl try -b win_rel -b win_rel:base_unittestsWhat are the "defaulttests", you ask? Easiest answer is just to run a try job and look what is skipped. You can also search for the non_default factory property.
Specialized chromium-specific slavesLayout testsLayout tests are now optionally run on normal try builders. Since the tests are not run automatically anymore, you need to specify the exact tests to run:gcl try foo -t webkit_tests,webkit_lintValgrindWe have linux_valgrind and linux_tsan slaves to run popular valgrind tests.
git cl try foo --bot linux_valgrindgit cl try your_cl -b linux_valgrind -t ui_tests:YourTest.Fooe.g.
git cl try test -b linux_valgrind -t ui_tests:HostRulesTest.*Please note that you can run tests locally on Linux and Mac with your usual Debug built binaries, so you can save some time by running Valgrind locally on these platforms. LKGRThe url for the current LKGR is: http://chromium-status.appspot.com/lkgr.
The last known good revision is determined by the last revision that passes green at: http://chromium-status.appspot.com/revisions
The list of tests and builders that need to pass are listed at masters/master.chromium.lkgr/lkgr_finder.py
How does LKGR relate to Tip of Tree or HEAD?LKGR is by definition behind ToT because it needs to be built and tested, and most likely another commit occured before a revision was vetted for LKGR.
Troubleshooting failed try jobsPlease, before contacting maruel, please look at these items:
FAQI'm modifying a DEPS, will it work?Yes.
I'm modifying a GYP file, will it work?Yes.
I'm modifying gyp scripts under src/tools/gyp, will it work?Yes, but you have to use
--no_search, otherwise patch will fail saying it cannot find files to patch.Get detailed command-line helpUse: git try -h (git will redirect --help to man which fails for git-try)
Or: trychange.py --help
Disable automatic try on gcl uploadTo do this for 'gcl try': create a file at '~/.gcl_upload_no_try'
For 'git try' : Edit src/codereview.settings thusly: "TRY_ON_UPLOAD: False"
I have an awesome patch for depot_tools!Use the same way to contribute code that for chromium in general, e.g.
gcl or git-cl.Skip running some/all of the unit tests?gcl try & git try accept --testfilter testname:filter-string [-t for short] parameter, this option can be repeated to specify additional tests. For instance:git try -t unit_tests:SafeBrowsingDatabaseTest.*If you specify a test filter then only the tests binaries you filter on will run (the rest will be skipped). This means you could send a compile only, no test, try job by passing
-t none. You can also use:git cl try --bot win_rel:unit_tests Want to compile something not compiled by defaultAdd the pseudo test 'compile' as a test filer, e.g.
git cl try -b win_rel:compileHow can I see what will happen before I submit the job?Use the
--dry_run flag (which implies --verbose) to (a) see what your patch is and (b) not actually submit the job when using git try or gcl try.apply_issue failedBy default the trybot will patch your change against the LKGR, so there might be differences in the files you are modifying between the revision you've been working on and the LKGR. The easiest way to fix this is check which revision you were using, and then pass it to the try job with --revision. For example, if your change depends on some other changes newer than LKGR, you may want to try the patch against HEAD, i.e., git cl try -rHEAD. If this still doesn't work and:
git try instead of git cl try as follows:
Keep in mind that this means your branch cannot be committed until all upstream branches are committed first, even if the trybots succeed. compiling failedPossible issues:
My patch includes updated webkit baselines (binary files) and it's not workingCorrect! The try servers do not currently support binary patches, but this is being worked on. Star https://crbug.com/23608.
I want to cancel my job, should I press the 'Stop' button?No! DON'T EVER DO THAT. This button is for maintainers and is quite tricky to use correctly. Just let it go.
Why! you ask. You may stop it during the update step and leave the svn checkout locked, breaking the following tries. You may stop it during compilation, corrupting the PDB database, breaking the following jobs. You may stop it during ui_tests, leaving zombies around. You may stop it during unit_tests, leaving temp files around.
Run the try job only on one platformUse
--bot win or whatever 'builder' name you want to use from the waterfall.My patch is in Blink onlyWe highly recommend you to use git. See http://code.google.com/p/chromium/wiki/UsingWebKitGit.
GITGo in src/third_party/WebKit and use cd src/third_party/WebKit ; git-try --bot mac_layout,win_layout,linux_layoutGCLSince
gcl try will fail if you don't specify a chromium change, you can use trychange.py directly. Use it from the src directory of your Chromium checkout:trychange.py --sub_rep=third_party/WebKit --bot mac_layout,win_layout,linux_layoutSee
trychange.py --help for more details.Simultaneously patch code in the WebKit and Chromium repositoriesGITUse
--sub_rep. Don't know what --sub_rep is? Then try git-try --help.cd src ; git-try --sub_rep third_party/WebKit/ --bot mac_layout,win_layout,linux_layoutGCLUse
--sub_rep. Don't know what --sub_rep is? Then try gcl help try.Submit a try job for another person (e.g. non-committer)Use Rietvield WebUI with the "Try more bots" link. If you need to use specific flags, use:
trychange.py -R codereview.chromium.org/12345 --email patchauthor@domain.com --name issue_12345 --root src -p 0Where I need to hack on a try slave for a few hours?Sorry, only Googlers can do this for now. You can get more information at the internal link. What is the difference between 'git try' and 'git cl try'?
|
