Claude-skill-registry gitlab-ci-job-configuration
Use when defining GitLab CI jobs, configuring scripts, setting up environments, or managing job dependencies. Covers job structure and execution options.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/job-configuration" ~/.claude/skills/majiayu000-claude-skill-registry-gitlab-ci-job-configuration && rm -rf "$T"
manifest:
skills/data/job-configuration/SKILL.mdsource content
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