Pointer
TJRO
Turma turma-2

Treinamento especializado na plataforma GitLab — turma 2

Presencial in company · 24 h · 30/11/2026 a 03/12/2026 · Instrutor: Gustavo Costa

← Todas as turmas

Agenda

SessãoDataHorárioMódulos
s130/11/202609:00–12:00Plataforma GitLab: organização, visibilidade e papéis
s230/11/202613:00–16:00Merge requests e revisão de código
s301/12/202609:00–12:00Fundamentos de pipelines GitLab CI/CD
s401/12/202613:00–16:00GitLab Runner: tipos, executores, registro e operação; Entrega contínua: ambientes, deploys, releases e proteção de produção
s502/12/202609:00–12:00Variáveis, artefatos, cache e relatórios de teste
s602/12/202613:00–16:00Reuso de configuração: include, extends, inputs e componentes do CI/CD Catalog; Pipelines avançados: pai-filho, multiprojeto, merged results e merge trains
s703/12/202609:00–12:00Controle de execução: rules, workflow, needs e paralelismo; Compliance e auditoria: frameworks, compliance center, eventos de auditoria e evidências
s803/12/202613:00–16:00

Formulários

Presença

Registro de presença na sessão com o código informado pelo instrutor.

coleta fechada

Responder

Avaliação pré

Questionário antes do primeiro módulo (mede o conhecimento inicial).

coleta fechada

Responder

Avaliação pós

O mesmo questionário ao final da turma (mede a evolução).

coleta fechada

Responder

Satisfação

Pesquisa anônima sobre a turma, o instrutor e os laboratórios.

coleta fechada

Responder

Módulos

Plataforma GitLab: organização, visibilidade e papéis · Básico · 2 h

Objetivos

  • Criar grupo, subgrupo e projeto na hierarquia de um grupo de nível superior.
  • Configurar a visibilidade de grupo e projeto respeitando a restrição do grupo pai.
  • Atribuir papéis padrão a membros e identificar o papel efetivo herdado.
  • Distinguir as permissões dos papéis Guest, Planner, Reporter, Developer, Maintainer e Owner.

Conteúdo

TópicoTierFonte
Grupos, subgrupos (até 20 níveis de aninhamento) e projetosFreedocumentação
Visibilidade private, internal e public; visibilidade do projeto igual ou mais restritiva que a do grupo paiFreedocumentação
Visibilidade internal disponível apenas em GitLab Self-Managed e GitLab DedicatedFreedocumentação
Papéis padrão (Minimal Access, Guest, Planner, Reporter, Developer, Maintainer, Owner) e prevalência do papel mais alto na herançaFreedocumentação
Papel Security Manager (beta desde 18.11)Freedocumentação
Membros de projeto e de grupo, membros herdados e diretosFreedocumentação
Merge requests e revisão de código · Básico · 2 h

Objetivos

  • Executar o fluxo issue, branch, merge request e merge com fechamento automático da issue.
  • Configurar métodos de merge e verificações de merge (pipeline com sucesso, threads resolvidas).
  • Configurar regras de aprovação e arquivo CODEOWNERS.
  • Identificar as configurações de aprovação que implementam separação de funções.

Pré-requisitos: repositorio-git

Conteúdo

TópicoTierFonte
Padrão de fechamento (Closes, Fixes, Resolves, Implements) em commit ou descrição do MRFreedocumentação
Métodos de merge: merge commit, merge commit com histórico semilinear, fast-forward; squashFreedocumentação
Auto-merge e verificação Pipelines must succeedFreedocumentação
Aprovações opcionais no Free (papel Developer ou superior)Freedocumentação
Regras de aprovação obrigatórias e aprovações em nível de grupo e instânciaPremiumdocumentação
Code Owners: arquivo CODEOWNERS (raiz, docs/ ou .gitlab/) e aprovação obrigatória em branch protegidaPremiumdocumentação
Configurações de aprovação: impedir aprovação pelo autor (padrão), por quem adicionou commits, remover aprovações em novos commitsPremiumdocumentação
Fundamentos de pipelines GitLab CI/CD · Básico · 3 h

