Skip to main content

Dead simple CI/CD pipeline executor

Project description

Simple-CI - Dead simple CI/CD pipeline executor.

Simple-CI is a CI/CD pipeline executor similar to gitlab CI/CD but in local. It's triggered by a git hook after a commit and executes directives given by user in a simple script named .simple-ci.yml, placed at the root of the directory. The artifacts (logs, compiled binairies, etc) are stored in a folder at the same level that the project folder named -simple-ci.

Why simple-CI?

Automation pipelines like GitLab CI/CD are great tools for improving software development. However, the syntax can be tidious and the user relies completely on gitlab and it's runners (even though you can create your own runners). Furthermore, installing tools like gitlab or jenkins locally consumes a lot of resources and requires having them running in the background.

Simple-CI/CD solves these issues by providing a dead simple way for the user to run a CI/CD pipeline:

  1. Start simple-ci in your repository.
  2. Build your pipeline in the .simple-ci.yml file.
  3. Commit a change with git and let the pipeline execute itself.
  4. Profit!

Check the Wiki for more in-depth documentation.

Commands

  • simpleci start: Create the git hook.
  • simpleci stop: Delete git hook (The pipeline will not be executed).
  • simpleci init: Create the git hook and the .simple-ci.yml file.
  • simpleci exec: Executes the pipeline.
  • simpleci clean: Remove all artifacts files.

Simple example of .simple-ci.yml script

variables:
  GLOBAL_VAR: "last"

stages:
  - stage1
  - stage2

stage1:
  variables:
    MYVAR: "second"
  jobs:
    - job1
    - job2

stage2:
  inside_docker:
    image: ruby:2.7
    path: /tmp/
  jobs:
    - job3

job1:
  variables:
    fie_name: "new_file"
  artifacts:
    paths:
      - new_file
  script:
    - echo "This is the first job."
    - touch $file_name

job2:
  inside_docker:
    image: ubuntu
    path: /
  script:
    - echo "This is the $MYVAR job."

job3:
    script:
    - echo "This is the $GLOBAL_VAR job, that will be executed after stage1 is completed."

You will find the complete syntax documentation on the Wiki

Installation

Simple-CI is packaged in pypi.org under the name "simple-cicd" and can be installed with pip.

pip install simple-cicd
# or 
python3 -m pip install simple-cicd

Dependencies

  • bash
  • git
  • yaml (python module)

Contributing

Feel free to submit issues is you want to contribute.

Roadmap

  • Gitlab CI/CD pipeline
  • Good code quality:
    • Restructure code
    • Rewrite functions
  • Rethink file system:
    • run artifacts and log inside .simple-ci/
    • Config file (cmd interpreter, docker, etc...)
  • New keywords:
    • cache (make files or variables accessible between jobs) (0.1.0)
    • only-if (test the condition. if true -> run the job)
    • never-if (test the condition. if true -> don't run the job)
    • hooks (pre-commit, post-commit, pre-push...)
  • secrets (store variables without displaying them)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

simple_cicd-0.1.0.tar.gz (23.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

simple_cicd-0.1.0-py3-none-any.whl (23.4 kB view details)

Uploaded Python 3

File details

Details for the file simple_cicd-0.1.0.tar.gz.

File metadata

  • Download URL: simple_cicd-0.1.0.tar.gz
  • Upload date:
  • Size: 23.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.7

File hashes

Hashes for simple_cicd-0.1.0.tar.gz
Algorithm Hash digest
SHA256 364ce4536b05986c1a329c209ccdc573ced39283d1581173c1416afd9ead6277
MD5 36c9093f27570ee551d3eaac34e67270
BLAKE2b-256 fdfdbedcc367801baab01af12dcab691f6b52b98d8c4c59d8db6adf00b95411b

See more details on using hashes here.

File details

Details for the file simple_cicd-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: simple_cicd-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 23.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.7

File hashes

Hashes for simple_cicd-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 33e84cab2bfb713513e712ac9b470a177a17adafe0d05670f3c2f3384dee2e77
MD5 cabcb6d31c52d780af58001bf1322de0
BLAKE2b-256 5799a4ef0711c0aa0e877f179fd04879a454d796e37b28e414b0be2f822d2ac3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page