Giter Site home page Giter Site logo

ci-plumber's Introduction

CI Plumber

CodeFactor PyPI - Python Version PyPI PyPI - Downloads python-app DOI

A tool to create and configure all of the stages of a CI/CD pipeline.

Current integrations:

  • Gitlab
  • Gitlab pipelines
  • Azure App Service
  • Azure Image Registry
  • Azure MariaDB
  • Openshift
  • Openshift MariaDB

Full documentation is available here.

Installation

pip install ci-plumber[all]

Requirements

  • oc CLI tool
  • az CLI tool

Usage

GitLab

# Initialise the project
ci-plumber gitlab init

OpenShift

# Deploy from the current docker registry to OpenShift
ci-plumber openshift deploy

# Create a new DB and store the credentials in maria.env
ci-plumber openshift create-db

Azure

# Log in to Azure
ci-plumber azure login

# List your Azure subscriptions
ci-plumber azure list-subscriptions

# Set the subscription to use
ci-plumber azure set-default-subscription

# Create a docker registry
ci-plumber azure create-registry

# Trigger a build and push
git add .
git commit -m "Added Azure CI file"
git tag -a v1.0.0 -m "Version 1.0.0"
git push --follow-tags

# Deploy to Azure
ci-plumber azure create-app

# Create a database and store the credentials in maria.env
ci-plumber azure create-db

Developing

Installation

# Install dependencies
$ poetry install
$ poetry shell

# Install git hooks
$ pre-commit install
$ pre-commit autoupdate
$ pre-commit run --all-files

# Symlink the plugins back to the main project
$ ln -s ./plugins/example/ci_plumber_example/ ./ci_plumber_example
$ ln -s ./plugins/gitlab/ci_plumber_gitlab/ ./ci_plumber_gitlab
$ ln -s ./plugins/openshift/ci_plumber_openshift/ ./ci_plumber_openshift
$ ln -s ./plugins/azure/ci_plumber_azure/ ./ci_plumber_azure

Features

  • Runs checks on commit
    • Flake8
    • Black
    • pre-commit-hooks checks
    • mypy
    • isort
  • Installable as a script

ci-plumber's People

Contributors

pbexe avatar dependabot[bot] avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.