Objetivos

  • Criar um arquivo .gitlab-ci.yml com stages e jobs e validá-lo no pipeline editor.
  • Executar um pipeline e interpretar o log e o status de cada job.
  • Configurar execução condicional básica com when e allow_failure.
  • Diagnosticar falhas de sintaxe e de script em pipelines.

Pré-requisitos: repositorio-git

Conteúdo

TópicoTierFonte
Estrutura do .gitlab-ci.yml: palavras-chave globais (default, include, stages, variables, workflow) e de jobFreedocumentação
Stages padrão (.pre, build, test, deploy, .post); job sem stage vai para testFreedocumentação
Jobs, script, before_script, after_script, image, jobs ocultos iniciados por pontoFreedocumentação
when (on_success padrão, on_failure, always, manual, delayed, never) e allow_failureFreedocumentação
Pipeline editor e validação de configuração (CI Lint)Freedocumentação
Tipos e estados de pipelineFreedocumentação
GitLab Runner: tipos, executores, registro e operação · Intermediário · 2 h

Objetivos

  • Criar e registrar um runner com token de autenticação (prefixo glrt-).
  • Configurar tags, execução de jobs sem tag e runner protegido.
  • Distinguir runners de instância, grupo e projeto e os executores ativos e em manutenção.
  • Interpretar os status de runner (online, offline, stale, never_contacted).

Pré-requisitos: Fundamentos de pipelines GitLab CI/CD

Conteúdo

TópicoTierFonte
Runners de instância, grupo e projeto; fila de uso justo dos runners de instânciaFreedocumentação
Fluxo de criação de runner com token de autenticação glrt-; token de registro legadoFreedocumentação
Executores Kubernetes, Docker, Docker Autoscaler e Instance; SSH, Shell, Parallels, VirtualBox e Custom em modo de manutençãoFreedocumentação
Tags, Run untagged jobs, runners protegidosFreedocumentação
config.toml (/etc/gitlab-runner/ como root), concurrent e recarga automática a cada 3 segundosFreedocumentação
Status de runner: online (contato nas últimas 2 h), offline, stale (mais de 7 dias), never_contactedFreedocumentação
Entrega contínua: ambientes, deploys, releases e proteção de produção · Intermediário · 3 h

Objetivos

  • Configurar ambientes estáticos e dinâmicos com deployment tier.
  • Configurar review apps com parada automática.
  • Configurar deploy manual com resource_group e bloqueio de jobs de deploy desatualizados.
  • Configurar ambiente protegido com aprovação de deploy.
  • Criar release por pipeline e consultar a evidência da release.

Pré-requisitos: Variáveis, artefatos, cache e relatórios de teste

Conteúdo

TópicoTierFonte
environment, deployment tiers (production, staging, testing, development, other) e atribuição automática pelo nomeFreedocumentação
Review apps: ambiente dinâmico por branch, on_stop com environment:action stop, auto_stop_inFreedocumentação
resource_group, Prevent outdated deployment jobs e deploy freeze (variável CI_DEPLOY_FREEZE)Freedocumentação
Ambientes protegidosPremiumdocumentação
Aprovações de deploy; autoaprovação desabilitada por padrão para quem disparou o pipelinePremiumdocumentação
Releases com a palavra-chave release; evidência da release em JSONFreedocumentação
Artefatos de relatório incluídos na evidência da releaseUltimatedocumentação
Variáveis, artefatos, cache e relatórios de teste · Intermediário · 3 h

Objetivos

  • Configurar variáveis de CI/CD protegidas, mascaradas e ocultas em projeto e grupo.
  • Aplicar a ordem de precedência de variáveis para prever o valor usado por um job.
  • Configurar artefatos com expiração e dependências entre jobs.
  • Configurar cache com chave e política.
  • Publicar relatório de testes JUnit e cobertura de código no merge request.

Pré-requisitos: Fundamentos de pipelines GitLab CI/CD

Conteúdo

TópicoTierFonte
Variáveis no .gitlab-ci.yml e na interface (projeto, grupo, instância); variáveis predefinidasFreedocumentação
Visibilidade Visible, Masked (padrão) e Masked and hidden; requisitos de mascaramento (linha única, 8 caracteres ou mais)Freedocumentação
Variáveis protegidas (apenas branches e tags protegidas) e variáveis do tipo arquivoFreedocumentação
Precedência de variáveis e restrição de pipeline variables por papel mínimoFreedocumentação
Artefatos: paths, expire_in (padrão da instância, 30 dias), manter artefatos mais recentes, dependenciesFreedocumentação
Cache: key, fallback keys, policy pull/push; cache x artefatos; branches protegidas e não protegidas não compartilham cache por padrãoFreedocumentação
Relatórios de testes unitários JUnit (arquivo até 30 MB, total até 100 MB por job)Freedocumentação
Cobertura: palavra-chave coverage (percentual) e artifacts:reports:coverage_report (Cobertura ou JaCoCo)Freedocumentação
Reuso de configuração: include, extends, inputs e componentes do CI/CD Catalog · Avançado · 3 h

Objetivos

  • Configurar include dos tipos local, project, remote, template e component.
  • Reutilizar configuração com extends, jobs ocultos e !reference.
  • Criar um componente com spec:inputs tipados.
  • Publicar uma versão semântica do componente no CI/CD Catalog e consumi-la em outro projeto.

Pré-requisitos: Variáveis, artefatos, cache e relatórios de teste, Controle de execução: rules, workflow, needs e paralelismo

Conteúdo

TópicoTierFonte
include (component, local, project, remote, template); até 150 includes por pipeline; mesclagem com precedência do .gitlab-ci.ymlFreedocumentação
extends (até 11 níveis de herança), jobs ocultos, âncoras YAML restritas ao próprio arquivo e !referenceFreedocumentação
spec:inputs: tipos string (padrão), array, number e boolean; interpolação $[[ inputs.id ]]; input obrigatório sem defaultFreedocumentação
Inputs x variáveis de CI/CD (valor fixo na criação do pipeline x valor em tempo de execução)Freedocumentação
Projeto de componentes: diretório templates/, até 100 componentes por projeto, referência FQDN/caminho/componente@versão, ~latest e versão semântica parcialFreedocumentação
Publicação no CI/CD Catalog: projeto de catálogo (Owner), descrição, README.md e job com releaseFreedocumentação
Pipelines avançados: pai-filho, multiprojeto, merged results e merge trains · Avançado · 2 h

Objetivos

  • Configurar pipelines filhos com trigger:include e pipelines multiprojeto com trigger:project.
  • Configurar trigger:strategy para refletir o status do pipeline downstream.
  • Configurar pipelines de merged results e merge trains.
  • Configurar a allowlist do CI/CD job token para acesso entre projetos.

Pré-requisitos: Controle de execução: rules, workflow, needs e paralelismo

Conteúdo

TópicoTierFonte
Pipelines downstream: pai-filho (mesmo projeto, ref e SHA; profundidade máxima de dois níveis de filhos) e multiprojetoFreedocumentação
trigger:strategy mirror; hierarquia de até 1000 pipelines downstream por padrãoFreedocumentação
Pipelines de merge requestFreedocumentação
Pipelines de merged results (commit temporário de merge)Premiumdocumentação
Merge trains (até 20 pipelines em paralelo por merge train por padrão)Premiumdocumentação
CI/CD job token e allowlist (por padrão a allowlist contém apenas o próprio projeto)Freedocumentação
Controle de execução: rules, workflow, needs e paralelismo · Intermediário · 2 h

Objetivos

  • Configurar rules com if, changes e exists e prever a inclusão de jobs no pipeline.
  • Configurar workflow:rules para pipelines de merge request e da branch padrão.
  • Configurar dependências com needs para execução fora da ordem de stages.
  • Configurar parallel e parallel:matrix.

Pré-requisitos: Fundamentos de pipelines GitLab CI/CD

Conteúdo

TópicoTierFonte
rules: avaliação em ordem, primeira correspondência, job fora do pipeline sem correspondênciaFreedocumentação
workflow:rules e CI_PIPELINE_SOURCE == merge_request_eventFreedocumentação
needs (até 50 jobs por padrão), needs: [] e grafo acíclico dirigidoFreedocumentação
parallel (1 a 200) e parallel:matrix (até 200 permutações)Freedocumentação
interruptible e auto-cancelamento de pipelines redundantes; retry e timeoutFreedocumentação
Compliance e auditoria: frameworks, compliance center, eventos de auditoria e evidências · Intermediário · 2 h

Objetivos

  • Criar compliance framework no grupo de nível superior e aplicá-lo a projetos.
  • Consultar os relatórios do compliance center.
  • Consultar e filtrar eventos de auditoria de grupo e projeto.
  • Configurar aprovações de merge request que separam autor, committer e aprovador.

Pré-requisitos: Plataforma GitLab: organização, visibilidade e papéis

Conteúdo

TópicoTierFonte
Compliance frameworks no grupo de nível superior; até 20 frameworks por projeto; framework padrãoPremiumdocumentação
Criação de framework a partir de template (GA 19.1) com requisitos e controlesUltimatedocumentação
Compliance center: overview, status, violations, frameworks e projectsPremiumdocumentação
Eventos de sign-in com sucesso (Authentication log do usuário)Freedocumentação
Eventos de auditoria de grupo e projeto; retenção sem prazo; filtro por período de até 30 diasPremiumdocumentação
Streaming de eventos de auditoria para destinos HTTP e Google Cloud LoggingUltimatedocumentação
Separação de funções com configurações de aprovação (autor e committers)Premiumdocumentação
Evidência de release (snapshot JSON gerado na criação da release)Freedocumentação
Coleta de evidência de release em outro momento, por APIPremiumdocumentação

Laboratórios

Cada aluno recebe um subgrupo com os projetos dos exercícios; a correção é automática, pela API da plataforma GitLab.

ExercícioTítuloObjetivoTierDuração
lab-plataforma-01Estruturar grupo, subgrupo e projeto com papéisCriar a hierarquia de um time e atribuir papéis padrão a membros.Free40 min
lab-mr-01Fluxo issue, branch, merge request e mergeFechar uma issue automaticamente pelo merge de um merge request com revisão registrada.Free30 min
lab-mr-02Regra de aprovação e CODEOWNERSExigir aprovação de Code Owner para alterações em diretório crítico.Premium35 min
lab-ci-01Primeiro pipeline com stages e jobsCriar .gitlab-ci.yml com build e teste e executar o pipeline em main.Free45 min
lab-ci-02Diagnosticar pipeline quebradoCorrigir erro de sintaxe YAML e erro de script sem remover testes.Free40 min
lab-cd-01Review apps, deploy manual para produção e releaseConfigurar ambientes dinâmicos com parada, deploy controlado em produção e release por tag.Free60 min
lab-cd-02Ambiente protegido com aprovação de deployExigir aprovação antes do deploy em produção.Premium30 min
lab-ci-03Relatório de testes, cobertura e artefatosPublicar relatório JUnit, percentual de cobertura e artefato com expiração.Free50 min
lab-ci-04Variável protegida e mascaradaUsar credencial em job de branch protegida sem expor o valor no log.Free30 min
lab-ci-06Criar, publicar e consumir um componente do CI/CD CatalogTransformar um job repetido em componente versionado com inputs.Free80 min
lab-ci-07Pipeline pai-filho e multiprojetoSeparar o pipeline por componente e disparar deploy em outro projeto refletindo o status.Free45 min
lab-ci-08Merged results e merge trainIntegrar merge requests concorrentes por merge train.Premium30 min
lab-ci-05Pipelines de merge request, rules, needs e matrixControlar quando o pipeline e cada job rodam e reduzir o tempo total com DAG.Free50 min