git clone https://github.com/Eclipse/n4js.git
The N4JS IDE, headless n4jsc.jar, and the N4JS update site is being built on the Eclipse Common Build Infrastructure (CBI). For this purpose the N4JS project is using a dedicated Jenkins instance, referred to as a "Jenkins Instance Per Project" (JIPP) in Eclipse CBI documentation. At this time, the N4JS project’s JIPP is running on the "old" infrastructure, not yet using docker. This will be migrated at a later point in time.
The N4JS JIPP is available at: https://ci.eclipse.org/n4js/
The nightly build performs the following main steps:
compile the N4JS implementation,
build the n4jsc.jar, the IDE products for MacOS, Windows, Linux, and the update site,
run tests,
sign the IDE product for macOS and package it in a .dmg file,
deploy to n4jsc.jar, IDE products and update sites to Eclipse download server (i.e. download.eclipse.org),
move all artifacts older than 7 days from download.eclipse.org to archive.eclipse.org.
Details about all the above steps can be found in the Jenkinsfile eclipse-nightly.jenkinsfile, located in
the root folder of the N4JS source repository on GitHub.
The most accurate documentation for our JIPP can be found at https://wiki.eclipse.org/IT_Infrastructure_Doc. Note that many other documents do not apply to our JIPP, at the moment, as they refer to the new infrastructure, e.g. https://wiki.eclipse.org/CBI and https://wiki.eclipse.org/Jenkins.
Ensure you have
Java 8
Maven 3.2.x and
Node.js 6
installed on your system.
Clone the repository
git clone https://github.com/Eclipse/n4js.git
Change to the n4js folder:
cd n4js
Run the Maven build:
mvn clean verify
You may have to increase the memory for maven via export MAVEN_OPTS="-Xmx2048m" (Unix) or set MAVEN_OPTS="-Xmx2048m" (Windows).
org.eclipse.n4js.releng.util
For extending the N4JS-language in a different project, the org.eclipse.n4js.releng.util module needs to be published as a maven-plugin. You can deploy this SNAPSHOT-artifact to a local folder by providing the local-snapshot-deploy-folder-property pointing to an absolute path in the local file system:
|
mvn clean deploy -Dlocal-snapshot-deploy-folder=/var/lib/my/folder/local-mvn-deploy-repository
The existence of local-snapshot-deploy-folder will trigger a profile enabling the deploy-goal for the project org.eclipse.n4js.releng.util
The HTML pages for N4JSSpec and N4JSDesign documents are generated from the Asciidoc sources in the project org.eclipse.n4js.spec org.eclipse.n4js.design by Asciispec.
Figure The process of creating Eclipse help for N4JSSpec shows the generation process for N4JSSpec document. The process for N4JSDesign is the same. The following explains the diagram.
Asciispec is used to compile the source N4JSSpec Asciidoc into a single large N4JSSpec.html file which contains all the chapters. The use of the custom parameter -a eclipse-help-mode indicates that a specical header and footer styles as well as CSS style should be used (i.e. no table of content menu, no download links etc.). Here, we are using the possibility provided by Asciidoctor to configure header/footer as well as CSS style via parameter :docinfodir: and :stylesheet:.
Our custom tool Chunker splits N4JSSpec.html into multiple chunked HTML files, each of which corresponds to either the index file or a chapter.
Another custom tool EclipseHelpTOCGenerator takes to Docbook file N4JSSpec.xml and generates an XML file describing the table of content (TOC) in the Eclipse format. This TOC file references the chunked HTML files above.