mirror of
https://github.com/firecow/gitlab-ci-local.git
synced 2026-06-01 18:37:36 +02:00
1.8 KiB
1.8 KiB
Project: gitlab-ci-local
CLI tool to run GitLab CI pipelines locally. Written in TypeScript, built with Bun.
Build & Runtime
- Runtime: Bun (not Node.js). All scripts use
bun/bun run. Tests use vitest. - npm publish: Still uses
npm publish --provenancebecause Bun doesn't support provenance. binfield: Points todist/index.js(Node.js-compatible bundle built bybun run build:node), notsrc/index.ts. This keepsnpm install -gworking without Bun.- Standalone binaries: Built with
bun build --compilefor linux-amd64, linux-arm64, macos-x64, macos-arm64, win. - Version: Hardcoded as
0.0.0inpackage.json. CI replaces it viasedbefore build/publish. At runtime,src/index.tsreads it frompackage.jsonimport.
Testing
- Never run the full test suite (
bun run test), it takes too long. Always run targeted tests:bunx vitest run tests/test-cases/<name>/ - Timeout: Configured in
vitest.config.ts(testTimeout: 60_000). - Docker tests: Tests under
dind-*require Docker and are slow. - depcheck ignores:
depcheck,@types/bun,@types/bun-types,vitest,@vitest/coverage-v8
Schema
src/schema.jsonis fetched from upstream GitLab viabun run fetch-schema.src/schema.tspatches the schema: addsgcl*properties and strips patterns that are too strict for gitlab-ci-local (e.g., include glob wildcards, cache keys with/).- Don't strip all patterns — most are valid. Only strip specific ones that conflict with gitlab-ci-local features.
Release artifacts
- GitHub releases:
gitlab-ci-local-{os}-{arch}.tar.gz(linux/darwin) and.zip(windows), plus.ascsignatures - Debian PPA: amd64 and arm64
.debpackages, hosted on Cloudflare R2 - npm:
dist/index.jsbundle targeting Node.js