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