Merging various Groovy files of Jenkins shared library in a single - jenkins

I am new to Jenkins Shared Library. Setup a shared library which is having some .groovy related to cleaning nuget packages, restoring nuget packages, building & publishing .net core projects. Now i want a single .groovy file in my shared library which will call the functions of each of these .groovy file. For e.g. following is the groovy script for nuget clean
def call(String projectPath){
bat "dotnet clean ${projectPath} --configuration Release"
bat "dotnet nuget locals all --clear"
}
Following is the groovy script for nuget restore
def call(String nugetConfig, String projectPath){
bat "dotnet restore --no-cache --configfile ${nugetConfig} ${projectPath}"
}
Now i want a groovy script which will call both these groovy scripts functions in a single groovy file which will again remain in the same Jenkins shared library.
Thanks in advance.

Related

Jenkins build without maven

I have a java project which I build and export it as a jar using eclipse. Then I deploy the jar.
Also my project uses dependencies e.g. Apache POI etc. I include these jars in the build path and then clean build and export it as a jar.
I want to build the jar using Jenkins. Please suggest the script and command to perform the same task without using maven. I have to build the code from Gitlab.

Download/Copy zip file from Nexus repository via jenkins pipeline

I am new to this. I have a .NET project, GIT is being used as a SCM. We are keeping Third party binaries(in a zip file) inside Nexus.
Now, while building the project, via Jenkins, I need to copy and unzip binaries from Nexus to build machine via Jenkins Pipeline Script.
You can use the Maven dependency plugin.
A very basic example would be:
sh "mvn dependency:get -DrepoUrl=YOUR_URL Dartifact=com.foo.something:component:LATEST:jar -Ddest=component.jar"
Of course this requires java and maven to be properly installed on your node.

Change directory during a build job on jenkins

I am building a gradle project and the source code is in git. After checking our repo to jenkins' workspace, how do i have jenkins go to a sub-directory and do the build?
I tried adding shell commands but cd will not work as it executes script on a separate shell.
If you are building a gradle project, perhaps you should use the "Invoke gradle script" step rather than a shell script?
As part of the gradle build script, it has an option to specify the "Root Build script", which will let allow you to specify a subdirectory if you wish.
See the Gradle plugin for more information.

Configure Jenkins to run Visual Studio bat file before Maven job

I have a Maven module that utilizes the NAR plugin to build some JNI libraries, and in Jenkins I have configured a Maven project to build this module. In order for these libs to be built, the Visual Studio bat file that sets up the path and other environment variables must be run. I have tried several different ways to get this bat file to execute before the Maven commands are called, and none of them have worked correctly. I know that Jenkins isolates all of the build process steps, so it can be difficult to get the environment set up, but I'm hoping someone has solved this particular issue. Here's what I've tried:
calling the bat file as a pre build step.
Using the EnvInject plugin to call the bat file, both as a pre build step and as a pre job step.
Setting the environment variables directly without calling the bat file using EnvInject.
calling the bat file from the mvn.bat file (this failed because it appears Jenkins will call Maven directly, without using the bat file).
As a workaround, I'm using the Freeform project type and setting the build steps to
call the bat file.
Directly call maven with appropriate parameters.
This works, but it's not as nice as using the Maven project type, ex. a failed unit test will fail the entire build instead of just sending a warning. Is there a way to configure this as a Maven project?

How can I build a Netbeans RCP application with SBT?

Netbeans RCP application are built with Ant. How can I build with SBT and integrate in Jenkins?
There's a SBT plugin which allows Ant targets to be called.
First build ant4sbt from sources:
git clone http://github.com/sbt/ant4sbt.git
cd ant4sbt
sbt publish-local
Create a file properties/sbt-ant4sbt.sbt like this:
addSbtPlugin("de.johoop" % "ant4sbt" % "1.1.2")
Create a build.sbt on the root of your Netbeans RCP application:
import de.johoop.ant4sbt.Ant4Sbt._
antSettings
addAntTasks("build-osgi") // creates task antRunBuildOsgi
addAntTasks("run-osgi") // creates task antRunRunOsgi
Now you can build OSGi bundles from command line and run it inside a container, like this:
sbt antRunBuildOsgi
sbt antRunRunOsgi
Building in Jenkins is as easy as calling sbt antRunBuildOsgi but you will have to copy dependencies to the library directory you defined in your Netbeans IDE. After the build you will also have to copy artifacts to the place you distribute artifacts of your builds.
See also: Cannot build OSGi bundle for a Netbeans RCP application

Resources