Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [buckminster-dev] Hudson plugin and provisioning

Hi again,

it actually works like a charm now :)
Here's the current workflow, please let me know what you think about it:

1. The administrator opens the configure hudson page
2. He presses 'Add Buckminster' In the Buckminster section
3. He enters a name for the tool installation (that will be shown in the job configuration) 4. By default 'Install Automatically' is checked and the default 'Install from Eclipse.org/Cloudsmith.com' installer is checked 5. He selects a version (the versions are fed from a json file on hudson.org) 6. He can also remove this installer or add other installers (execute shell script/ download and extract from URL) 7. If install automatically gets unchecked, the installer section disappears and gets replaced with a textfield to enter the buckminster home location (this is how it's done in the current buckminster plugin) 8. In a job configuration the build manager can choose between all known buckminster tool installations 9. If the "Install from Eclipse.org/Cloudsmith.com" installer was selected and the job is started, the installer checks if buckminster is already installed on this machine. If not:
-it downloads and extracts the p2 director from the URL in the JSON file
-it invokes the p2 installer with the URL and IU given in the JSON file to provision a buckminster headless product -it iterates over all repositories listed in the JSON file and installs all features associated with them.

In the console output of the job the result looks like this:

Unpacking http://download.eclipse.org/tools/buckminster/products/director_latest.zip to /home/joe/workspaceHudson2/buckminster/work/tools/Buckminster_3.5 on Hudson [buckminster] $ sh -e /home/joe/workspaceHudson2/buckminster/work/tools/Buckminster_3.5/buckminster/hudson1716709923112513365.sh
Installing org.eclipse.buckminster.cmdline.product 1.1.350.r11146.
Operation completed in 13049 ms.
Installed Feature org.eclipse.buckminster.core.headless.feature from http://download.eclipse.org/tools/buckminster/headless-3.5/ Installed Feature org.eclipse.buckminster.cvs.headless.feature from http://download.eclipse.org/tools/buckminster/headless-3.5/ Installed Feature org.eclipse.buckminster.pde.headless.feature from http://download.eclipse.org/tools/buckminster/headless-3.5/ Installed Feature org.eclipse.buckminster.maven.feature from http://download.eclipse.org/tools/buckminster/headless-3.5/ Installed Feature org.eclipse.buckminster.subversive.headless.feature from http://download.cloudsmith.com/buckminster/external/

The JSON File consists of an array of Buckminster Installables with the following contents (shortened):

"id":"3.5", //the unique ID of the installable
"name":"Buckminster 3.5", //the human readable name that will be shown in the version selection "url":"http://download.eclipse.org/tools/buckminster/products/director_latest.zip";, //the URL of the director application
"iu":"org.eclipse.buckminster.cmdline.product"; //which IU to install
"repositoryURL":"http://download.eclipse.org/tools/buckminster/headless-3.5";, //where to find the headless product
"repositories":[ //a list of repositories where to install features from
{ "url":"http://download.eclipse.org/tools/buckminster/headless-3.5/";, //the repository URL
	"features":[ //a list of features to install from this repo
{ "id":"org.eclipse.buckminster.core.headless.feature"}, { "id":"org.eclipse.buckminster.cvs.headless.feature"}...


I'm almost ready to release this but there are a few questions remaining that I need answered first:

1. Is the approach ok with you or should I change something?
2. Is it ok to use the direct download link from eclipse.org for the p2 director? 3. Is it ok to automatically download additional features from cloudsmith or should I restrict to eclipse.org? 4. Do I need to have the user accept some kind of licence agreement for features (like subversive, or so)? 5. I need some help writing the final JSON file with the version/feature informations. What should be included in which version?

Best regards,
Johannes


Back to the top