diff --git a/.project b/.project index 872d289a1b62aea80e4ff30a13d0f560cac36715..fffc988148df66dc3b59ce6ef3209dceb99bf10a 100644 --- a/.project +++ b/.project @@ -42,14 +42,5 @@ 1.0-name-matches-false-false-releng - - 1647267860916 - releng - 9 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-legal-defaults - - diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000000000000000000000000000000000000..1ce6ffd782a2606fe89e7d874714548bd8f03ca0 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,116 @@ +////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2021 Contributors to the Eclipse Foundation +// +// This program and the accompanying materials are made +// available under the terms of the Eclipse Public License 2.0 +// which is available at https://www.eclipse.org/legal/epl-2.0/ +// +// SPDX-License-Identifier: EPL-2.0 +// +////////////////////////////////////////////////////////////////////////////// + +pipeline { + agent { + // The 'centos-7' pod template allows UI tests. + kubernetes { + inheritFrom 'centos-7' + } + } + + tools { + jdk 'temurin-jdk8-latest' + maven 'apache-maven-3.8.3' + } + + options { + buildDiscarder(logRotator( + // Number of builds to keep. + numToKeepStr: '5', + + // Number of builds for which to keep the artifacts. + artifactNumToKeepStr: '5', + + // Number of days to keep builds. + daysToKeepStr: env.BRANCH_NAME ==~ /master/ ? '7' : // master + env.BRANCH_NAME ==~ /develop/ ? '1000' : // develop + env.TAG_NAME ==~ /v[0-9]+\\.[0-9]+.*/ ? '120' : // release tags + '30', // other branches and merge requests + + // Number of days to keep artifacts of builds. + artifactDaysToKeepStr: env.BRANCH_NAME ==~ /master/ ? '7' : // master + env.BRANCH_NAME ==~ /develop/ ? '1000' : // develop + env.TAG_NAME ==~ /v[0-9]+\\.[0-9]+.*/ ? '30' : // release tags + '30', // other branches and merge requests + )) + timeout(time: 1, unit: 'HOURS') + timestamps() + } + + stages { + stage('Build & Test') { + steps { + wrap([$class: 'Xvnc', takeScreenshot: false, useXauthority: true]) { + sh ''' + # Print versions. + java -version + mvn -version + git --version + + # Print environment. + printenv + + # Get Git last commit date. + GIT_DATE_EPOCH=$(git log -1 --format=%cd --date=raw | cut -d ' ' -f 1) + GIT_DATE=$(date -d @$GIT_DATE_EPOCH -u +%Y%m%d-%H%M%S) + + # Configure 'jenkins' profile for build. + BUILD_ARGS="-Pjenkins" + + # Override the 'trace4cps.version.enduser' property for releases. Remains 'dev' otherwise. + if [[ "$TAG_NAME" =~ ^v[0-9]+\\.[0-9]+.*$ ]]; then + BUILD_ARGS="$BUILD_ARGS -Dtrace4cps.version.enduser=$TAG_NAME" + fi + + # Override the 'trace4cps.version.qualifier' property for Jenkins builds. + # It starts with 'v' and the Git date, followed by a qualifier postfix. + # For releases, the qualifier postfix is the postfix of the version tag (if any). + # For non-releases, the qualifier postfix is 'dev'. + if [[ "$TAG_NAME" =~ ^v[0-9]+\\.[0-9]+.*$ ]]; then + QUALIFIER_POSTFIX=$(echo "$TAG_NAME" | sed -e 's/^[^-]*//g') + else + QUALIFIER_POSTFIX=-dev + fi + BUILD_ARGS="$BUILD_ARGS -Dtrace4cps.version.qualifier=v$GIT_DATE$QUALIFIER_POSTFIX" + + # Perform build. + ./build.sh $BUILD_ARGS + ''' + } + } + + post { + success { + // Update site. + archiveArtifacts 'releng/org.eclipse.trace4cps.repository/target/*-updatesite.zip' + } + } + } + } + + post { + // Send an e-mail on unsuccessful builds (unstable, failure, aborted). + unsuccessful { + emailext subject: 'Build $BUILD_STATUS $PROJECT_NAME #$BUILD_NUMBER!', + body: '''Check console output at $BUILD_URL to view the results.''', + recipientProviders: [culprits(), requestor()] + } + + // Send an e-mail on fixed builds (back to normal). + fixed { + emailext subject: 'Build $BUILD_STATUS $PROJECT_NAME #$BUILD_NUMBER!', + body: '''Check console output at $BUILD_URL to view the results.''', + recipientProviders: [culprits(), requestor()] + } + } +} diff --git a/TRACE4CPS.setup b/TRACE4CPS.setup index 0228c919bcecf203aa1346e5c88e9fc6b6c03560..fd85dcb68650d8a47aa895d917702487d1909625 100644 --- a/TRACE4CPS.setup +++ b/TRACE4CPS.setup @@ -584,12 +584,16 @@ name="net.sf.eclipsecs.feature.group"/> + + Install the tools needed in the IDE to work with the source code for ${scope.project.label}. diff --git a/build.sh b/build.sh old mode 100644 new mode 100755 diff --git a/releng/org.eclipse.trace4cps.configuration/pom.xml b/releng/org.eclipse.trace4cps.configuration/pom.xml index a0f180ff7be0f9bfcace7a35b5720d5a38125a91..b09eae6209b4772ddbbb9159f9981be877d69e80 100644 --- a/releng/org.eclipse.trace4cps.configuration/pom.xml +++ b/releng/org.eclipse.trace4cps.configuration/pom.xml @@ -19,6 +19,16 @@ pom + + + dev + + + + + + dev + 1.8 ${java.source} @@ -88,6 +98,9 @@ ${tycho.version} + + ${trace4cps.version.qualifier} + false @@ -316,7 +329,7 @@ checkstyle-check - ${basedir}/.checkstyle + ${project.basedir}/.checkstyle @@ -342,7 +355,7 @@ true info - ${basedir}/src + ${project.basedir}/src @@ -360,7 +373,7 @@ add-plugin-default-abouts - ${basedir}/about.html + ${project.basedir}/about.html @@ -404,7 +417,7 @@ create-plugin-source - ${basedir}/META-INF/MANIFEST.MF + ${project.basedir}/META-INF/MANIFEST.MF @@ -430,7 +443,7 @@ create-feature-source - ${basedir}/feature.xml + ${project.basedir}/feature.xml diff --git a/releng/org.eclipse.trace4cps.repository/pom.xml b/releng/org.eclipse.trace4cps.repository/pom.xml index 0ae8cbd32d734c61acf65033fbca2fa38708d72a..217d18fa4b1c268f9b46743e07f2c5692eb12cef 100644 --- a/releng/org.eclipse.trace4cps.repository/pom.xml +++ b/releng/org.eclipse.trace4cps.repository/pom.xml @@ -35,6 +35,9 @@ Eclipse TRACE4CPS Update Site (Incubation) + + + eclipse-trace4cps-incubation-${trace4cps.version.enduser}-updatesite diff --git a/temporallogic/org.eclipse.trace4cps.tl.cmd/pom.xml b/temporallogic/org.eclipse.trace4cps.tl.cmd/pom.xml index c9e4de7bdf7af95762a2bcfaea5c14169628b1e7..be2540fd569681d7fa1978a5791d4d3d9f1af9d5 100644 --- a/temporallogic/org.eclipse.trace4cps.tl.cmd/pom.xml +++ b/temporallogic/org.eclipse.trace4cps.tl.cmd/pom.xml @@ -20,7 +20,7 @@ ../../ - TRACE4CPS Runtime Verification CLI + TRACE4CPS Runtime Verification CLI org.eclipse.trace4cps.tl.cmd jar diff --git a/temporallogic/org.eclipse.trace4cps.tl/pom.xml b/temporallogic/org.eclipse.trace4cps.tl/pom.xml index a6443ad9e096fca224079ea1054c361deca772b4..9f7f408921bed8f3d351febc1cdf5a7dda66795d 100644 --- a/temporallogic/org.eclipse.trace4cps.tl/pom.xml +++ b/temporallogic/org.eclipse.trace4cps.tl/pom.xml @@ -83,7 +83,7 @@ org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher - /${project.basedir}/src/org/eclipse/trace4cps/tl/GenerateETL.mwe2 + /${project.basedir}/src/org/eclipse/trace4cps/tl/GenerateEtl.mwe2 -p rootPath=/${project.basedir}/.. @@ -141,37 +141,37 @@ - ${basedir}/../org.eclipse.trace4cps.tl/src-gen/ + ${project.basedir}/../org.eclipse.trace4cps.tl/src-gen/ **/* - ${basedir}/../org.eclipse.trace4cps.tl.tests/src-gen/ + ${project.basedir}/../org.eclipse.trace4cps.tl.tests/src-gen/ **/* - ${basedir}/../org.eclipse.trace4cps.tl.ide/src-gen/ + ${project.basedir}/../org.eclipse.trace4cps.tl.ide/src-gen/ **/* - ${basedir}/../org.eclipse.trace4cps.tl.ui/src-gen/ + ${project.basedir}/../org.eclipse.trace4cps.tl.ui/src-gen/ **/* - ${basedir}/../org.eclipse.trace4cps.tl.ui.tests/src-gen/ + ${project.basedir}/../org.eclipse.trace4cps.tl.ui.tests/src-gen/ **/* - ${basedir}/model/generated/ + ${project.basedir}/model/generated/ diff --git a/temporallogic/org.eclipse.trace4cps.tl/src/org/eclipse/trace4cps/tl/GenerateEtl.mwe2 b/temporallogic/org.eclipse.trace4cps.tl/src/org/eclipse/trace4cps/tl/GenerateEtl.mwe2 index 18f67e1ac91782b8f6b3e26a836029dde16b1c5d..3a6b8ad2436f8f50109287647fdb6e621e5ce9b0 100644 --- a/temporallogic/org.eclipse.trace4cps.tl/src/org/eclipse/trace4cps/tl/GenerateEtl.mwe2 +++ b/temporallogic/org.eclipse.trace4cps.tl/src/org/eclipse/trace4cps/tl/GenerateEtl.mwe2 @@ -37,7 +37,7 @@ Workflow { } } language = StandardLanguage { - name = "org.eclipse.trace4cps.tl.etl" + name = "org.eclipse.trace4cps.tl.Etl" fileExtensions = "etl" serializer = { generateStub = false