Closed Bug 1025055 Opened 10 years ago Closed 10 years ago

Steeplechase should take app packages as arguments, unpack them on clients

Categories

(Testing :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: ted, Assigned: sydpolk)

References

Details

Attachments

(3 files, 1 obsolete file)

Right now Steeplechase requires you to pass --binary with the path to the application binary. It then pushes all the files in that directory to the client and executes them. This makes running tests against a Mac client with a non-Mac controller running Steeplechase because unpacking DMG files is hard. We should make Steeplechase alternately take arguments like --app-package=/path/to/firefox.dmg --binary=Firefox.app/Contents/MacOS/firefox where it would then push firefox.dmg to the client, unpack it there, and then execute 'Firefox.app/Contents/MacOS/firefox' from the directory where it unpacks it. The only downside is that this does require knowing the permutations of the application bundle name. Alternately we could make our Firefox builds put that information somewhere so Steeplechase can read it.

This will require slightly more complicated logic in Steeplechase to know how to unpack packages per-platform (tar.gz for Linux, .zip for Windows, .dmg for Mac).
You really need to client to unpack the archive, right? Negatus needs to know how to mount the .dmg and extract the binary. Steeplechase just sends the file down.
I discussed this on #ateam with a few teammates and the consensus was that we don't want to bake that sort of functionality into Negatus. We'd simply push the dmg to the client, then Steeplechase would execute the commands (via Negatus) to mount it and extract the binary.
Ah, I see.
Attached patch 1025055.diff (obsolete) — Splinter Review
This is only the pushing the app package part to the device.
What still needs to be done is:
- Push/dynamically make a python script (see bug 1032335, comment 2) that unpacks and runs the browser
Attached patch wip.diffSplinter Review
This is real dirty, but it uploads the tar.gz file to the negatus client and unpacks it there using a python script named 'negatusscript.py' that is also uploaded and then run on the negatus client.
After that, the runsteeplechase.py script takes over again and continues as usual (running the app and running the tests).
Attachment #8473749 - Attachment is obsolete: true
Assignee: nobody → martijn.martijn
Blocks: 1075985
Added the ability to pass packages instead of binaries. Binaries still supported.
Attachment #8502660 - Flags: review?(ted)
I ran out of time to review this this week unfortunately, I'm out all next week but will review it as soon as I get back.

If you really need this landed I've added you as a collaborator to the automation github group, so you should be able to push whatever you want to the steeplechase repo, I can always post-facto review things when I get back.

Thanks for doing the work here!
I'll wait until you get back and use my own fork for now. Thanks!
Ted, could you review this now?
Flags: needinfo?(ted)
Blocks: 1088944
Sorry, never quite got to reviews last week after working through my backlog of bugmail and other stuff, and I was PTO yesterday. Will review today.
Flags: needinfo?(ted)
Comment on attachment 8502660 [details] [review]
Pull request to allow package downloads as an alternative to binaries.

I left some comments on the PR. It's in good shape, just a few things I'd like cleaned up before landing it. Thanks for the patch!
Attachment #8502660 - Flags: review?(ted)
Assignee: martijn.martijn → spolk
https://github.com/mozilla/steeplechase/commit/a67b089635c8d5209f9fb74612221fb286190df3
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Component: New Frameworks → General
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: