gitlab-ci-job-configuration | Skill Performance & Reviews | TopRankSkills

TopRank Skills

Home / Skills / tools / gitlab-ci-job-configuration

gitlab-ci-job-configuration

maintained by TheBushidoCollective

star 75 account_tree 10 verified_user MIT License
bolt View GitHub

name: gitlab-ci-job-configuration description: Use when defining GitLab CI jobs, configuring scripts, setting up environments, or managing job dependencies. Covers job structure and execution options. allowed-tools:

  • Read
  • Write
  • Edit
  • Bash
  • Grep
  • Glob

GitLab CI - Job Configuration

Configure GitLab CI jobs with proper scripts, environments, and execution settings.

Basic Job Structure

job_name:
  stage: test
  image: node:20-alpine
  before_script:
    - npm ci
  script:
    - npm test
  after_script:
    - echo "Cleanup tasks"
  rules:
    - if: $CI_COMMIT_BRANCH == "main"

Script Configuration

Multi-Line Scripts

build:
  script:
    - echo "Building application..."
    - npm run build
    - echo "Build complete"

Script with Exit Codes

test:
  script:
    - npm test || exit 1
    - npm run lint
  allow_failure: false

Environment Configuration

deploy:production:
  stage: deploy
  script:
    - ./deploy.sh
  environment:
    name: production
    url: https://example.com
    on_stop: stop:production
  rules:
    - if: $CI_COMMIT_BRANCH == "main"
      when: manual

stop:production:
  stage: deploy
  script:
    - ./teardown.sh
  environment:
    name: production
    action: stop
  when: manual

Job Rules

Conditional Execution

job:
  rules:
    - if: $CI_COMMIT_BRANCH == "main"
      when: always
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
      when: on_success
    - when: never

Changes-Based Rules

test:frontend:
  rules:
    - changes:
        - "src/frontend/**/*"
        - "package.json"

Exists-Based Rules

docker:build:
  rules:
    - exists:
        - Dockerfile

Job Dependencies

Using Dependencies

build:
  stage: build
  script: npm run build
  artifacts:
    paths:
      - dist/

test:
  stage: test
  dependencies:
    - build
  script: npm test

Using Needs (DAG)

test:unit:
  needs:
    - job: build
      artifacts: true
  script: npm run test:unit

Parallel Jobs

Matrix Jobs

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

Simple Parallel

test:
  parallel: 5
  script: npm run test:shard

Resource Configuration

heavy_job:
  tags:
    - high-memory
  resource_group: deploy
  timeout: 2h
  retry:
    max: 2
    when:
      - runner_system_failure
      - stuck_or_timeout_failure

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!

Skill Details

GitHub Stars 75
GitHub Forks 10
Created Jan 2026
Last Updated 4个月前
tools tools automation tools

Related Skills

planning-with-files
chevron_right
agent-browser
chevron_right
specs-gen
chevron_right
building-agents
chevron_right
pr

pr

MoonshotAI
star 6.1k
chevron_right

Build your own?

Join 12,000+ developers contributing to the Claude ecosystem.