Page 1 of 1

What's your solution for Jenkins?

Posted: Mon Mar 13, 2017 9:28 am
by dugovic.milan
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

Re: What's your solution for Jenkins?

Posted: Mon Mar 13, 2017 11:56 am
by Martin
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

Re: What's your solution for Jenkins?

Posted: Mon Mar 13, 2017 4:04 pm
by krstcs
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.

Re: What's your solution for Jenkins?

Posted: Tue Mar 14, 2017 8:51 am
by Martin
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?

Re: What's your solution for Jenkins?

Posted: Tue Mar 14, 2017 2:40 pm
by krstcs
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.