Continuous integration for Packs with Jenkins

Has anyone used Jenkins to set up continuous integration for Packs?

Specifically, I’m wondering how best to set up tests that require Mongo and ST2 source code. I had a look at the Exchange CI repo and it appears that the CI pipeline starts up Mongo in a Docker container and then clones the ST2 source code, installs its Python dependencies, installs runners - https://github.com/StackStorm-Exchange/ci/blob/master/.circle/Makefile#L208 (I don’t understand what this does exactly) and then runs tests that attempt to register pack’s contents as well as run other lint scripts and pack unit tests.

I’m wondering: Can this be more easily done by using st2-docker on a Jenkins agent? Would this eliminate the need to manually set up the StackStorm environment (starting a Mongo container, installing ST2 runners, etc.)?

I have some experience with doing my own pack CI. Before I say anything - why are you trying to accomplish? Testing? Linting? Releases? All of the above?

Do you wish to avoid circleci?

Hi @punkrokk.

Right now, I want to accomplish testing and linting. Releases would be great, but not realistic at the moment.

CirclCI may be an option, but I have not explored it. Jenkins is a known viable option for me.