Closed Bug 448014 Opened 16 years ago Closed 16 years ago

Support pushing changes to the try server

Categories

(Release Engineering :: General, defect, P3)

defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: jorendorff, Assigned: bhearsum)

References

Details

Attachments

(4 files, 1 obsolete file)

Kicking off a try server build isn't exactly hard, but what if it could be as simple as:

  hg push -f ssh://hg.mozilla.org/try

It would be pretty cool if you didn't have to create a user repo or export a patch, and you didn't have to visit the try server web page.

Here's what I think would have to be done:

- Create the repo and make sure it allows multiple heads.

- The repo would need a push hook (or whatever) that identifies the new head and sends it along to the try server.

- (nice to have) The repo should enforce a rule that you're only allowed to push one *new* head at a time (otherwise, which new head should it build?)

I wouldn't mind trying this.
This is a pretty neat idea....

The commit-hook will need to generate an info file like this: http://mxr.mozilla.org/mozilla/source/webtools/buildbot-try/sendchange.cgi#226 and drop it in the patches directory, same as the web interface would do. After that the script on the tryserver master will pull it down and do its thing.
Assignee: server-ops → nobody
Component: Server Operations → Release Engineering
QA Contact: mrz → release
Heh, neat idea. You know where to find me if you need help from the hg side.
Component: Release Engineering → Try Server
OS: Mac OS X → All
Product: mozilla.org → Webtools
QA Contact: release → try-server
Hardware: PC → All
Hmm, ok, that looks easy enough.

First we need an hg repository set up on build.m.o (or some other server that can write to that directory).  Separate bug?
I need some server admin type help with this.  The options I see are:

1.  Host the repo on hg.m.o.  The hook can use ssh, NFS, or SMB (or something) to put the try-server-request file into the appropriate directory on build.m.o.  Is any of that already in place?  Can we set it up?

2.  Host the repo on build.m.o.  Then the hook can just write the file directly to the local filesystem.

On my end, the hook is pretty trivial to code up either way.  (The hg part turned out to be really easy; the rest is logistics.)
That's a question for aravind+bhearsum. I tend to think we should use hg.mozilla.org for this.
Yeah, I guess we should since we already have all the authentication set-up properly. Rather than ssh, NFS, or SMB, can we just have a script run in a crontab on build.m.o that pulls changes in and generates the .info files? Not sure if it'd work that way, though.
bsmedberg suggested a different approach.  We'll host the repo on hg.mozilla.org.  We'll make buildbot monitor that repo's push-log feed and automatically build each tip someone pushes.

bhearsum, if you have a spare half hour, I'd like to get together and do this.
Depends on: 448435
Attachment #331677 - Flags: review?(ted.mielczarek)
Attachment #331677 - Flags: review?(ted.mielczarek) → review+
Attached patch minor master.cfg update (obsolete) — Splinter Review
Attachment #331738 - Flags: review?(anodelman)
Attachment #331737 - Flags: review?(anodelman)
Attachment #331738 - Flags: review?(anodelman) → review+
Comment on attachment 331737 [details] [diff] [review]
[checked in] special case PATCH_TRY, HG_TRY, to make it possible to pull changes from hg.m.o/try

Other than abuse of the term 'branch', looks good.
Attachment #331737 - Flags: review?(anodelman) → review+
Attachment #331738 - Attachment is obsolete: true
Attachment #331742 - Flags: review?(anodelman)
Attachment #331742 - Flags: review?(anodelman) → review+
Whiteboard: [landed on july 31]
Depends on: 448459
Comment on attachment 331677 [details] [diff] [review]
[checked in] make HgPoller support ?tipsonly

Checking in hgpoller.py;
/cvsroot/mozilla/tools/buildbotcustom/changes/hgpoller.py,v  <--  hgpoller.py
new revision: 1.3; previous revision: 1.2
done
Attachment #331677 - Attachment description: make HgPoller support ?tipsonly → [checked in] make HgPoller support ?tipsonly
Comment on attachment 331737 [details] [diff] [review]
[checked in] special case PATCH_TRY, HG_TRY, to make it possible to pull changes from hg.m.o/try

Checking in steps.py;
/cvsroot/mozilla/tools/buildbotcustom/tryserver/steps.py,v  <--  steps.py
new revision: 1.5; previous revision: 1.4
done
Attachment #331737 - Attachment description: special case PATCH_TRY, HG_TRY, to make it possible to pull changes from hg.m.o/try → [checked in] special case PATCH_TRY, HG_TRY, to make it possible to pull changes from hg.m.o/try
Comment on attachment 331742 [details] [diff] [review]
[checked in] again, with a scheduler this time

Checking in master.cfg;
/cvsroot/mozilla/tools/buildbot-configs/tryserver/master.cfg,v  <--  master.cfg
new revision: 1.17; previous revision: 1.16
done
Attachment #331742 - Attachment description: again, with a scheduler this time → [checked in] again, with a scheduler this time
Whiteboard: [landed on july 31]
I missed this in my first master.cfg, wtf?
Assignee: nobody → bhearsum
Status: NEW → ASSIGNED
Attachment #332517 - Flags: review?
Attachment #332517 - Flags: review? → review?(anodelman)
Whiteboard: [waiting on pushlog update]
Priority: -- → P3
Comment on attachment 332517 [details] [diff] [review]
[checked in] add an HgPoller so this thing actually works

pre-landed this:
Checking in master.cfg;
/cvsroot/mozilla/tools/buildbot-configs/tryserver/master.cfg,v  <--  master.cfg
new revision: 1.18; previous revision: 1.17
done
Attachment #332517 - Attachment description: add an HgPoller so this thing actually works → [checked in] add an HgPoller so this thing actually works
Whiteboard: [waiting on pushlog update]
Had to land a bustage fix (use urljoin instead of 'foo + bar' to create the hg.m.o url) because Mercurial barfs when there is extra slasheys in the URL.

Other than that, looks like this is working fine.
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Attachment #332517 - Flags: review?(anodelman)
Component: Try Server → Release Engineering
Product: Webtools → mozilla.org
QA Contact: try-server → release
Product: mozilla.org → Release Engineering
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: