Jenkins — o que é, arquitetura do sistema e configuração do servidor CI/CD

Autor: IT Sectr Publicado: 2026-04-13 Tempo de leitura: 10 min

Jenkins é um servidor CI/CD de código aberto que automatiza a criação, os testes e a entrega de aplicativos móveis. Ao contrário das soluções em nuvem, o Jenkins é implantado na própria infraestrutura e configurado por meio da interface web ou de código. De acordo com CloudBees, 2025, mais de 1.6 milhão de equipes usam Jenkins para processos de CI/CD. O sistema suporta builds distribuídos por meio da arquitetura Master-Agent e mais de 1800 plugins para integração com ferramentas de desenvolvimento.

Principais pontos

  • Jenkins — servidor CI/CD Open Source em Java para automatizar builds e a entrega de aplicativos
  • Pipeline — definição do processo de CI/CD como código no Jenkinsfile com sintaxe declarativa ou scripted
  • Master-Agent — arquitetura que distribui tarefas entre o nó mestre e os agentes para builds paralelos
  • Plugins — mais de 1800 módulos para integração com Git, Docker, Fastlane, XCTest e Gradle
  • Jenkinsfile — arquivo de configuração no repositório que define as etapas de build, testes e deploy

O que é Jenkins e por que ele é necessário no desenvolvimento mobile

Jenkins é um servidor CI/CD de código aberto escrito em Java para automatizar a criação, os testes e a entrega de software. No contexto do desenvolvimento mobile, o Jenkins permite que as equipes criem automaticamente aplicativos iOS e Android, executem testes unitários e de UI, assinem os builds e os entreguem na App Store ou no Google Play sem operações manuais.

A necessidade do Jenkins surge quando o projeto supera os builds locais e exige integrações regulares de código de vários desenvolvedores. Criar manualmente cada commit consome tempo e está sujeito a erros — o Jenkins resolve esse problema executando pipelines automáticas a cada alteração no repositório.

De acordo com o relatório JetBrains Developer Ecosystem 2025, 54% das equipes mobile usam Jenkins como plataforma CI/CD principal. O sistema suporta qualquer linguagem e plataforma graças à arquitetura de plugins — para Android estão disponíveis Gradle e SDK Manager, e para iOS, Xcode Integration e Keychain Manager.

Use Jenkins em projetos em que é necessário controle total sobre a infraestrutura de build, a personalização de cada etapa do processo de CI/CD e a integração com sistemas corporativos de segurança.

Arquitetura do Jenkins: Master, Agents e funcionamento do Pipeline

A arquitetura do Jenkins é baseada no modelo Master-Agent. O servidor Master gerencia a configuração, o agendamento de tarefas e a interface web, enquanto os agentes executam os builds de fato em máquinas dedicadas ou temporárias. Essa arquitetura permite compilar em paralelo um aplicativo iOS em um agente macOS e um aplicativo Android em um agente Linux a partir de um único servidor Master.

Master e Agent no Jenkins

O nó Master do Jenkins armazena todas as configurações, plugins e histórico de builds no diretório inicial $JENKINS_HOME. Os agentes se conectam ao Master via SSH, JNLP ou WebSocket e recebem tarefas da fila. Para o desenvolvimento mobile, recomenda-se alocar agentes macOS separados para builds iOS e agentes Linux para builds Android, com os SDKs e ferramentas instalados.

Cada agente pode ser um servidor permanente ou um contêiner Docker dinâmico. De acordo com a documentação da CloudBees, distribuir os builds por 5 agentes reduz o tempo total do pipeline de CI/CD em 70% com 10 tarefas paralelas.

Pipeline como código

Jenkins Pipeline é a definição de todo o processo de CI/CD como código, armazenado no repositório junto com o projeto. O Pipeline é descrito no Jenkinsfile e suporta duas sintaxes: Declarative (estruturada, com blocos predefinidos) e Scripted (flexível, baseada em Groovy com controle total do fluxo de execução).

A sintaxe declarativa é recomendada para a maioria dos projetos mobile, pois garante legibilidade e previsibilidade. O Scripted Pipeline é adequado para cenários complexos com estágios paralelos dinâmicos, tratamento personalizado de erros e lógica condicional baseada em variáveis de ambiente.

Jenkins Pipeline: sintaxe Declarative e Scripted

Jenkins Pipeline suporta duas sintaxes que definem a forma de descrever as etapas do processo de CI/CD. A sintaxe Declarative usa uma estrutura de blocos com as palavras-chave pipeline, stages, stage e steps, o que a torna intuitiva para novos usuários. A sintaxe Scripted é baseada em Groovy e oferece controle total sobre a execução por meio de operadores condicionais e loops.

O Pipeline declarativo cria automaticamente um Sandbox — um ambiente seguro para executar scripts Groovy. Isso limita o acesso a métodos perigosos de Java e Groovy, o que é fundamental em ambientes corporativos, onde a segurança dos pipelines é controlada pelo administrador.

Estrutura do Declarative Pipeline

O Pipeline declarativo é construído em quatro blocos principais: pipeline (bloco raiz), agent (indicação do agente), stages (sequência de estágios) e post (ações após a conclusão). Cada stage contém steps com comandos de build, e o bloco post define as ações para sucesso, falha ou status instável do build.

O bloco post é especialmente útil para projetos mobile — nele você pode configurar o envio de notificações ao Slack quando o build falha ou arquivar artefatos IPA e APK após a conclusão bem-sucedida. O Jenkins executa as ações post com garantia, mesmo que o pipeline seja interrompido manualmente.

groovy
// Declarative Pipeline para aplicação 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'
            }
        }
    }
}

O Scripted Pipeline fornece um bloco node em vez de agent e permite usar construções Groovy para ramificação dinâmica. Essa sintaxe é conveniente para pipelines em que o conjunto de estágios depende dos parâmetros do build ou dos resultados das etapas anteriores.

groovy
// Scripted Pipeline com estágios paralelos
node('macos') {
    stage('Parallel Builds') {
        parallel(
            ios: { buildIOS() },
            android: { buildAndroid() }
        )
    }
}
def buildIOS() {
    sh 'fastlane ios build'
}

Jenkinsfile: configuração de CI/CD para projetos iOS

Para projetos iOS, o Jenkinsfile requer um agente macOS com Xcode, CocoaPods ou Swift Package Manager e Fastlane instalados. Um pipeline típico inclui os estágios: instalação de dependências, build, execução de testes, assinatura de código e entrega no TestFlight ou na App Store.

Uma característica essencial dos builds iOS no Jenkins é o gerenciamento de certificados e provisioning profiles. Recomenda-se usar o Fastlane Match para obter automaticamente os certificados do repositório ou o plugin Jenkins Credentials Binding para armazenar as chaves com segurança.

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'
            }
        }
    }
}

Para Unit Tests no iOS, use xcodebuild test especificando o simulador. O Jenkins suporta a publicação de relatórios XCTest por meio do plugin JUnit — converta o .xcresult para o formato XML para incorporar os resultados dos testes no painel do build.

Jenkinsfile: configuração de CI/CD para projetos Android

Os builds Android no Jenkins são executados em agentes Linux com Java JDK, Android SDK, Gradle e emuladores instalados. O pipeline inclui os estágios: verificação com linter, testes unitários, build de APK ou AAB, testes instrumentados no emulador e publicação no Google Play Console.

Para gerenciar o Android SDK, use o sdkmanager no Jenkinsfile para instalar as plataformas e build-tools necessárias. Recomenda-se armazenar em cache os diretórios .gradle e .android entre os builds para acelerar execuções posteriores.

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'
                }
            }
        }
    }
}

Os testes instrumentados no Android exigem um emulador em execução. O Jenkins oferece suporte ao plugin Android Emulator, que cria e inicia automaticamente o emulador antes dos testes. Para dispositivos físicos, use o Firebase Test Lab — a integração está disponível por meio do plugin Google Cloud SDK.

Plugins Jenkins para automação de builds

O sistema de plugins do Jenkins é a principal vantagem da plataforma. Mais de 1800 plugins cobrem todas as etapas do CI/CD: da integração com sistemas de controle de versão ao deploy em serviços em nuvem. Cada plugin adiciona novas etapas ao pipeline e amplia a interface web com páginas adicionais de configuração.

Para o desenvolvimento mobile, é essencial um conjunto de plugins de gerenciamento de credenciais: Credentials Binding para armazenar tokens do App Store Connect e contas de serviço do Google Play. O plugin Xcode Integration adiciona etapas de build de aplicativos iOS pela UI do Jenkins.

Plugin Função Plataforma
Git Integration Clonagem do repositório, trabalho com branches e Pull Request iOS, Android
Gradle Plugin Execução de tarefas Gradle para build Android com publicação de relatórios Android
Xcode Integration Build de projetos iOS sem Jenkinsfile iOS
Docker Pipeline Execução de builds em contêineres Docker com ambiente isolado iOS, Android
Slack Notification Notificações do status dos builds nos canais do Slack iOS, Android

O plugin Docker Pipeline permite executar cada etapa do build em um contêiner separado, o que garante a reprodutibilidade do ambiente e elimina o problema de diferenças entre ambientes. Para builds Android, use imagens com o Android SDK pré-instalado da comunidade Gradle.

Jenkins vs Travis CI: comparação para equipes mobile

