Skip to main content

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.

Jump to: navigation, search

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

Back to the top