ABJ Informática
Home ADS
00:00:00
59 acessos

GitLab — Repositório, Runner e CI/CD

GitLab — Repositório, Runner e CI/CD

Plataforma DevOps completa — versionamento Git, merge requests, automação com GitLab Runner e pipelines declaradas em .gitlab-ci.yml.

O que é GitLab

Componentes da arquitetura

Instalação do GitLab Runner

Configurando uma pipeline CI/CD

Exemplo visual — fluxo GitLab CI/CD

Figura 1 — GitLab Server, Runner e pipeline do projeto abjinfo.com.br.

Boas práticas

Modelo textual — instalação runner + .gitlab-ci.yml

────────────────────────────────────────────────────────────
GITLAB RUNNER + CI/CD — ROTEIRO DE CONFIGURAÇÃO
────────────────────────────────────────────────────────────

1. CRIAR RUNNER NO GITLAB
   Projeto → Settings → CI/CD → Runners → New project runner
   SO: Windows | Tags: windows | Executor: shell

2. INSTALAR RUNNER (Windows — PowerShell admin)
   mkdir C:\GitLab-Runner
   # Baixar gitlab-runner.exe para C:\GitLab-Runner
   cd C:\GitLab-Runner
   .\gitlab-runner register
     URL:      https://gitlab.seudominio.com.br/
     Token:    [token gerado na UI]
     Tags:     windows
     Executor: shell
   .\gitlab-runner install
   .\gitlab-runner start

3. VARIÁVEIS CI/CD (Settings → CI/CD → Variables)
   SSH_HOST        (masked)
   SSH_USER        (masked)
   SSH_PASSWORD    (masked, protected)
   DEPLOY_PATH     ex.: /var/www/abjinfo.com.br
   WINSCP_PATH     opcional — caminho do WinSCP.com

4. ARQUIVO .gitlab-ci.yml (raiz do repositório)
────────────────────────────────────────────────────────────
stages:
  - validate
  - deploy

default:
  tags:
    - windows

validate_page:
  stage: validate
  script:
    - if (-not (Test-Path "index.php")) { throw "index.php nao encontrado" }
    - if (-not (Test-Path ".htaccess")) { throw ".htaccess nao encontrado" }

deploy_sftp:
  stage: deploy
  rules:
    - if: '$CI_COMMIT_BRANCH == "main"'
  script:
    - # sincronizar via WinSCP/SFTP para $env:DEPLOY_PATH
────────────────────────────────────────────────────────────

5. CHECKLIST ANTES DO PRIMEIRO DEPLOY
  [ ] Runner online (verde) com tag windows
  [ ] Variáveis preenchidas e protegidas
  [ ] Branch main protegida (MR + pipeline obrigatória)
  [ ] Teste manual: CI/CD → Run pipeline na branch test-deploy
  [ ] Deploy em main validado; rollback = redeploy commit anterior

Comandos GitLab — referência rápida

Área Comando Descrição
Git git clone https://gitlab.com/grupo/projeto.git Clonar repositório GitLab para a máquina local.
Git git remote -v Listar remotes (origin) configurados no projeto.
Git git remote add origin https://gitlab.com/grupo/projeto.git Associar o remote origin a um repositório GitLab.
Git git checkout -b feature/minha-branch Criar e entrar em uma branch de trabalho.
Git git status Ver arquivos alterados, staged e branch atual.
Git git add . Incluir alterações no stage para o próximo commit.
Git git commit -m "mensagem clara do commit" Registrar commit local com mensagem descritiva.
Git git push -u origin feature/minha-branch Enviar branch ao GitLab e definir upstream.
Git git push origin main Enviar commits da branch main (dispara pipeline se houver CI).
Git git pull origin main Atualizar a branch local com o remoto.
Git git fetch --all --prune Buscar branches remotas e remover referências obsoletas.
Git git merge main Integrar alterações de main na branch atual.
Git git tag -a v1.0.0 -m "Release 1.0.0" Criar tag anotada (útil para releases e pipelines por tag).
Git git push origin v1.0.0 Publicar tag no GitLab.
Git git log --oneline --graph -n 20 Histórico resumido de commits.
Runner gitlab-runner --version Exibir versão instalada do GitLab Runner.
Runner gitlab-runner register Registrar runner (URL do GitLab, token, tags e executor).
Runner gitlab-runner register --non-interactive --url URL --token TOKEN --executor shell --tag-list windows Registro não interativo com tags e executor definidos.
Runner gitlab-runner install Instalar o runner como serviço do sistema (Windows/Linux).
Runner gitlab-runner start Iniciar o serviço do runner.
Runner gitlab-runner stop Parar o serviço do runner.
Runner gitlab-runner restart Reiniciar o serviço do runner.
Runner gitlab-runner status Verificar se o serviço do runner está em execução.
Runner gitlab-runner verify Validar conexão dos runners registrados com o GitLab.
Runner gitlab-runner list Listar runners configurados neste host.
Runner gitlab-runner run Executar o runner em primeiro plano (debug).
Runner gitlab-runner unregister --name "nome-do-runner" Remover registro de um runner específico.
Runner gitlab-runner unregister --all-runners Remover todos os runners registrados neste host.
Runner gitlab-runner uninstall Remover o serviço do runner do sistema.
glab glab auth login Autenticar a CLI glab no GitLab (token/hostname).
glab glab auth status Verificar conta e host autenticados.
glab glab repo clone grupo/projeto Clonar projeto via glab.
glab glab repo view Abrir/ver detalhes do repositório atual.
glab glab mr create --title "Título" --description "Descrição" Abrir Merge Request a partir da branch atual.
glab glab mr list Listar Merge Requests do projeto.
glab glab mr view <iid> Ver detalhes de um Merge Request.
glab glab mr checkout <iid> Baixar e entrar na branch de um MR.
glab glab mr merge <iid> Mesclar Merge Request (respeitando regras do projeto).
glab glab mr close <iid> Fechar Merge Request sem mesclar.
glab glab ci status Status da pipeline da branch/commit atual.
glab glab ci view Abrir visualização da pipeline no terminal/browser.
glab glab ci trace <job-id> Acompanhar log (trace) de um job da pipeline.
glab glab ci run Disparar pipeline manualmente.
glab glab ci lint Validar a sintaxe do .gitlab-ci.yml.
glab glab issue list Listar issues do projeto.
glab glab issue create --title "Título" Criar issue no GitLab.
glab glab release list Listar releases publicadas.
glab glab api projects/:id/pipelines Chamar a API REST do GitLab a partir da CLI.
CI/CD echo $CI_COMMIT_BRANCH Variável: nome da branch do commit (Linux/bash).
CI/CD echo $env:CI_COMMIT_BRANCH Variável: nome da branch do commit (PowerShell/Windows).
CI/CD echo $CI_COMMIT_SHA Variável: hash completo do commit.
CI/CD echo $CI_PROJECT_DIR Variável: diretório de trabalho do job no runner.
CI/CD echo $CI_PIPELINE_ID Variável: ID da pipeline em execução.
CI/CD echo $CI_JOB_NAME Variável: nome do job atual.
CI/CD echo $CI_REGISTRY_IMAGE Variável: imagem padrão no Container Registry do projeto.
CI/CD docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY Autenticar no Container Registry do GitLab dentro do job.
CI/CD git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/grupo/projeto.git Clonar outro repo na pipeline com CI_JOB_TOKEN.

Vídeo — Pipeline CI/CD com GitLab

Live em português: versionamento, automação de entrega e integração com GitLab CI/CD.

Abrir no YouTube
← Voltar aos tópicos