Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
PackageDrone/ReleaseBuild
< PackageDrone
Revision as of 12:41, 18 January 2016 by Jens.reimann.ibh-systems.com (Talk | contribs) (→Assembling outputs)
This page tries to describe the internal build process for releases.
Prerequisites
- Maven 3.3.x with
mvn
in the "PATH" -
gpg-agent
and a working signing key - rpm build tools installed
Have the following properties set in your ~/.m2/settings.xml
or provide these during the builds:
<jdeb.keyring>/path/to/gpg/keyring</jdeb.keyring> <jdeb.key>12345678</jdeb.key> <jdeb.passphrase>passphrase</jdeb.passphrase>
Have the following RPM macros defined in your ~/.rpmmacros
:
%_gpg_name 12345678 %__gpg_check_password_cmd /bin/true %__gpg_sign_cmd %{__gpg} gpg --batch --no-verbose --no-armor --use-agent --no-secmem-warning -u "%{_gpg_name}" -sbo %{__signature_filename} %{__plaintext_filename}
Performing the build
git clone https://github.com/eclipse/packagedrone.git packagedrone.git cd packagedrone.git cd runtime mvn clean install cd .. mvn clean verify -Prpm -Pjdeb-sign -Dtycho.localArtifacts=ignore
Build profiles
The jdeb-sign
profile uses the "jdeb.*" properties above to sign the DEB and RPM packages. This profiles also requires the rpm
profile to be active.
Assembling outputs
Run the following commands after a successful local build:
cd deploy/promote ant -DkeyId=12345678 -Declipse.committer=userid -DbaseVersion=0.1 -Drelease=0.m1 -DbuildType=milestone -f build.ant
Check the output with:
find output
Dry run the upload:
ant -DkeyId=12345678 -Declipse.committer=userid -DbaseVersion=0.1 -Drelease=0.m1 -DbuildType=milestone -f build.ant publish
Perform the upload:
ant -DdryRun= -DkeyId=12345678 -Declipse.committer=userid -DbaseVersion=0.1 -Drelease=0.m1 -DbuildType=milestone -f build.ant publish
The download location is structured like this:
# plain downloads /package-drone/drops /milestone /0.12.0.m1 /0.12.0.m2 /0.12.0.m3 /0.12.1.m1 /0.13.0.m1 /0.13.0.m2 /0.13.1.m1 /release /0.12.0 /0.12.1 /0.12.2 /0.13.0 /0.13.1 # repositories (apt, yum) /package-drone/release /current -> 0.13 /0.12 /ubuntu /rhel6 /rhel7 /opensuse13 /0.13 /ubuntu /rhel6 /rhel7 /opensuse13 /package-drone/milestone /current -> 0.13 /0.12 /ubuntu /rhel6 /rhel7 /opensuse13 /0.13 /ubuntu /rhel6 /rhel7 /opensuse13
…