Presença
Registro de presença na sessão com o código informado pelo instrutor.
coleta fechada
Remoto ao vivo · 8 h · 30/03/2027 a 01/04/2027 · Instrutor: Gustavo Costa
| Sessão | Data | Horário | Módulos |
|---|---|---|---|
| s1 | 30/03/2027 | 09:00–11:00 | Fundamentos de pipelines GitLab CI/CD; GitLab Runner: tipos, executores, registro e operação |
| s2 | 30/03/2027 | 11:00–13:00 | Pipelines avançados: pai-filho, multiprojeto, merged results e merge trains; Controle de execução: rules, workflow, needs e paralelismo |
| s3 | 01/04/2027 | 09:00–11:00 | Variáveis, artefatos, cache e relatórios de teste; Reuso de configuração: include, extends, inputs e componentes do CI/CD Catalog |
| s4 | 01/04/2027 | 11:00–13:00 | Container registry e package registry; Entrega contínua: ambientes, deploys, releases e proteção de produção; Varreduras de segurança no pipeline: SAST, segredos, dependências, contêiner e IaC |
Registro de presença na sessão com o código informado pelo instrutor.
coleta fechada
Questionário antes do primeiro módulo (mede o conhecimento inicial).
coleta fechada
O mesmo questionário ao final da turma (mede a evolução).
coleta fechada
Pesquisa anônima sobre a turma, o instrutor e os laboratórios.
coleta fechada
Pré-requisitos: repositorio-git
| Tópico | Tier | Fonte |
|---|---|---|
| Estrutura do .gitlab-ci.yml: palavras-chave globais (default, include, stages, variables, workflow) e de job | Free | documentação |
| Stages padrão (.pre, build, test, deploy, .post); job sem stage vai para test | Free | documentação |
| Jobs, script, before_script, after_script, image, jobs ocultos iniciados por ponto | Free | documentação |
| when (on_success padrão, on_failure, always, manual, delayed, never) e allow_failure | Free | documentação |
| Pipeline editor e validação de configuração (CI Lint) | Free | documentação |
| Tipos e estados de pipeline | Free | documentação |
Pré-requisitos: Fundamentos de pipelines GitLab CI/CD
| Tópico | Tier | Fonte |
|---|---|---|
| Runners de instância, grupo e projeto; fila de uso justo dos runners de instância | Free | documentação |
| Fluxo de criação de runner com token de autenticação glrt-; token de registro legado | Free | documentação |
| Executores Kubernetes, Docker, Docker Autoscaler e Instance; SSH, Shell, Parallels, VirtualBox e Custom em modo de manutenção | Free | documentação |
| Tags, Run untagged jobs, runners protegidos | Free | documentação |
| config.toml (/etc/gitlab-runner/ como root), concurrent e recarga automática a cada 3 segundos | Free | documentação |
| Status de runner: online (contato nas últimas 2 h), offline, stale (mais de 7 dias), never_contacted | Free | documentação |
Pré-requisitos: Controle de execução: rules, workflow, needs e paralelismo
| Tópico | Tier | Fonte |
|---|---|---|
| Pipelines downstream: pai-filho (mesmo projeto, ref e SHA; profundidade máxima de dois níveis de filhos) e multiprojeto | Free | documentação |
| trigger:strategy mirror; hierarquia de até 1000 pipelines downstream por padrão | Free | documentação |
| Pipelines de merge request | Free | documentação |
| Pipelines de merged results (commit temporário de merge) | Premium | documentação |
| Merge trains (até 20 pipelines em paralelo por merge train por padrão) | Premium | documentação |
| CI/CD job token e allowlist (por padrão a allowlist contém apenas o próprio projeto) | Free | documentação |
Pré-requisitos: Fundamentos de pipelines GitLab CI/CD
| Tópico | Tier | Fonte |
|---|---|---|
| rules: avaliação em ordem, primeira correspondência, job fora do pipeline sem correspondência | Free | documentação |
| workflow:rules e CI_PIPELINE_SOURCE == merge_request_event | Free | documentação |
| needs (até 50 jobs por padrão), needs: [] e grafo acíclico dirigido | Free | documentação |
| parallel (1 a 200) e parallel:matrix (até 200 permutações) | Free | documentação |
| interruptible e auto-cancelamento de pipelines redundantes; retry e timeout | Free | documentação |
Pré-requisitos: Fundamentos de pipelines GitLab CI/CD
| Tópico | Tier | Fonte |
|---|---|---|
| Variáveis no .gitlab-ci.yml e na interface (projeto, grupo, instância); variáveis predefinidas | Free | documentação |
| Visibilidade Visible, Masked (padrão) e Masked and hidden; requisitos de mascaramento (linha única, 8 caracteres ou mais) | Free | documentação |
| Variáveis protegidas (apenas branches e tags protegidas) e variáveis do tipo arquivo | Free | documentação |
| Precedência de variáveis e restrição de pipeline variables por papel mínimo | Free | documentação |
| Artefatos: paths, expire_in (padrão da instância, 30 dias), manter artefatos mais recentes, dependencies | Free | documentação |
| Cache: key, fallback keys, policy pull/push; cache x artefatos; branches protegidas e não protegidas não compartilham cache por padrão | Free | documentação |
| Relatórios de testes unitários JUnit (arquivo até 30 MB, total até 100 MB por job) | Free | documentação |
| Cobertura: palavra-chave coverage (percentual) e artifacts:reports:coverage_report (Cobertura ou JaCoCo) | Free | documentação |
Pré-requisitos: Variáveis, artefatos, cache e relatórios de teste, Controle de execução: rules, workflow, needs e paralelismo
| Tópico | Tier | Fonte |
|---|---|---|
| include (component, local, project, remote, template); até 150 includes por pipeline; mesclagem com precedência do .gitlab-ci.yml | Free | documentação |
| extends (até 11 níveis de herança), jobs ocultos, âncoras YAML restritas ao próprio arquivo e !reference | Free | documentação |
| spec:inputs: tipos string (padrão), array, number e boolean; interpolação $[[ inputs.id ]]; input obrigatório sem default | Free | documentação |
| Inputs x variáveis de CI/CD (valor fixo na criação do pipeline x valor em tempo de execução) | Free | documentaçã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 parcial | Free | documentação |
| Publicação no CI/CD Catalog: projeto de catálogo (Owner), descrição, README.md e job com release | Free | documentação |
Pré-requisitos: Variáveis, artefatos, cache e relatórios de teste
| Tópico | Tier | Fonte |
|---|---|---|
| Nome de imagem <registry>/<namespace>/<projeto>[/caminho] com até dois níveis adicionais | Free | documentação |
| Autenticação no pipeline com CI_REGISTRY_USER/CI_REGISTRY_PASSWORD ou CI_JOB_TOKEN | Free | documentação |
| Política de limpeza (name_regex e name_regex_keep) | Free | documentação |
| Package registry: formatos (Maven, npm, NuGet, PyPI, Terraform, entre outros) | Free | documentação |
| Pacotes genéricos: PUT /projects/:id/packages/generic/:nome/:versão/:arquivo | Free | documentação |
Pré-requisitos: Variáveis, artefatos, cache e relatórios de teste
| Tópico | Tier | Fonte |
|---|---|---|
| environment, deployment tiers (production, staging, testing, development, other) e atribuição automática pelo nome | Free | documentação |
| Review apps: ambiente dinâmico por branch, on_stop com environment:action stop, auto_stop_in | Free | documentação |
| resource_group, Prevent outdated deployment jobs e deploy freeze (variável CI_DEPLOY_FREEZE) | Free | documentação |
| Ambientes protegidos | Premium | documentação |
| Aprovações de deploy; autoaprovação desabilitada por padrão para quem disparou o pipeline | Premium | documentação |
| Releases com a palavra-chave release; evidência da release em JSON | Free | documentação |
| Artefatos de relatório incluídos na evidência da release | Ultimate | documentação |
Pré-requisitos: Fundamentos de pipelines GitLab CI/CD
| Tópico | Tier | Fonte |
|---|---|---|
| SAST com analisadores open source, relatório JSON; exige stage test e runner Linux com executor Docker ou Kubernetes | Free | documentação |
| GitLab Advanced SAST e resultados de SAST no merge request | Ultimate | documentação |
| Detecção de segredos no pipeline (template Jobs/Secret-Detection.gitlab-ci.yml) | Free | documentação |
| Secret push protection (GA 17.5): bloqueio do push, [skip secret push protection], push option secret_push_protection.skip_all, evento de auditoria | Ultimate | documentação |
| Dependency scanning por SBOM CycloneDX (GA 19.0; template Jobs/Dependency-Scanning.v2.gitlab-ci.yml); Gemnasium depreciado em 17.9 | Ultimate | documentação |
| Container scanning com Trivy (template Jobs/Container-Scanning.gitlab-ci.yml, variável CS_IMAGE) | Free | documentação |
| Varredura de IaC com KICS (template Jobs/SAST-IaC.gitlab-ci.yml) | Free | documentação |
Cada aluno recebe um subgrupo com os projetos dos exercícios; a correção é automática, pela API da plataforma GitLab.
| Exercício | Título | Objetivo | Tier | Duração |
|---|---|---|---|---|
| lab-ci-01 | Primeiro pipeline com stages e jobs | Criar .gitlab-ci.yml com build e teste e executar o pipeline em main. | Free | 45 min |
| lab-ci-07 | Pipeline pai-filho e multiprojeto | Separar o pipeline por componente e disparar deploy em outro projeto refletindo o status. | Free | 45 min |
| lab-ci-05 | Pipelines de merge request, rules, needs e matrix | Controlar quando o pipeline e cada job rodam e reduzir o tempo total com DAG. | Free | 50 min |
| lab-ci-04 | Variável protegida e mascarada | Usar credencial em job de branch protegida sem expor o valor no log. | Free | 30 min |
| lab-ci-03 | Relatório de testes, cobertura e artefatos | Publicar relatório JUnit, percentual de cobertura e artefato com expiração. | Free | 50 min |
| lab-registro-01 | Imagem no container registry, pacote genérico e limpeza | Publicar artefatos de build nos registries do projeto e controlar retenção. | Free | 45 min |
| lab-seg-01 | Habilitar SAST, detecção de segredos, container scanning e IaC scanning | Adicionar varreduras de segurança ao pipeline com os templates CI/CD. | Free | 50 min |