Skip to content

FrancoisDupayrat/JenkinsController

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 

Repository files navigation

JenkinsController

JenkinsController, also called jc, is an utility to manage the testing of an app suite on a fleet on device.

The main goal is to know which version of which app is on which device.

It is designed to be integrated with a running Jenkins instance.

Requirements

  • the command jc devices requires command-line tools:
    • system_profiler (pre-installed on Mac),
    • sed (pre-installed on Mac and Unix)
    • adb part of Android tools

Build

JenkinsController focus on Mac platform for now. You can build it using Xcode. It is tested on Mac OS X 10.8

Install

To install JenkinsController, copy the jc file in /usr/bin (or any other location defined in your PATH environment variable).

The database will be saved in ~/Library/Application Support/jc

If you can't run jc, check the permissions (usually, chmod 777 jc will fix the problem)

After installing, don't forget to configure it using jc configure.

Run

Run jc [command] to execute a command. See jc help for all the available commands

First, you should use jc configure to set the jc instance as either local or remote

  • local: you need to point to an apps folder, which will contain the [app-name].(apk/ipa) files: jc configure local [path-to-your-apps-folder]
  • remote: [NOT IMPLEMENTED] you need to point to a remote jc server: jc configure remote [jc-server-url]

Jenkins Configuration

To register the new app build, your app job need to:

  • check that jc is on local
  • copy your .apk and .ipa to jc app path
  • update the app in jc

Here is the script to do all that, using $BUILD_NUMBER to tag the version, and assuming you set $APP_NAME:

#Check jc conf is on local
JC_CONF=$(jc configure -v | sed '1 s/Configuration: //' | sed '2d')
echo $JC_CONF
if [ $JC_CONF != local ]; then
echo "Please configure JC as local"
exit 1
fi

#Copy apps for jc and update the app version on jc
JC_APP_PATH=$(jc configure -v | sed '2 s/App folder: //' | sed '1d')
cp -f /path/to/your.apk "$JC_APP_PATH/$APP_NAME.apk"
cp -f /path/to/your.ipa "$JC_APP_PATH/$APP_NAME.ipa"
jc update app $APP_NAME $BUILD_NUMBER 

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published