Pular para o conteúdo
Skillpedia
Deploy e nuvem (DevOps)48 mil · #3140

gitlab-ci

Configura pipelines e 'runners' de CI/CD no GitLab. Automatiza a compilação, teste e implantação de software.

O que ela faz

Esta ferramenta ajuda a configurar e automatizar processos de entrega de software usando o GitLab CI/CD. Ela permite que você crie etapas para construir, testar e implantar seu código automaticamente.

Quando usar

  • ✓Ao configurar o sistema de entrega contínua do GitLab.
  • ✓Ao definir como o código será testado e implantado automaticamente.
  • ✓Ao gerenciar as ferramentas que executam essas tarefas automatizadas.

Exemplo do que pedir para a IA

“Configure um pipeline para construir, testar e implantar meu aplicativo Node.js na branch principal.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/gitlab-ci/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/gitlab-ci/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Você define as etapas (stages) e as tarefas (jobs) em um arquivo chamado `.gitlab-ci.yml`. Este arquivo descreve o que fazer, em que ordem e com quais ferramentas.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill gitlab-ci

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/gitlab-ci/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

GitLab CI/CD

Automatize seu pipeline de entrega de software com o sistema integrado de CI/CD do GitLab.

Quando Usar Esta Habilidade

Use esta habilidade quando:

  • Configurar pipelines de CI/CD no GitLab
  • Configurar runners do GitLab (compartilhados ou auto-hospedados)
  • Criar pipelines de implantação com múltiplos estágios
  • Implementar o GitLab Auto DevOps
  • Gerenciar variáveis e segredos de CI/CD

Pré-requisitos

  • Repositório GitLab (gitlab.com ou auto-hospedado)
  • Compreensão básica de YAML
  • Para runners auto-hospedados: servidor Linux ou cluster Kubernetes

Configuração do Pipeline

Crie .gitlab-ci.yml na raiz do repositório:

stages:
  - build
  - test
  - deploy

variables:
  NODE_VERSION: "20"

build:
  stage: build
  image: node:${NODE_VERSION}
  script:
    - npm ci
    - npm run build
  artifacts:
    paths:
      - dist/
    expire_in: 1 hour

test:
  stage: test
  image: node:${NODE_VERSION}
  script:
    - npm ci
    - npm test
  coverage: '/Coverage: \d+\.\d+%/'

deploy:
  stage: deploy
  script:
    - ./deploy.sh
  environment:
    name: production
    url: https://example.com
  only:
    - main

Configuração de Jobs

Execução Baseada em Regras

deploy:
  script: ./deploy.sh
  rules:
    - if: $CI_COMMIT_BRANCH == "main"
      when: manual
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
      when: never
    - when: on_success

Jobs Paralelos

test:
  stage: test
  parallel: 3
  script:
    - npm test -- --shard=$CI_NODE_INDEX/$CI_NODE_TOTAL

Builds em Matriz

test:
  stage: test
  parallel:
    matrix:
      - NODE_VERSION: ["18", "20", "22"]
        OS: ["alpine", "slim"]
  image: node:${NODE_VERSION}-${OS}
  script:
    - npm test

Cache

cache:
  key:
    files:
      - package-lock.json
  paths:
    - node_modules/
  policy: pull-push

build:
  cache:
    key: build-cache
    paths:
      - .cache/
    policy: pull

Artefatos

build:
  artifacts:
    paths:
      - dist/
      - coverage/
    reports:
      junit: junit.xml
      coverage_report:
        coverage_format: cobertura
        path: coverage/cobertura.xml
    expire_in: 1 week
    when: always

Ambientes e Implantações

deploy_staging:
  stage: deploy
  script:
    - deploy --env staging
  environment:
    name: staging
    url: https://staging.example.com
    on_stop: stop_staging

stop_staging:
  stage: deploy
  script:
    - undeploy --env staging
  environment:
    name: staging
    action: stop
  when: manual

Builds Docker

build_image:
  stage: build
  image: docker:24
  services:
    - docker:24-dind
  variables:
    DOCKER_TLS_CERTDIR: "/certs"
  script:
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
    - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
    - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA

Runners do GitLab

Instalar Runner

# Download and install
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
sudo apt install gitlab-runner

# Register runner
sudo gitlab-runner register \
  --url https://gitlab.com/ \
  --registration-token TOKEN \
  --executor docker \
  --docker-image alpine:latest

Configuração do Runner

# /etc/gitlab-runner/config.toml
[[runners]]
  name = "docker-runner"
  url = "https://gitlab.com/"
  token = "TOKEN"
  executor = "docker"
  [runners.docker]
    image = "alpine:latest"
    privileged = true
    volumes = ["/cache", "/var/run/docker.sock:/var/run/docker.sock"]

Tags do Runner

build:
  tags:
    - docker
    - linux
  script:
    - make build

Variáveis de CI/CD

Variáveis Protegidas

Defina em Settings > CI/CD > Variables:

  • AWS_ACCESS_KEY_ID (protegida, mascarada)
  • AWS_SECRET_ACCESS_KEY (protegida, mascarada)

Usando Variáveis

deploy:
  script:
    - aws s3 sync dist/ s3://$S3_BUCKET
  variables:
    AWS_DEFAULT_REGION: us-east-1

Include e Extend

Incluir Templates

include:
  - template: Security/SAST.gitlab-ci.yml
  - project: 'group/shared-ci'
    file: '/templates/deploy.yml'
  - local: '/ci/jobs.yml'

Estender Jobs

.base_job:
  image: node:20
  before_script:
    - npm ci

build:
  extends: .base_job
  script:
    - npm run build

test:
  extends: .base_job
  script:
    - npm test

Pipelines Multi-Projeto

trigger_downstream:
  stage: deploy
  trigger:
    project: group/downstream-project
    branch: main

…
Perguntas frequentes

O que são 'runners'?

Runners são os agentes que executam as tarefas definidas no seu pipeline. Eles podem ser configurados no GitLab ou em seus próprios servidores.

O que são 'artifacts'?

Artifacts são os arquivos gerados por uma tarefa, como o resultado da construção do seu código, que podem ser usados por outras tarefas ou baixados.

O que são 'stages'?

Stages são as fases principais do seu pipeline, como 'build' (construir), 'test' (testar) e 'deploy' (implantar). As tarefas dentro de um stage são executadas em paralelo, e os stages são executados em sequência.

Detalhes

Descrição original do autor

Configure GitLab CI/CD pipelines and runners for automated building, testing, and deployment.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3140
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas