Skip to content

GitLab CI Pipeline

Intent

Establish standard CI for GitLab-hosted IG repositories, providing equivalent capabilities to the GitHub Actions pipeline. Essential for organisations using GitLab for private hosting or enterprise features.

Implementation Considerations

.gitlab-ci.yml

.gitlab-ci.yml
image: eclipse-temurin:17
variables:
  IG_PUBLISHER_CACHE: "$CI_PROJECT_DIR/.ig-publisher"
stages: [build, pages]
build:
  stage: build
  script:
    - apt-get update && apt-get install -y curl nodejs npm
    - npm install -g fsh-sushi@3.9.0
    - sushi .
    - ./_scripts/publisher.sh
  artifacts:
    paths: [output]
  cache:
    paths: [.ig-publisher]
pages:
  stage: pages
  dependencies: [build]
  script:
    - mv output public
  artifacts:
    paths: [public]
    expire_in: 1 week
  only:
    - merge_requests
    - main

Pages/Staging

  • Publish preview to GitLab Pages under /public
  • Cache publisher across jobs

Benefits

  • Parity with GitHub workflows
  • Works with self-hosted GitLab

Trade-offs

  • Runner configuration required
  • GitLab Pages setup may need admin access