https://github.com/mdubourg001/glci Skip to content Sign up * Why GitHub? Features - + Mobile - + Actions - + Codespaces - + Packages - + Security - + Code review - + Project management - + Integrations - + GitHub Sponsors - + Customer stories- + Security - * Team * Enterprise * Explore + Explore GitHub - Learn and contribute + Topics - + Collections - + Trending - + Learning Lab - + Open source guides - Connect with others + The ReadME Project - + Events - + Community forum - + GitHub Education - + GitHub Stars program - * Marketplace * Pricing Plans - + Compare plans - + Contact Sales - + Nonprofit - + Education - [ ] [search-key] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} mdubourg001 / glci * Notifications * Star 265 * Fork 7 Test your Gitlab CI Pipelines changes locally using Docker. 265 stars 7 forks Star Notifications * Code * Issues 8 * Pull requests 3 * Actions * Projects 0 * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Security * Insights master Switch branches/tags [ ] Branches Tags Nothing to show {{ refName }} default View all branches Nothing to show {{ refName }} default View all tags 2 branches 1 tag Go to file Code Clone HTTPS GitHub CLI [https://github.com/m] Use Git or checkout with SVN using the web URL. [gh repo clone mdubou] Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Go back Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Go back Launching Xcode If nothing happens, download Xcode and try again. Go back Launching Visual Studio If nothing happens, download the GitHub extension for Visual Studio and try again. Go back Latest commit maxime.dubourg maxime.dubourg fix: not mounting project files read-only anymore + added .git to pro... ... 6510511 Feb 24, 2021 fix: not mounting project files read-only anymore + added .git to pro... ...ject files 6510511 Git stats * 27 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time ci feat: support for artifacts/dependencies Feb 19, 2021 dist fix: not mounting project files read-only anymore + added .git to pro... Feb 24, 2021 .gitignore chore: added dist file to versioning Feb 20, 2021 .gitlab-ci.yml fix: not mounting project files read-only anymore + added .git to pro... Feb 24, 2021 .nvmrc initial commit Feb 17, 2021 README.md v0.0.2 Feb 23, 2021 index.js fix: not mounting project files read-only anymore + added .git to pro... Feb 24, 2021 package.json fix: not mounting project files read-only anymore + added .git to pro... Feb 24, 2021 pre-defined.js chore: completed package.json + added rollup/babel for transforms bef... Feb 20, 2021 rollup.config.js chore: completed package.json + added rollup/babel for transforms bef... Feb 20, 2021 yarn.lock fix: not mounting project files read-only anymore + added .git to pro... Feb 24, 2021 View code README.md glci Ease GitLab CI Pipelines set-up by running your jobs locally in Docker containers. Why ? Because I did not wanted to commit, push, and wait for my jobs to run on the GitLab UI to figure I forgot to install make before running make build. Disclaimer: this is a helper tool aiming to facilite the process of setting up GitLab CI Pipelines. glci does NOT aim to replace any other tool. Installation yarn global add glci Usage At the root of your project (where your .gitlab-ci.yml is): glci Options --only-jobs [jobs] Limiting the jobs to run to the comma-separated list of jobs name given. Handy when setting up that stage-three job depending on that first-stage job artifacts. Example: glci --only-jobs=install,test:e2e # "build" and "test:unit" won't be ran here # # ----------- --------- ------------- # | install | --- | build | --- | test:unit | # ----------- --------- | ------------- # | # | ------------ # --- | test:e2e | # ------------ Cool stuff * If a .env file exists next to your .gitlab-ci.yml, variables inside it get automatically parsed and added to the containers * Most of the pre-defined environment variables normally set by GitLab CI are also set here: see pre-defined.js How does it work ? It's pretty straightforward: * it parses your .gitlab-ci.yml file (and its "includes") * it runs each job of each stage (serially) in a Docker container created on the fly using the right image * it logs the results in the console * it shares the cache and the artifacts between jobs using Docker volumes * it automatically stops and removes the containers and the volumes created Roadmap * Find a way to bind single files (not dirs) with volumes (need to figure out how) * Handle glob in cache:paths and artifacts:paths (need to figure out how) * Handle artifacts:untracked and cache:untracked (need to figure out how) * Add --env to allow defining / overriding env variables * Add --in-vagrant to run docker in Vagrant (not faster even on Mac for what I've tried) * Prevent sharing artifacts between same-stage jobs About Test your Gitlab CI Pipelines changes locally using Docker. Topics docker gitlab ci gitlab-ci jobs pipelines Resources Readme Contributors 3 * * * Languages * JavaScript 100.0% * (c) 2021 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.