[
https://jira.jboss.org/jira/browse/JBDS-662?page=com.atlassian.jira.plugi...
]
Nick Boldt commented on JBDS-662:
---------------------------------
First pass added to
/devstudio-trunk/releng/org.jboss.ide.eclipse.releng/builders/common/buildRequirements.xml#cleanRequirements,
lines 61-98:
<!-- JBDS-662: use a central requirements bucket to save bandwidth and disk, if
running on linux/macosx/etc. -->
<if>
<and>
<os family="unix" />
<not>
<!-- If requirements cache dir does not exist, eg.,
~/.hudson/jobs/devstudio-nightly-2.0.x/workspace/jbds-build/requirements or
/home/hudson/hudson_workspace/workspace/jbosstools-release-3.0.x/jbds-build/requirements
-->
<available file="${requirement.build.root}" type="dir" />
</not>
</and>
<then>
<!-- find the hudson jobs dir, eg.
~/.hudson/jobs/ or
/home/hudson/hudson_workspace/
-->
<property name="HUDSON_JOBS_DIR"
location="${requirement.build.root}/../../../../" />
<!-- create a central cache folder; should we use one cache for 3.1.x and one for
3.0.x? -->
<property name="SHARED_REQUIREMENTS_DIR"
value="${HUDSON_JOBS_DIR}/jbosstools-jbdevstudio-REQUIREMENTS"/>
<if>
<and>
<available file="${HUDSON_JOBS_DIR}" type="dir" />
<not>
<available file="${SHARED_REQUIREMENTS_DIR}" type="dir"
/>
</not>
</and>
<then>
<mkdir dir="${SHARED_REQUIREMENTS_DIR}" />
</then>
</if>
<!-- then create a symlink within the build's workspace to the cache -->
<symlink link="${requirement.build.root}"
resource="${SHARED_REQUIREMENTS_DIR}" />
</then>
</if>
<!-- TODO: verify if using a shared requirements cache will cause problems with
overlapping builds doing this cleanup step -->
centralize requirements folder on in
/home/hudson/hudson_workspace/workspace/jbosstools-jbdevstudio-REQUIREMENTS
----------------------------------------------------------------------------------------------------------------
Key: JBDS-662
URL:
https://jira.jboss.org/jira/browse/JBDS-662
Project: Developer Studio
Issue Type: Task
Affects Versions: LATER
Reporter: Nick Boldt
Assignee: Nick Boldt
Priority: Minor
Fix For: 2.0.1, 2.1.0
To avoid meltdowns like we had in JBQA-2144, to reduce disk usage, and to speed up the
rollout of new hudson jobs, I propose we create two folders:
/home/hudson/hudson_workspace/workspace/jbosstools-3.0-jbdevstudio-2.0-REQUIREMENTS
/home/hudson/hudson_workspace/workspace/jbosstools-3.1-jbdevstudio-2.1-REQUIREMENTS
In there, we will place a copy of all the requirements used by the paired builds, and
instead of burning time and bandwidth fetching the 3G of zips every time we start a new
job, we'll simply symlink to that folder so new reqs will be added.
cd /home/hudson/hudson_workspace/workspace/jbosstools-nightly-3.0.x/jbds-build
ln -s
/home/hudson/hudson_workspace/workspace/jbosstools-3.0-jbdevstudio-2.0-REQUIREMENTS
requirements
Thus, for the 4 parallel jobs for JBDS2.0.0/2.0.1 & JBT3.0.0/3.0.1, we'll use
about 3G of disk instead of 12. For the 2 parallel jobs for JBDS2.1.0 & JBT3.1.0,
we'd save 3G.
For the case where this is run on a local box (eg., my own Hudson) we just need a catch
that says "if
/home/hudson/hudson_workspace/workspace/jbosstools-3.1-jbdevstudio-2.1-REQUIREMENTS
doesn't exist, create it, symlink to it, and begin downloading" .. of course the
path there would be ~/.hudson/jobs/jbosstools-3.1-jbdevstudio-2.1-REQUIREMENTS, but
it's the same relative path.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira