# JJB macros specific to Integration/Distribution ODL project
---
-
-- builder:
- name: distribution-deploy-verify
- # Operation: Deploy ODL with all fetures and check it is not broken.
- # Required bash variables:
- # KARAF_VERSION: 'karaf4' or 'karaf3'.
- # Use distribution-karaf-version macro to customize.
- builders:
- - integration-detect-variables
- - shell: !include-raw: distribution-deploy-verify.sh
-
-- builder:
- name: distribution-deploy-offline
- # Operation: Deploys ODL on the current system, with no external repo configuration, check it works.
- # Required bash variables:
- # KARAF_VERSION: 'karaf4' or 'karaf3'.
- # Use distribution-karaf-version macro to customize.
- builders:
- - integration-detect-variables
- - shell: !include-raw: distribution-deploy-offline.sh
-
- builder:
name: distribution-check-wipe
# Step zero: Wipe file repositories up front.
rm -rfv /tmp/t
echo "create n: multithreaded execution might fail at creating it."
mkdir /tmp/n
+ echo "detecting distribution allowed projects"
+ # Some allowed projects cannot be detected in distribution because they do not produce features.
+ ALLOW_PROJECTS=(yangtools mdsal openflowjava)
+ ALLOW_PROJECTS+=(`grep '<groupId>org.opendaylight.' -Rh distribution \
+ | sed -e 's%^[ \t]*<groupId>org.opendaylight.%%' \
+ | sed -e 's%</groupId>%%' | sort -u`)
+ echo "Allowed projects are ${ALLOW_PROJECTS[@]}"
+ echo "ALLOW_PROJECTS=${ALLOW_PROJECTS[@]}" > allowed_projects.txt
- builder:
name: distribution-check-build-project
# pom: Relative path to pom file to use. Typically '$GERRIT_PROJECT/pom.xml'.
builders:
- maven-target:
- maven-version: 'mvn33'
+ maven-version: '{mvn-version}'
pom: '{pom}'
goals: |
clean deploy
dependency:tree -DoutputFile=dependency_tree.txt
- -Pq
+ -Pq -Pmanaged -Punmanaged
-DaltDeploymentRepository=fake-nexus::default::file:///tmp/n/
{mvn-opts}
java-opts:
# gerrit-project: Project name as nexus URI part. Typically '$GERRIT_PROJECT'.
builders:
- shell: |
+ echo "These are allowed projects: $ALLOW_PROJECTS"
+ echo "These are distribution pulled projects:"
+ EXIT_CODE="0"
+ for PROJECT in `ls /tmp/r/org/opendaylight`; do
+ echo "checking $PROJECT"
+ if [[ "$ALLOW_PROJECTS" != *"$PROJECT"* ]]; then
+ echo "ERROR: Not allowed project $PROJECT pulled"
+ EXIT_CODE="1"
+ fi
+ done
+ exit $EXIT_CODE
+ echo "verify project groupId"
mkdir -p /tmp/t/org/opendaylight/{gerrit-project}
mv /tmp/n/org/opendaylight/{gerrit-project}/* /tmp/t/org/opendaylight/{gerrit-project}/
test -z "`find /tmp/n/ -type f`" || ( echo "ERROR: Mismatched groupId detected (see above)." && false )
# dist-pom: Relative path to pom file to use. 'distribution/pom.xml' is recommended.
builders:
- maven-target:
- maven-version: 'mvn33'
+ maven-version: '{mvn-version}'
pom: '{dist-pom}'
goals: |
clean install
dependency:tree -DoutputFile=dependency_tree.txt
- -Pq
+ -Pq -Pmanaged -Punmanaged
{mvn-opts}
java-opts:
- '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
- shell: |
cp -r /tmp/r /tmp/t
- maven-target:
- maven-version: 'mvn33'
+ maven-version: '{mvn-version}'
pom: '{pom}'
goals: |
clean install
dependency:tree -DoutputFile=dependency_tree.txt
-s fake_remotes.xml
- -Pq
+ -Pq -Pmanaged -Punmanaged
{mvn-opts}
java-opts:
- '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
# dist-pom: Relative path to pom file to use. 'distribution/pom.xml' is recommended.
builders:
- maven-target:
- maven-version: 'mvn33'
+ maven-version: '{mvn-version}'
pom: '{dist-pom}'
goals: |
clean install
dependency:tree -DoutputFile=dependency_tree.txt
-s fake_remotes.xml
- -Pq
+ -Pq -Pmananaged -Punmanaged
-Dsft.heap.max=4g
-DskipTests=false
{mvn-opts}
name: distribution-check-warn-9191
# Detect ODL bundles referenced cross-project from features, store them to a file to be archived.
# Do not fail the build, this is just to inform interested contributors.
- # TODO: Improve integration archiving macro so that it finds bug9191 log without us crating it in $WORKSPACE/.
+ # TODO: Improve integration archiving macro so that it finds bug_9191 log without us crating it in $WORKSPACE/.
builders:
- shell: |
# No failure in this macro should affect the job result.
set +e
- rm -f "$WORKSPACE/bug9191.log"
+ rm -f "$WORKSPACE/bug_9191.log"
pushd "$WORKSPACE/distribution/$KARAF_ARTIFACT/target/assembly/system/org/opendaylight"
for folder in `ls`; do
- find "$folder" -name \*features.xml | xargs fgrep -n '<bundle>' > bug9191.0.log
- fgrep org.opendaylight bug9191.0.log | fgrep -v "org.opendaylight.$folder" >> "$WORKSPACE/bug9191.log"
- rm bug9191.0.log
+ find "$folder" -name \*features.xml | xargs fgrep -n '<bundle>' > bug_9191.0.log
+ fgrep org.opendaylight bug_9191.0.log | fgrep -v "org.opendaylight.$folder" >> "$WORKSPACE/bug_9191.log"
+ rm bug_9191.0.log
done
popd
# Current implementation will also include Bug 9191 violations,
# presenting an unified diff with lines marked to be removed, among unmarked lines to compare to.
# Do not fail the build, this is just to inform interested contributors.
- # TODO: Improve integration archiving macro so that it finds bug9192 log without us crating it in $WORKSPACE/.
+ # TODO: Improve integration archiving macro so that it finds bug_9192 log without us crating it in $WORKSPACE/.
builders:
- shell: |
# No failure in this macro should affect the job result.
set +e
pushd "$WORKSPACE/distribution/$KARAF_ARTIFACT/target/assembly/system/org/opendaylight"
- find . -name \*features.xml | xargs fgrep -n '<bundle>' > "$WORKSPACE/bug9192.0.log"
+ find . -name \*features.xml | xargs fgrep -n '<bundle>' > "$WORKSPACE/bug_9192.0.log"
popd
- fgrep org.opendaylight bug9192.0.log > "$WORKSPACE/bug9192.1.log"
- sort -s -t '<' -k 2 "$WORKSPACE/bug9192.1.log" > "$WORKSPACE/bug9192.2.log"
- sort -u -s -t '<' -k 2 "$WORKSPACE/bug9192.1.log" > "$WORKSPACE/bug9192.3.log"
- diff -U 999 -b -t -d "$WORKSPACE/bug9192.2.log" "$WORKSPACE/bug9192.3.log" > "$WORKSPACE/bug9192.diff.log"
- rm -f "$WORKSPACE"/bug9192.?.log
+ fgrep org.opendaylight bug_9192.0.log > "$WORKSPACE/bug_9192.1.log"
+ sort -s -t '<' -k 2 "$WORKSPACE/bug_9192.1.log" > "$WORKSPACE/bug_9192.2.log"
+ sort -u -s -t '<' -k 2 "$WORKSPACE/bug_9192.1.log" > "$WORKSPACE/bug_9192.3.log"
+ diff -U 999 -b -t -d "$WORKSPACE/bug_9192.2.log" "$WORKSPACE/bug_9192.3.log" > "$WORKSPACE/bug_9192.diff.log"
+ rm -f "$WORKSPACE"/bug_9192.?.log
- builder:
name: distribution-check-bootup