A escolha entre Jenkins e Travis CI depende do tamanho da equipe, do orçamento e dos requisitos de infraestrutura. Jenkins é uma solução self-hosted com controle total, que exige um servidor dedicado e um administrador. Travis CI é um serviço em nuvem com cobrança por uso, que não exige gerenciamento de servidores.

Para startups e equipes pequenas, o Travis CI é preferível — custo zero de infraestrutura, integração simples com o GitHub e builds prontos para iOS e Android. Para projetos Enterprise, o Jenkins oferece vantagens: runners próprios em macOS, conformidade com políticas corporativas de segurança e ajuste fino do pipeline por meio do Jenkinsfile.

De acordo com a Stack Overflow Survey 2025, Jenkins é usado por 42% dos desenvolvedores profissionais contra 12% que usam Travis CI. No entanto, o Travis CI continua popular na comunidade Open Source graças ao plano gratuito para repositórios públicos e ao baixo nível de entrada.

Vantagens do Jenkins em processos de CI/CD

Jenkins oferece um conjunto de vantagens que o tornam o padrão de CI/CD para o desenvolvimento mobile. A licença MIT gratuita permite usar o servidor sem restrições em projetos comerciais, e o código aberto garante independência do fornecedor e a possibilidade de auditoria de segurança.

A arquitetura Master-Agent garante escalabilidade horizontal — adicionar um novo agente aumenta a capacidade de processamento dos pipelines linearmente. O Jenkins suporta agentes dinâmicos no Kubernetes por meio do Jenkins X, o que permite criar e destruir builds automaticamente conforme necessário.

O ecossistema de plugins abrange todas as ferramentas modernas: Docker, Kubernetes, Fastlane, SonarQube, GitLab, Bitbucket. Na ausência de um plugin pronto, é possível escrever uma extensão própria em Java ou usar as Pipeline Shared Libraries para reutilizar código entre projetos.

Perguntas frequentes

O que é Jenkins no desenvolvimento mobile?

Jenkins é um servidor CI/CD Open Source para automatizar a criação, os testes e a entrega de aplicativos iOS e Android. Ele roda em Java, suporta builds distribuídos por meio da arquitetura Master-Agent e é configurado pela interface web ou pelo Jenkinsfile no repositório do projeto.

Como o Jenkins se diferencia de outros sistemas de CI/CD?

Jenkins se diferencia pela infraestrutura autogerenciada e pelo sistema de plugins. Ao contrário do Travis CI ou do GitHub Actions, o Jenkins exige instalação em um servidor próprio, mas oferece controle total sobre o ambiente de build, a segurança e as políticas de acesso para projetos corporativos.

O que é o Jenkins Pipeline e como ele funciona?

Jenkins Pipeline é a definição do processo de CI/CD como código em Groovy, armazenada no Jenkinsfile. O Pipeline é composto por estágios (stages) e etapas (steps) que descrevem o build, os testes e o deploy. Suporta duas sintaxes: Declarative para cenários simples e Scripted para os complexos.

Quais plugins do Jenkins são necessários para o desenvolvimento mobile?

Para iOS, são obrigatórios Xcode Integration e Keychain Manager. Para Android, o Gradle Plugin e o Android Emulator. Para ambas as plataformas: Git Integration, Credentials Binding, Docker Pipeline e Slack Notification para notificações do status dos builds.

Como configurar o Jenkins para builds iOS e Android?

Instale o Jenkins no servidor, adicione um agente macOS para iOS e um agente Linux para Android, com os SDKs instalados. Crie um Jenkinsfile na raiz do repositório com a descrição dos estágios de build. Para iOS, use o Fastlane para a assinatura de código; para Android, tarefas Gradle com cache de dependências.

Resumo

  • Jenkins — servidor CI/CD Open Source em Java para automatizar a criação, os testes e a entrega de aplicativos móveis
  • A arquitetura Master-Agent garante builds distribuídos em macOS para iOS e em Linux para Android
  • Jenkins Pipeline descreve o processo de CI/CD como código no Jenkinsfile com sintaxe declarativa ou scripted em Groovy
  • Plugins ampliam a funcionalidade — mais de 1800 módulos para Git, Docker, Fastlane e outras ferramentas
  • O Jenkinsfile para iOS inclui a instalação dos pods, o build no Xcode, os testes e a entrega no TestFlight por meio do Fastlane
  • O Jenkinsfile para Android inclui o linter, os testes unitários, o build do APK e os testes no emulador
  • Para startups, recomenda-se o Travis CI em nuvem; para projetos Enterprise, o Jenkins com controle total da infraestrutura

Vamos desenvolver um aplicativo móvel chave na mão

A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.

Discutir o projeto

Leia também