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

gitlab-ci-patterns

Oferece padrões completos para pipelines de CI/CD no GitLab. Facilita a automação de testes, compilação e implantação.

O que ela faz

Esta ferramenta ajuda a criar e organizar os passos automáticos (chamados 'pipelines') para construir, testar e entregar seu código usando o GitLab CI/CD. Ela oferece exemplos prontos para diferentes tarefas.

Quando usar

  • ✓Quando você quer automatizar o processo de 'build', 'test' e 'deploy' no GitLab.
  • ✓Ao configurar pipelines que rodam em várias etapas.
  • ✓Para automatizar a implantação de aplicações em ambientes como Kubernetes.

Exemplo do que pedir para a IA

“Me ajude a criar um pipeline no GitLab CI para construir uma aplicação Node.js, rodar testes e depois fazer o deploy para um ambiente de staging.”

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-patterns/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-patterns/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta fornece modelos de código (arquivos YAML) que você pode adaptar. Esses modelos definem as etapas do pipeline, as ferramentas a serem usadas e como elas devem interagir.

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-patterns

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/gitlab-ci-patterns/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.

Padrões do GitLab CI

Padrões abrangentes de pipeline do GitLab CI/CD para testes automatizados, construção e implantação.

Não use esta habilidade quando

  • A tarefa não estiver relacionada a padrões do gitlab ci
  • Você precisar de um domínio ou ferramenta diferente fora deste escopo

Instruções

  • Clarifique objetivos, restrições e entradas necessárias.
  • Aplique as melhores práticas relevantes e valide os resultados.
  • Forneça etapas acionáveis e verificação.

Propósito

Criar pipelines eficientes do GitLab CI com organização adequada de estágios, cache e estratégias de implantação.

Use esta habilidade quando

  • Automatizar CI/CD baseado em GitLab
  • Implementar pipelines multi-estágio
  • Configurar GitLab Runners
  • Implantar no Kubernetes a partir do GitLab
  • Implementar fluxos de trabalho GitOps

Estrutura Básica do Pipeline

stages:
  - build
  - test
  - deploy

variables:
  DOCKER_DRIVER: overlay2
  DOCKER_TLS_CERTDIR: "/certs"

build:
  stage: build
  image: node:20
  script:
    - npm ci
    - npm run build
  artifacts:
    paths:
      - dist/
    expire_in: 1 hour
  cache:
    key: ${CI_COMMIT_REF_SLUG}
    paths:
      - node_modules/

test:
  stage: test
  image: node:20
  script:
    - npm ci
    - npm run lint
    - npm test
  coverage: '/Lines\s*:\s*(\d+\.\d+)%/'
  artifacts:
    reports:
      coverage_report:
        coverage_format: cobertura
        path: coverage/cobertura-coverage.xml

deploy:
  stage: deploy
  image: bitnami/kubectl:latest
  script:
    - kubectl apply -f k8s/
    - kubectl rollout status deployment/my-app
  only:
    - main
  environment:
    name: production
    url: https://app.example.com

Construção e Push de Docker

build-docker:
  stage: build
  image: docker:24
  services:
    - docker:24-dind
  before_script:
    - printf '%s' "$CI_REGISTRY_PASSWORD" | docker login --username "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY"
  script:
    - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
    - docker build -t $CI_REGISTRY_IMAGE:latest .
    - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
    - docker push $CI_REGISTRY_IMAGE:latest
  only:
    - main
    - tags

Implantação Multi-Ambiente

.deploy_template: &deploy_template
  image: bitnami/kubectl:latest
  before_script:
    - kubectl config set-cluster k8s --server="$KUBE_URL" --certificate-authority="$KUBE_CA_FILE"
    - kubectl config set-credentials admin --token="$KUBE_TOKEN"
    - kubectl config set-context default --cluster=k8s --user=admin
    - kubectl config use-context default

deploy:staging:
  <<: *deploy_template
  stage: deploy
  script:
    - kubectl apply -f k8s/ -n staging
    - kubectl rollout status deployment/my-app -n staging
  environment:
    name: staging
    url: https://staging.example.com
  only:
    - develop

deploy:production:
  <<: *deploy_template
  stage: deploy
  script:
    - kubectl apply -f k8s/ -n production
    - kubectl rollout status deployment/my-app -n production
  environment:
    name: production
    url: https://app.example.com
  when: manual
  only:
    - main

Pipeline Terraform

stages:
  - validate
  - plan
  - apply

variables:
  TF_ROOT: ${CI_PROJECT_DIR}/terraform
  TF_VERSION: "1.6.0"

before_script:
  - cd ${TF_ROOT}
  - terraform --version

validate:
  stage: validate
  image: hashicorp/terraform:${TF_VERSION}
  script:
    - terraform init -backend=false
    - terraform validate
    - terraform fmt -check

plan:
  stage: plan
  image: hashicorp/terraform:${TF_VERSION}
  script:
    - terraform init
    - terraform plan -out=tfplan
  artifacts:
    paths:
      - ${TF_ROOT}/tfplan
    expire_in: 1 day

apply:
  stage: apply
  image: hashicorp/terraform:${TF_VERSION}
  script:
    - terraform init
    - terraform apply -auto-approve tfplan
  dependencies:
    - plan
  when: manual
  only:
    - main

Verificação de Segurança

include:
  - template: Security/SAST.gitlab-ci.yml
  - template: Security/Dependency-Scanning.gitlab-ci.yml
  - template: Security/Container-Scanning.gitlab-ci.yml

trivy-scan:
  stage: test
  image: aquasec/trivy:latest
  script:
    - trivy image --exit-code 1 --severity HIGH,CRITICAL $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
  allow_failure: false

Estratégias de Cache

# Cache node_modules
build:
  cache:
    key: ${CI_COMMIT_REF_SLUG}
    paths:
      - node_modules/
    policy: pull-push

# Cache global
cache:
  key: ${CI_COMMIT_REF_SLUG}
  paths:
    - .cache/
    - vendor/

# Cache separado por job
job1:
  cache:
    key: job1-cache
    paths:
      - build/


…
Perguntas frequentes

O que é um pipeline no GitLab CI/CD?

É uma sequência de tarefas automatizadas que rodam quando você envia código novo. Ele serve para garantir que o código está funcionando corretamente antes de ir para produção.

O que são 'stages' (estágios)?

São grupos de tarefas dentro de um pipeline. Por exemplo, um estágio pode ser 'build' (construir), outro 'test' (testar) e o último 'deploy' (implantar).

Por que usar modelos prontos?

Eles economizam tempo e evitam erros comuns, pois já seguem as melhores práticas de organização e segurança para pipelines.

Detalhes

Descrição original do autor

Comprehensive GitLab CI/CD pipeline patterns for automated testing, building, and deployment.

repo: sickn33/agentic-awesome-skills

Popularidade

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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas