KXIII
KXIII

Reputation: 99

Jenkins not recognising custom Gradle tasks

I have been trying to run unit tests from my build.gradle file with Jenkins. If i use the command ./gradlew tasks in the terminal in android studio I am able to see the custom tasks which I have set up. However if i try to run the same command via jenkins I am not able to see them in the tasks output.

Code snippet from my build.gradle

task runDataUnitTests(dependsOn: [':data:test']) {
    description 'Run unit tests for data layer.'
}

task runBusinessUnitTests(dependsOn: [':business:test']) {
    description 'Run unit tests for business layer.'
}

task runPresenterUnitTests(dependsOn: [':presenter:test']) {
    description 'Run unit tests for presenter layer.'
}

task runAllUnitTests(dependsOn: [runDataUnitTests, runBusinessUnitTests, runPresenterUnitTests]) << {
    group = 'My tasks'
    description 'Run unit tests for all layers.'
}

task testingTaskmma{
    group = 'My tasks'
    println 'is this task seen'
}

Android Studio Ouput

Other tasks
-----------
assembleArtifacts - Builds the project artifacts
assembleDefault
crashlyticsUploadDistributionLiveDebug - Uploads an APK to Crashlytics for distribution.
crashlyticsUploadDistributionLiveRelease - Uploads an APK to Crashlytics for distribution.
crashlyticsUploadDistributionStagingDebug - Uploads an APK to Crashlytics for distribution.
crashlyticsUploadDistributionStagingRelease - Uploads an APK to Crashlytics for distribution.
hello
jarLiveDebugClasses
jarLiveReleaseClasses
jarStagingDebugClasses
jarStagingReleaseClasses
lintVitalLiveRelease - Runs lint on just the fatal issues in the LiveRelease build.
lintVitalStagingRelease - Runs lint on just the fatal issues in the StagingRelease build.
runAllUnitTests **<<< THIS DUDE HERE**
sonarqube - Analyzes project ':msmandroidapp' and its subprojects with SonarQube.
sonarRunner - Analyzes project ':msmandroidapp' and its subprojects with Sonar Runner.
testingTaskmsma

Jenkins Output

Other tasks
-----------
assembleArtifacts - Builds the project artifacts
assembleDefault
connectedInstrumentTest - Installs and runs instrumentation tests for all flavors on connected devices.
connectedLiveTest - Installs and runs the tests for LiveDebug flavor on connected devices.
connectedStagingTest - Installs and runs the tests for StagingDebug flavor on connected devices.
crashlyticsUploadDistributionLiveDebug - Uploads an APK to Crashlytics for distribution.
crashlyticsUploadDistributionLiveDebugAndroidTest - Uploads an APK to Crashlytics for distribution.
crashlyticsUploadDistributionLiveRelease - Uploads an APK to Crashlytics for distribution.
crashlyticsUploadDistributionStagingDebug - Uploads an APK to Crashlytics for distribution.
crashlyticsUploadDistributionStagingDebugAndroidTest - Uploads an APK to Crashlytics for distribution.
crashlyticsUploadDistributionStagingRelease - Uploads an APK to Crashlytics for distribution.
jarLiveDebugClasses
jarLiveReleaseClasses
jarStagingDebugClasses
jarStagingReleaseClasses
publishLive - Uploads a live-flavor specific APK to MobileAppStore
publishStaging - Uploads a staging-flavor specific APK to MobileAppStore
sonarRunner - Analyzes project ':msmandroidapp' and its subprojects with Sonar Runner.
uploadArtifacts - Builds the project artifacts and uploads them the to local maven repository.

As you can see there are other custom tasks which I have created which are also missing from the jenkins output(e.g. testingTaskmsma, hello etc. ) I have tried my Jenkins setup with using the gradle wrapper and invoke grade options (using the grade plugin for jenkins) and neither works.

Upvotes: 2

Views: 1011

Answers (1)

KXIII
KXIII

Reputation: 99

The problem was an incorrect path from the Jenkins server. After I renamed a job I didn't realise that a brand new workspace was created so I was pointing to the previous workspace. Also I have found it is better to use shell commands instead of the grade plugin for Jenkins since that is how I was able to track down my problem.

Upvotes: 3

Related Questions