Fix: Add maven pre and post build scripts 95/70095/1 v0.76.4
authorJessica Wagantall <jwagantall@linuxfoundation.org>
Wed, 27 Apr 2022 19:09:12 +0000 (12:09 -0700)
committerJessica Wagantall <jwagantall@linuxfoundation.org>
Wed, 27 Apr 2022 19:09:12 +0000 (12:09 -0700)
Optionally run a script before and/or after maven goals.
This will help add dependencies and post process builds with more
flexibility to the project's needs.

Issue: IT-23957
Signed-off-by: Jessica Wagantall <jwagantall@linuxfoundation.org>
Change-Id: I7075972c796a2cac17d9ad7ec9e99be1699354c3

docs/jjb/lf-maven-jobs.rst
jjb/lf-maven-jobs.yaml
releasenotes/notes/maven-verify-merge-pre-post-scripts-cbf3636f20635316.yaml [new file with mode: 0644]

index 59b5018..c3ab35b 100644 (file)
@@ -322,6 +322,8 @@ This job uses the following strategy to deploy jobs to Nexus:
     :mvn-params: Parameters to pass to the mvn CLI. (default: '')
     :mvn-version: Version of maven to use. (default: mvn35)
     :nexus-cut-dirs: Number of directories to cut from file path for `wget -r`.
+    :pre-build-script: Shell script to run before maven build. (default: a string with a shell comment)
+    :post-build-script: Shell script to run after maven build. (default: a string with a shell comment)
     :stream: Keyword that represents a release code-name.
         Often the same as the branch. (default: master)
     :submodule-recursive: Whether to checkout submodules recursively.
@@ -578,6 +580,8 @@ This job runs on dev branches and its triggered on new patchsets.
     :mvn-opts: Sets MAVEN_OPTS to start up the JVM running Maven. (default: '')
     :mvn-params: Parameters to pass to the mvn CLI. (default: '')
     :mvn-version: Version of maven to use. (default: mvn35)
+    :pre-build-script: Shell script to run before maven build. (default: a string with a shell comment)
+    :post-build-script: Shell script to run after maven build. (default: a string with a shell comment)
     :sonar-mvn-goal: Maven goals to run for sonar analysis.
         (default: sonar:sonar)
     :sonarcloud: Set to ``true`` to use SonarCloud ``true|false``.
index 878840c..d8a1b5e 100644 (file)
     mvn-params: "-Dmerge"
     mvn-version: mvn35
     nexus-cut-dirs: 6 # Number of dirs in the Nexus path to remove for wget -r.
+    pre-build-script: "# pre-build script goes here"
+    post-build-script: "# post-build script goes here"
     stream: master
     submodule-recursive: true
     submodule-timeout: 10
             NEXUS_CUT_DIRS={nexus-cut-dirs}
             NEXUS_REPO={nexus-snapshot-repo}
       - shell: !include-raw-escape: ../shell/maven-fetch-metadata.sh
+      - shell: "{pre-build-script}"
       - lf-maven-build:
           mvn-goals: "{mvn-goals}"
+      - shell: "{post-build-script}"
       - lf-maven-deploy
       - lf-provide-maven-settings-cleanup
 
     mvn-opts: ""
     mvn-params: "-Dstream=$STREAM -Dmaven.source.skip=true"
     mvn-version: mvn35
+    pre-build-script: "# pre-build script goes here"
+    post-build-script: "# post-build script goes here"
     stream: master
     submodule-recursive: true
     submodule-timeout: 10
       - lf-provide-maven-settings:
           global-settings-file: "{mvn-global-settings}"
           settings-file: "{mvn-settings}"
+      - shell: "{pre-build-script}"
       - lf-maven-build:
           mvn-goals: "{mvn-goals}"
+      - shell: "{post-build-script}"
       - lf-provide-maven-settings-cleanup
 
     publishers:
diff --git a/releasenotes/notes/maven-verify-merge-pre-post-scripts-cbf3636f20635316.yaml b/releasenotes/notes/maven-verify-merge-pre-post-scripts-cbf3636f20635316.yaml
new file mode 100644 (file)
index 0000000..9b5a245
--- /dev/null
@@ -0,0 +1,6 @@
+---
+fixes:
+  - |
+    Optionally run a script before and/or after maven goals.
+    This will help add dependencies and post process builds with more
+    flexibility to the project's needs.