This document is intended for committers making a release of Eclipse Concierge. It described current approach for 5.1.0 and later. It might change for next versions when IDE/CI will be enhanced further on.
The Eclipse Concierge release 5.1.0 will be published first time as Maven artifacts. Therefore the CI build has been improved to support publishing the release 5.1.0 to all distribution channels:
This page describes all steps which needed to be done to publish this version.
Prepare JIPP instance for publishing (needed only once):
~/.gradle/gradle.properties (eclipseRepoUsername, eclipseRepoPassword)~/.gradle/gradle.properties (signing.gnupg.keyName, signing.gnupg.passphrase)~/.gradle/gradle.properties (mavenCentralUsername, mavenCentralPassword)The file ~/.gradle/gradle.propeties should look like:
// publishing to Eclipse Nexus eclipseRepoUsername ≤the-eclipse-nexus-username> eclipseRepoPassword ≤the-eclipse-nexus-password> // signing artifacts with that key signing.gnupg.keyName=<the-key-id> signing.gnupg.passphrase=<the-key-passphrase> // publishing to Maven central mavenCentralUsername ≤the-maven-central-username> mavenCentralPassword ≤the-maven-central-password>
version.txt to final version (e.g. 5.1.0)We have 2 jobs running:
The build will essentially do:
./gradlew \ -Dhttp.proxyHost=proxy.eclipse.org \ -Dhttp.proxyPort=9898 \ -Dhttp.nonProxyHosts=*.eclipse.org \ -Dhttps.proxyHost=proxy.eclipse.org \ -Dhttps.proxyPort=9898 \ -Dhttps.nonProxyHosts=*.eclipse.org \ -Dorg.eclipse.concierge.tests.waitAfterFrameworkShutdown=1000 \ clean signMavenJavaPublication test distZip distTar assembleDist installDist
The script at ./distribution/publish/publish.sh will upload/copy the built distribution archives to the Eclipse download server.
It will check the version built (taken from version.txt):
concierge-incubation-<version>.zip and a concierge-incubation-<version>.tar.gz archive of all artifactschmod u+x ./distribution/publish/publish.sh ./distribution/publish/publish.sh release
References:
The gradle build is able to publish generated signed artifacts to a Maven repository. We configured the Eclipse Nexus repository as target for publishing.
The publishing to Eclipse Nexus can be done that way:
./gradlew publishMavenJavaPublicationToEclipseRepoRepository
References:
The publishing to Maven central can be done that way:
# Proxy needed to connect to Internet ./gradlew \ -Dhttp.proxyHost=proxy.eclipse.org \ -Dhttp.proxyPort=9898 \ -Dhttp.nonProxyHosts=*.eclipse.org \ -Dhttps.proxyHost=proxy.eclipse.org \ -Dhttps.proxyPort=9898 \ -Dhttps.nonProxyHosts=*.eclipse.org \ publishMavenJavaPublicationToMavenCentralRepository
After upload to staging repository:
References
As last step, update the project download page to refer to latest release as well. Goto https://projects.eclipse.org/projects/iot.concierge and edit download section.
When release build has been done, tag the commit to v5.1.0.