Background: Jenkins was inside the firewall, and Azure was outside. We needed a tool to sample Azure every 2 minutes, check for code changes, and when found, start tracking the Azure pipeline, until completion.
When completed, the next stages are to create a release in Octopus, create a deployment on dev, test it, and continue to QA, STG, and so on. Additional/optional stages: request approval through Slack / Jira run other Jenkins jobs with tests run by pull requests, and more.
"Jenkins allows me to code my way to the solution, with as little UI as possible! Thank God, and thanks Jenkins!"
Goals: Connecting Jenkins to Azure pipelines and Octopus deploy
Solution & Results: We created a shared library, containing all the API calls we needed, in Octopus, Azure, Jira, Slack, and more. We added all the logic behind them, created a pipeline template as a Groovy method, and in that way, all the 30+ different products could use the same pipeline template, with a tiny Jenkins file that is only passing parameters, and calling the main template.
We are very happy with the results:
Automated build, with no mouse clicks
We now have a rich shared library for all of the company to utilize
Bypass firewall issue
Starting the CI/CD process