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

Difference between revisions of "PackageDrone/ReleaseBuild"

Line 6: Line 6:
 
* <code>gpg-agent</code> and a working signing key
 
* <code>gpg-agent</code> and a working signing key
 
* rpm build tools installed
 
* rpm build tools installed
 +
 +
You will need to replace 320E6224 with your signing key in the following examples.
  
 
Have the following properties set in your <code>~/.m2/settings.xml</code> or provide these during the builds:
 
Have the following properties set in your <code>~/.m2/settings.xml</code> or provide these during the builds:

Revision as of 10:38, 26 January 2016

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

You will need to replace 320E6224 with your signing key in the following examples.

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>320E6224</jdeb.key>
<jdeb.passphrase>passphrase</jdeb.passphrase>

Have the following RPM macros defined in your ~/.rpmmacros:

%_gpg_name 320E6224
%__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

This step will download the current content of the download area, merge in the newly built content, create the repositories and upload the result back to the download area.

Run the following commands after a successful local build:

cd deploy/promote
ant -DkeyId=320E6224 -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=320E6224 -Declipse.committer=userid -DbaseVersion=0.1 -Drelease=0.m1 -DbuildType=milestone -f build.ant publish

Perform the upload:

ant -DdryRun= -DkeyId=320E6224 -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