Skip to content
This repository has been archived by the owner on Nov 15, 2022. It is now read-only.

Latest commit

 

History

History
60 lines (38 loc) · 3.89 KB

build-concierge.md

File metadata and controls

60 lines (38 loc) · 3.89 KB

Gradle based build system

Concierge will be build using Gradle. The gradle wrapper scripts will be used, to simplify installation. The wrapper scripts are checked in into repository as ./gradlew and ./gradlew.bat. The required files to start and download gradle are in folder .gradle-wrapper, do not touch.

// use wrapper task since Gradle 4.8
wrapper {
    gradleVersion = '4.10.2'
    jarFile = '.gradle-wrapper/gradle-wrapper.jar'
}

Updates of gradle version can be done by changing the wrapper task in ./build.gradle to an updated version and running the task ./gradlew wrapper again.

$ ./gradlew wrapper

Build Concierge using Gradle

A complete build can be done using

$ ./gradlew clean build distZip distTar installDist

This will clean workspace, build and run tests, and will create a distribution file named distribution/build/distributions/concierge-<version>.zip and ...tar.gz. By installDist it will be unpacked into distribution/build/install to easily check artifact results.

Versioning

The framework and the bundles jars will be named to Bundle-SymbolicName and Bundle-Version, e.g. org.eclipse.concierge-5.1.0.SNAPSHOT-20151114134106.jar. The Manifest.MF will specify the Bundle-Version: 5.1.0.qualifier, qualifier will be replaced by the current build date/time (MANIFEST driven approach). The version maintenance is up to the individual bundles/framework dependent on compatibility of changes.

The version for the distribution will be defined in version.txt in root directory. The used release plugin will automatically read in this file and use it as project.version property. When this file will have a .SNAPSHOT ending, it will be considered as a SNAPSHOT version. When doing a release (by calling ./gradlew release) it will remove SNAPSHOT, make a release build, create a tag in git, and increase the version to next number.

Distribution files

Files added to the distribution can be added to the folder distribution/src/main/dist. These files will automatically added to distribution folder.

In folder distribution/src/markdown are all documentation files in markdown format. They will be transformed to HTML using gradle tasks. For displaying markdown files Strapdown will be used.

Documentation for Concierge developers/committers is included in folder distribution/src/markdown/docs/contributor.

Hudson based Continuous Integration build

There is a Hudson instance (HIPP) hosted at Eclipse Hudson Infrastructure. All committer have access to this instance, please login with your Eclipse committer account.

There is a job ConciergeDistribution doing a build by checking git master branch for changes. This script will start the gradle-wrapper by a shell build task using

./gradlew -Dhttps.proxyHost=proxy.eclipse.org -Dhttps.proxyPort=9898 -Dhttps.nonProxyHosts=*.eclipse.org clean build distZip distTar installDist

The build job has to set the proxy settings to get gradle-version downloaded from Internet. The Files to archive will be set to distribution/build/distributions/*.

When distribution has been made, a SNAPSHOT build will be published to Eclipse Download section by the job ConciergeDistributionPublishSnapshot. It will upload these file to download area and will provide a [publish.log] file for checking the publishing process: