Jenkins — шта је то, архитектура система и подешавање CI/CD сервера

Аутор: IT Sectr Објављено: 2026-04-13 Време читања: 10 мин

Jenkins је CI/CD сервер отвореног кода који аутоматизује изградњу, тестирање и испоруку мобилних апликација. За разлику од облачних решења, Jenkins се поставља на сопствену инфраструктуру и подешава преко веб интерфејса или кода. Према подацима CloudBees, 2025, више од 1,6 милиона тимова користи Jenkins за CI/CD процесе. Систем подржава дистрибуиране изградње кроз Master-Agent архитектуру и више од 1800 прикључака за интеграцију са развојним алатима.

Главно

  • Jenkins — Open Source CI/CD сервер на Java за аутоматизацију изградње и испоруке апликација
  • Pipeline — дефинисање CI/CD процеса као кода у Jenkinsfile-у са декларативном или скриптном синтаксом
  • Master-Agent — архитектура са расподелом задатака између главног чвора и агената за паралелне изградње
  • Прикључци — више од 1800 модула за интеграцију са Git, Docker, Fastlane, XCTest и Gradle
  • Jenkinsfile — конфигурациони фајл у репозиторијуму који дефинише кораке изградње, тестирања и имплементације

Шта је Jenkins и зашто је потребан у мобилном развоју

Jenkins је CI/CD сервер отвореног кода написан у Java за аутоматизацију изградње, тестирања и испоруке софтвера. У контексту мобилног развоја, Jenkins омогућава тимовима да аутоматски граде iOS и Android апликације, покрећу јединичне и UI тестове, потписују билдове и испоручују их у App Store или Google Play без ручних операција.

Потреба за Jenkins-ом настаје када пројекат прерасте локалне изградње и захтева редовне интеграције кода од више програмера. Ручна изградња сваког комита заузима време и подложна је грешкама — Jenkins решава овај проблем покретањем аутоматских пајплајнова при свакој промени у репозиторијуму.

Према извештају JetBrains Developer Ecosystem 2025, 54% мобилних тимова користи Jenkins као главну CI/CD платформу. Систем подржава било које језике и платформе захваљујући архитектури прикључака — за Android су доступни Gradle и SDK Manager, за iOS — Xcode Integration и Keychain Manager.

Користите Jenkins у пројектима где је потребна потпуна контрола над инфраструктуром изградње, прилагођавање сваког корака CI/CD процеса и интеграција са корпоративним сигурносним системима.

Архитектура Jenkins-а: Master, Агенти и рад Pipeline-а

Архитектура Jenkins-а изграђена је према моделу Master-Agent. Master сервер управља конфигурацијом, планирањем задатака и веб интерфејсом, а агенти извршавају стварне изградње на наменским или привременим машинама. Ова архитектура омогућава паралелно грађење iOS апликације на macOS агенту и Android апликације на Linux агенту са истог Master сервера.

Master и Agent у Jenkins-у

Master чвор Jenkins-а чува сва подешавања, прикључке и историју изградњи у главном директоријуму $JENKINS_HOME. Агенти се повезују на Master преко SSH, JNLP или WebSocket-а и примају задатке из реда. За мобилни развој препоручује се издвајање посебних macOS агената за iOS изградње и Linux агената за Android изградње са инсталираним SDK и алатима.

Сваки агент може бити стални сервер или динамички Docker контејнер. Према документацији CloudBees, расподела изградњи на 5 агената смањује укупно време CI/CD пајплајна за 70% при 10 паралелних задатака.

Pipeline као код

Jenkins Pipeline је дефиниција целог CI/CD процеса у облику кода који се чува у репозиторијуму заједно са пројектом. Pipeline се описује у Jenkinsfile-у и подржава две синтаксе: Declarative (структурирана, са унапред дефинисаним блоковима) и Scripted (флексибилна, заснована на Groovy са потпуном контролом тока извршења).

Декларативна синтакса се препоручује за већину мобилних пројеката, јер обезбеђује читљивост и предвидљивост. Scripted Pipeline је погодан за сложене сценарије са динамичким паралелним стадијумима, прилагођеном обрадом грешака и условном логиком заснованом на променљивим окружења.

Jenkins Pipeline: Declarative и Scripted синтакса

Jenkins Pipeline подржава две синтаксе које одређују начин описивања корака CI/CD процеса. Declarative синтакса користи блоковску структуру са кључним речима pipeline, stages, stage и steps, што је чини интуитивном за нове кориснике. Scripted синтакса је заснована на Groovy и пружа потпуну контролу над извршењем кроз условне операторе и петље.

Декларативни Pipeline аутоматски креира Sandbox — безбедно окружење за извршавање Groovy скрипти. Ово ограничава приступ опасним методама Java и Groovy, што је критично за корпоративна окружења где безбедност пајплајнова контролише администратор.

Структура декларативног Pipeline-а

Декларативни Pipeline се заснива на четири кључна блока: pipeline (корени блок), agent (навођење агента), stages (низ стадијума) и post (акције након завршетка). Сваки stage садржи steps са командама изградње, а post блок дефинише акције при успеху, неуспеху или нестабилном статусу изградње.

Блок post је посебно користан за мобилне пројекте — у њему се може подесити слање обавештења у Slack при паду изградње или архивирање IPA и APK артефаката након успешног завршетка. Jenkins извршава post акције гарантовано, чак и ако је pipeline ручно прекинут.

groovy
// Declarative Pipeline за iOS апликацију
pipeline {
    agent { label 'macos' }
    stages {
        stage('Build') {
            steps {
                sh 'xcodebuild -workspace App.xcworkspace -scheme App clean build'
            }
        }
        stage('Test') {
            steps {
                sh 'xcodebuild -workspace App.xcworkspace -scheme App test'
            }
        }
    }
}

Scripted Pipeline пружа блок node уместо agent и омогућава коришћење Groovy конструкција за динамичко гранање. Ова синтакса је погодна за пајплајнове где скуп стадијума зависи од параметара изградње или резултата претходних корака.

groovy
// Scripted Pipeline са паралелним стадијумима
node('macos') {
    stage('Parallel Builds') {
        parallel(
            ios: { buildIOS() },
            android: { buildAndroid() }
        )
    }
}
def buildIOS() {
    sh 'fastlane ios build'
}

Jenkinsfile: подешавање CI/CD за iOS пројекте

За iOS пројекте, Jenkinsfile захтева macOS агента са инсталираним Xcode, CocoaPods или Swift Package Manager и Fastlane. Типичан пајплајн укључује стадијуме: инсталација зависности, изградња, покретање тестова, потписивање кода и испорука у TestFlight или App Store.

Кључна карактеристика iOS изградњи у Jenkins-у је управљање сертификатима и provisioning профилима. Препоручује се коришћење Fastlane Match за аутоматско преузимање сертификата из репозиторијума или Jenkins Credentials Binding прикључка за безбедно чување кључева.

groovy
pipeline {
    agent { label 'macos' }
    environment {
        MATCH_PASSWORD = credentials('match-password')
    }
    stages {
        stage('Install Dependencies') {
            steps {
                sh 'pod install --repo-update'
            }
        }
        stage('Build and Test') {
            steps {
                sh 'fastlane scan'
                sh 'fastlane gym'
            }
        }
        stage('Deploy to TestFlight') {
            when { branch 'main' }
            steps {
                sh 'fastlane upload_testflight'
            }
        }
    }
}

За iOS јединичне тестове користите xcodebuild test са навођењем симулатора. Jenkins подржава објављивање XCTest извештаја кроз JUnit прикључак — конвертујте .xcresult у XML формат за уграђивање резултата тестова у контролну таблу изградње.

Jenkinsfile: подешавање CI/CD за Android пројекте

Android изградње у Jenkins-у се извршавају на Linux агентима са инсталираним Java JDK, Android SDK, Gradle и емулаторима. Пајплајн укључује стадијуме: провера линтером, јединични тестови, изградња APK или AAB, инструментални тестови на емулатору и објављивање у Google Play Console.

За управљање Android SDK користите sdkmanager у Jenkinsfile-у за инсталацију потребних платформи и build-tools. Препоручује се кеширање директоријума .gradle и .android између изградњи за убрзање наредних покретања.

groovy
pipeline {
    agent { label 'linux' }
    stages {
        stage('Lint Check') {
            steps {
                sh './gradlew lint'
            }
        }
        stage('Unit Tests') {
            steps {
                sh './gradlew testDebugUnitTest'
            }
        }
        stage('Build APK') {
            steps {
                sh './gradlew assembleDebug'
            }
            post {
                success {
                    archiveArtifacts artifacts: '**/build/outputs/apk/**/*.apk'
                }
            }
        }
    }
}

Инструментални тестови на Android захтевају покренут емулатор. Jenkins подржава Android Emulator прикључак који аутоматски креира и покреће емулатор пре тестова. За физичке уређаје користите Firebase Test Lab — интеграција је доступна кроз Google Cloud SDK прикључак.

Прикључци Jenkins-а за аутоматизацију изградњи

Систем прикључака Jenkins-а је кључна предност платформе. Више од 1800 прикључака покрива све етапе CI/CD: од интеграције са системима за контролу верзија до имплементације у облачне сервисе. Сваки прикључак додаје нове кораке у пајплајн и проширује веб интерфејс додатним страницама конфигурације.

За мобилни развој обавезан је сет прикључака за управљање акредитивима: Credentials Binding за чување токена App Store Connect и сервисних налога Google Play. Xcode Integration прикључак додаје кораке изградње iOS апликација из Jenkins UI-ја.

ПрикључакНаменаПлатформа
Git IntegrationКлонирање репозиторијума, рад са гранама и Pull RequestiOS, Android
Gradle PluginПокретање Gradle задатака за Android изградњу са објављивањем извештајаAndroid
Xcode IntegrationИзградња iOS пројеката без Jenkinsfile-аiOS
Docker PipelineПокретање изградњи у Docker контејнерима са изолованим окружењемiOS, Android
Slack NotificationОбавештења о статусу изградњи у Slack каналимаiOS, Android

Прикључак Docker Pipeline омогућава покретање сваке етапе изградње у засебном контејнеру, што гарантује поновљивост окружења и елиминише проблем разлика у окружењима. За Android изградње користите слике са пред-инсталираним Android SDK-јем од Gradle заједнице.

Jenkins vs Travis CI: поређење за мобилне тимове

Избор између Jenkins-а и Travis CI зависи од величине тима, буџета и захтева за инфраструктуром. Jenkins је self-hosted решење са потпуном контролом, које захтева наменски сервер и администратора. Travis CI је облачни сервис са плаћањем по употреби, који не захтева управљање серверима.

За стартапе и мале тимове, Travis CI је пожељнији — нулти трошкови инфраструктуре, једноставна интеграција са GitHub-ом и готове изградње за iOS и Android. За Enterprise пројекте, Jenkins даје предности: сопствене ранпере на macOS, усклађеност са корпоративним сигурносним политикама и фино подешавање пајплајна кроз Jenkinsfile.

Према подацима Stack Overflow Survey 2025, Jenkins користи 42% професионалних програмера наспрам 12% за Travis CI. Међутим, Travis CI остаје популаран у Open Source заједници захваљујући бесплатном плану за јавне репозиторијуме и минималном прагу уласка.

Предности Jenkins-а у CI/CD процесима

Jenkins пружа скуп предности које га чине стандардом CI/CD за мобилни развој. Бесплатна MIT лиценца омогућава коришћење сервера без ограничења у комерцијалним пројектима, а отворени изворни код гарантује независност од продавца и могућност безбедносне ревизије.

Архитектура Master-Agent обезбеђује хоризонтално скалирање — додавање новог агента повећава пропусну моћ пајплајнова линеарно. Jenkins подржава динамичке агенте у Kubernetes-у кроз Jenkins X, што омогућава аутоматско креирање и уништавање градитеља по потреби.

Екосистем прикључака покрива све модерне алате: Docker, Kubernetes, Fastlane, SonarQube, GitLab, Bitbucket. У недостатку готовог прикључка, могуће је написати сопствено проширење на Java или користити Pipeline Shared Libraries за поновну употребу кода између пројеката.

Често постављана питања

Шта је Jenkins у мобилном развоју?

Jenkins је Open Source CI/CD сервер за аутоматизацију изградње, тестирања и испоруке iOS и Android апликација. Ради на Java, подржава дистрибуиране изградње кроз Master-Agent архитектуру и подешава се преко веб интерфејса или Jenkinsfile-а у репозиторијуму пројекта.

По чему се Jenkins разликује од других CI/CD система?

Jenkins се истиче самоуправљивом инфраструктуром и системом прикључака. За разлику од Travis CI или GitHub Actions, Jenkins захтева инсталацију на сопствени сервер, али даје потпуну контролу над окружењем изградње, безбедношћу и политикама приступа за корпоративне пројекте.

Шта је Jenkins Pipeline и како ради?

Jenkins Pipeline је дефиниција CI/CD процеса у облику Groovy кода који се чува у Jenkinsfile-у. Pipeline се састоји од стадијума (stages) и корака (steps) који описују изградњу, тестирање и имплементацију. Подржава две синтаксе: Declarative за једноставне сценарије и Scripted за сложене.

Који прикључци Jenkins-а су потребни за мобилни развој?

За iOS су обавезни Xcode Integration и Keychain Manager. За Android — Gradle Plugin и Android Emulator. За обе платформе: Git Integration, Credentials Binding, Docker Pipeline и Slack Notification за обавештења о статусу изградњи.

Како подесити Jenkins за iOS и Android изградње?

Инсталирајте Jenkins на сервер, додајте macOS агента за iOS и Linux агента за Android са инсталираним SDK. Креирајте Jenkinsfile у корену репозиторијума са описом стадијума изградње. За iOS користите Fastlane за потписивање кода, за Android — Gradle задатке са кеширањем зависности.

Резиме

  • Jenkins — Open Source CI/CD сервер на Java за аутоматизацију изградње, тестирања и испоруке мобилних апликација
  • Master-Agent архитектура обезбеђује дистрибуиране изградње на macOS за iOS и Linux за Android
  • Jenkins Pipeline описује CI/CD процес као код у Jenkinsfile-у са декларативном или скриптном Groovy синтаксом
  • Прикључци проширују функционалност — више од 1800 модула за Git, Docker, Fastlane и друге алате
  • Jenkinsfile за iOS укључује инсталацију pod-ова, изградњу у Xcode, тестове и испоруку у TestFlight кроз Fastlane
  • Jenkinsfile за Android укључује линтер, јединичне тестове, изградњу APK и тестове на емулатору
  • За стартапе се препоручује облачни Travis CI, за Enterprise пројекте — Jenkins са потпуном контролом инфраструктуре

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође