What's your solution for Jenkins?

Ask general questions here.
dugovic.milan
Posts: 41
Joined: Wed Jun 29, 2016 1:19 pm
Location: Frankfurt, Germany
Contact:

What's your solution for Jenkins?

Post by dugovic.milan » Mon Mar 13, 2017 9:28 am

Hey guys! I've been digging into the Jenkins lately and would like to find some optimal/modern solution for the whole thing.

Originating from the following...
- It is generally recommended that the project files should be stored locally
- But once you want to set up the Jenkins on the Build server, the same project files should be stored on the server as well (to define the path for project files)

How do you solve this? Is there any SW for transferring/updating files that runs in the background so the changes would be recognized and the job would be triggered eventually? Or what's your solution? Thanks
Ranorex 8.3.0

Martin
Posts: 152
Joined: Fri Aug 15, 2014 12:24 pm

Re: What's your solution for Jenkins?

Post by Martin » Mon Mar 13, 2017 11:56 am

For us Jenkins is configured as followed:

Jenkins itself runs on a Linux machine.
We have a Windows Server 2008 machine to run the automation.
This Windows machine is connected to Jenkins by Jenkins Slave Agent (https://wiki.jenkins-ci.org/display/JEN ... ted+builds)

We have Git repository on the Linux machine and we can push our development locally to there and get it from there as well for the Windows machine where the test are run. This can also be automatically deployed by Jenkins with the Git integration.

Also, Ranorex Reports are stored on the Linux machine with Jenkins User Content integration. This helps with the hosting of the reports. So when an automation is run the report URL (hosted on Jenkins User Content) is sent to required people via e-mail.

It's just a quite vague overview but might give you some idea points. If you have any specific questions feel free to ask.

Martin

krstcs
Ranorex Guru
Posts: 2683
Joined: Tue Feb 07, 2012 4:14 pm
Location: Austin, Texas, USA

Re: What's your solution for Jenkins?

Post by krstcs » Mon Mar 13, 2017 4:04 pm

Mine is as follows:

Windows Server 2008 (one of only about 3 Windows servers in the company) -
----Jenkins Server (for test builds and test execution, includes report publishing)
----SQL Server
----Ranorex License Server
----Ranorex 6.2.1 (for build)
----.NET SDK (4.5 max)
----GitHub Desktop

8 Windows 7 VMs
----Jenkins Slave
----Ranorex (for runtime)
----GitHub Desktop

1 Windows 8.1 VM
----Jenkins Slave
----Ranorex (for runtime)
----GitHub Desktop

GitHub - All projects are in a private GitHub repo (company wide)

I have multiple long-running branches in git, one for each software stack we test against (MIRROR - mirrors production code, PATCH - next patch release (1.2.X), PREVIEW - next feature release (1.X.0)). There is a build job for each project for each stack. Then there are small jobs that run individual tests, a parent job that runs each test job with given parameters, and a grandparent job that runs the parent jobs on each stack nightly.

My setup is pretty complex, but it is also highly dynamic. I use SQL data to drive the tests, including deciding when certain test cases are run. Both Jenkins and Ranorex get data from the DB, so even Jenkins can decide which tests to run at which time.
Shortcuts usually aren't...

Martin
Posts: 152
Joined: Fri Aug 15, 2014 12:24 pm

Re: What's your solution for Jenkins?

Post by Martin » Tue Mar 14, 2017 8:51 am

krstcs wrote:Mine is as follows:

Windows Server 2008 (one of only about 3 Windows servers in the company) -
----Jenkins Server (for test builds and test execution, includes report publishing)
----SQL Server
----Ranorex License Server
----Ranorex 6.2.1 (for build)
----.NET SDK (4.5 max)
----GitHub Desktop

8 Windows 7 VMs
----Jenkins Slave
----Ranorex (for runtime)
----GitHub Desktop

1 Windows 8.1 VM
----Jenkins Slave
----Ranorex (for runtime)
----GitHub Desktop

GitHub - All projects are in a private GitHub repo (company wide)

I have multiple long-running branches in git, one for each software stack we test against (MIRROR - mirrors production code, PATCH - next patch release (1.2.X), PREVIEW - next feature release (1.X.0)). There is a build job for each project for each stack. Then there are small jobs that run individual tests, a parent job that runs each test job with given parameters, and a grandparent job that runs the parent jobs on each stack nightly.

My setup is pretty complex, but it is also highly dynamic. I use SQL data to drive the tests, including deciding when certain test cases are run. Both Jenkins and Ranorex get data from the DB, so even Jenkins can decide which tests to run at which time.
Can you explain a little what is the driving force what actually modifies the DB? Something written into the AUT? Or just a script you periodically run?

krstcs
Ranorex Guru
Posts: 2683
Joined: Tue Feb 07, 2012 4:14 pm
Location: Austin, Texas, USA

Re: What's your solution for Jenkins?

Post by krstcs » Tue Mar 14, 2017 2:40 pm

I'm not sure I understand your question.

The test data is only modified by humans through a front-end that I created for that purpose. Test results data is written to the DB by modules in my Ranorex test suites.

This DB is not a part of the AUT, it just holds information about the test, either the raw test data, or the results.
Shortcuts usually aren't...