Closed
Bug 1178286
Opened 9 years ago
Closed 9 years ago
switch release automation source builder to taskcluster
Categories
(Release Engineering :: Release Automation: Other, defect)
Release Engineering
Release Automation: Other
Tracking
(firefox47 fixed)
RESOLVED
FIXED
Tracking | Status | |
---|---|---|
firefox47 | --- | fixed |
People
(Reporter: bhearsum, Assigned: rail)
References
Details
Attachments
(5 files, 2 obsolete files)
2.09 KB,
text/plain
|
Details | |
3.86 KB,
patch
|
jlund
:
review+
|
Details | Diff | Splinter Review |
2.08 KB,
patch
|
jlund
:
review+
rail
:
checked-in+
|
Details | Diff | Splinter Review |
7.49 KB,
patch
|
jlund
:
review+
rail
:
checked-in+
|
Details | Diff | Splinter Review |
48 bytes,
text/x-github-pull-request
|
jlund
:
review+
rail
:
checked-in+
|
Details | Review |
This includes task definition and any necessary changes to the script that does this job. If the we have an initial task graph by the time this gets looked at, it should integrate with that, too.
Rail, you said you wanted to use this builder as a test case for trialing out a few things. Assign to you
Assignee | ||
Comment 2•9 years ago
|
||
Switching to mozharness at the same time. Looks like we already have support to package sources there, but it needs some tweaks.
Assignee | ||
Comment 3•9 years ago
|
||
Assignee | ||
Comment 4•9 years ago
|
||
This patch:
* updates the existing config with missing variables
* refactors the package_source to use a new wrapper called check_run_command_m() - not sure if it belongs to BuildScript, though.
* uses `mach configure' instead of `make -f client.mk configure'
* no need to upload, TC handles that
Example job: https://tools.taskcluster.net/task-inspector/#fn98oVkaQcafZSh89OTVuw/0
A diff between `find | sort > list.txt` of existing 39.0 tarball (on FTP) and the generated by the task above: https://gist.github.com/rail/fff90a1920c2bf444f21
Attachment #8627805 -
Attachment is obsolete: true
Attachment #8628458 -
Flags: review?(jlund)
Assignee | ||
Comment 5•9 years ago
|
||
FTR, this is the task definition I used
Comment 6•9 years ago
|
||
Comment on attachment 8628458 [details] [diff] [review]
source-railz-mozharness-3.diff
Review of attachment 8628458 [details] [diff] [review]:
-----------------------------------------------------------------
looks great! I can't attest to the targets you are calling and needed cmd args but the code looks good to me. Small questions/comments below.
::: configs/builds/releng_sub_linux_configs/64_source.py
@@ +10,5 @@
> 'purge_minsize': 3,
> + 'buildbot_json_path': 'buildprops.json',
> + 'app_ini_path': 'FAKE', # Not used, but required by the script
> + 'objdir': 'obj-firefox',
> + 'env': {
sanity check as your env looks minimal: this won't append to any mh base config that you are using in the script call, it will overwrite. Ignore me if you only want 3 vars + os.environ
::: mozharness/mozilla/building/buildbase.py
@@ +1695,5 @@
> halt_on_failure=True)
> if self.config.get('enable_ccache'):
> self._ccache_s()
>
> + def check_run_command_m(self, *args, **kwargs):
neat! I wonder if this wrapper could go into mock: http://mxr.mozilla.org/build/source/mozharness/mozharness/mozilla/mock.py
@@ +1712,5 @@
> +
> + def _create_empty_mozconfig(self):
> + """Create an empty mozconfig file"""
> + self.log("creating an empty mozconfig...")
> + with open(os.path.join(self.query_abs_dirs()['abs_src_dir'],
mh has a _touch_file[1] that comes with some logging and exception catching for free. might be applicable here.
@@ +1730,5 @@
> )
> + self.check_run_command_m(
> + command=[
> + 'make', 'source-package', 'hg-bundle',
> + 'HG_BUNDLE_REVISION=%s' % self.query_revision(),
does the env var have to go into the command? I know some make targets required that on certain platforms but if not, extending `env` seems more natural.
Attachment #8628458 -
Flags: review?(jlund) → review+
Assignee | ||
Comment 7•9 years ago
|
||
interdiff: https://gist.github.com/rail/b7197e5d4c584fd8ade1
Thanks for the comments, they made me simplify the patch.
(In reply to Jordan Lund (:jlund) from comment #6)
> sanity check as your env looks minimal: this won't append to any mh base
> config that you are using in the script call, it will overwrite. Ignore me
> if you only want 3 vars + os.environ
I tried to keep the env as much as possible less polluted. It perfectly works with those 3 variables set.
> ::: mozharness/mozilla/building/buildbase.py
> @@ +1695,5 @@
> > halt_on_failure=True)
> > if self.config.get('enable_ccache'):
> > self._ccache_s()
> >
> > + def check_run_command_m(self, *args, **kwargs):
>
> neat! I wonder if this wrapper could go into mock:
> http://mxr.mozilla.org/build/source/mozharness/mozharness/mozilla/mock.py
Bah, it turns out that I reimplemented halt_on_failure! :) Dropping this from the patch. I don't need any fancy status logic here. If it fails, it's red.
> mh has a _touch_file[1] that comes with some logging and exception catching
> for free. might be applicable here.
Bah #2! I used self._touch_file() instead.
> @@ +1730,5 @@
> > )
> > + self.check_run_command_m(
> > + command=[
> > + 'make', 'source-package', 'hg-bundle',
> > + 'HG_BUNDLE_REVISION=%s' % self.query_revision(),
>
> does the env var have to go into the command? I know some make targets
> required that on certain platforms but if not, extending `env` seems more
> natural.
Even though it looks like an env variable, it's not. It's passed to make as an argument and make uses it to (re)define internal variables.
Attachment #8628458 -
Attachment is obsolete: true
Attachment #8628760 -
Flags: review?(jlund)
Comment 8•9 years ago
|
||
Comment on attachment 8628760 [details] [diff] [review]
source-railz-mozharness-4.diff
Review of attachment 8628760 [details] [diff] [review]:
-----------------------------------------------------------------
lgtm! :D
Attachment #8628760 -
Flags: review?(jlund) → review+
Assignee | ||
Comment 9•9 years ago
|
||
Comment on attachment 8628760 [details] [diff] [review]
source-railz-mozharness-4.diff
https://hg.mozilla.org/build/mozharness/rev/4d528b0dfc44
Assignee | ||
Comment 10•9 years ago
|
||
https://github.com/mozilla/releasetasks/pull/24 and https://github.com/mozilla/releasetasks/pull/26 implement the scheduling part.
Assignee | ||
Comment 11•9 years ago
|
||
Need to update invocation, probably just MOZHARNESS_SCRIPT env.
https://s3-us-west-2.amazonaws.com/taskcluster-public-artifacts/Dg-5E5zSSd2vHWJ4LFGHjA/5/public/logs/live_backing.log
Assignee | ||
Comment 12•9 years ago
|
||
Can't use system wide GCC anymore :/
Have to switch to tooltool
Attachment #8677192 -
Flags: review?(jlund)
Assignee | ||
Comment 13•9 years ago
|
||
https://tools.taskcluster.net/task-inspector/#rWoxOnIPRFyyZWkXOQ9C5g/ is my "try" push (to date)
Assignee | ||
Comment 14•9 years ago
|
||
Still need to fix the artifacts (they are gone now)
Comment 15•9 years ago
|
||
Comment on attachment 8677192 [details] [diff] [review]
source_update.diff
Review of attachment 8677192 [details] [diff] [review]:
-----------------------------------------------------------------
shweet
Attachment #8677192 -
Flags: review?(jlund) → review+
Assignee | ||
Comment 16•9 years ago
|
||
Comment on attachment 8677192 [details] [diff] [review]
source_update.diff
https://hg.mozilla.org/integration/mozilla-inbound/rev/c8bca7decb0c
Attachment #8677192 -
Flags: checked-in+
Assignee | ||
Updated•9 years ago
|
Keywords: leave-open
Assignee | ||
Comment 17•9 years ago
|
||
It turns out that the current script doesn't handle DIST_TARGET_UPLOADS in https://github.com/mozilla/releasetasks/blob/master/releasetasks/templates/source.yml.tmpl#L51
We need to call "make upload", which in TC case will set UPLOAD_HOST to "localhost" in https://dxr.mozilla.org/mozilla-central/source/testing/mozharness/configs/builds/build_pool_specifics.py#46
In this case upload.py just copies files to UPLOAD_PATH, see https://dxr.mozilla.org/mozilla-central/source/build/upload.py#18
To make the solution solid, we could add a new mach command to handle source generation. I have a patch at https://gist.github.com/rail/401b7b9681fb6f44f5e1 which needs some love:
* It times out. The commands take more than default 180 secs. Probably need to tweak the timeout or make the commands print something (not sure if it works in hg-bundle case)
* No default value for --revision
* Maybe make hg-bundle optional
Comment 18•9 years ago
|
||
Assignee | ||
Comment 19•9 years ago
|
||
I pushed https://hg.mozilla.org/projects/date/rev/c6f40a198297 to date to disable tooltool all together, because the new mozconfig doesn't require it.
Assignee | ||
Comment 20•9 years ago
|
||
and https://hg.mozilla.org/projects/date/rev/c6c535a4c21e to fix a typo (missing coma).
Assignee | ||
Comment 21•9 years ago
|
||
and http://hg.mozilla.org/projects/date/rev/f2941b773c74 to upload the bundle
Assignee | ||
Comment 22•9 years ago
|
||
* no more tooltool with "source" mozconfig
* fix targets to upload files for reals
* generate signing manifest
Attachment #8722112 -
Flags: review?(jlund)
Assignee | ||
Comment 23•9 years ago
|
||
Attachment #8722113 -
Flags: review?(jlund)
Updated•9 years ago
|
Attachment #8722112 -
Flags: review?(jlund) → review+
Updated•9 years ago
|
Attachment #8722113 -
Flags: review?(jlund) → review+
Comment 24•9 years ago
|
||
Assignee | ||
Comment 25•9 years ago
|
||
Comment on attachment 8722113 [details] [review]
fix source tasks
merged
Attachment #8722113 -
Flags: checked-in+
Assignee | ||
Comment 26•9 years ago
|
||
Comment on attachment 8722112 [details] [diff] [review]
source-gecko.diff
https://hg.mozilla.org/integration/mozilla-inbound/rev/94d790995f2c
Attachment #8722112 -
Flags: checked-in+
Assignee | ||
Updated•9 years ago
|
Keywords: leave-open
Comment 27•9 years ago
|
||
bugherder |
You need to log in
before you can comment on or make changes to this bug.
Description
•