Skip to main content

Shared workflows across CI/CD pipelines

Project description

CircleCI

Noos Invoke

Software development kit for sharing workflows across CI/CD pipelines.

Such a project aims to enforce parity and reproducability between local development and CI/CD workflows in remote containers (e.g. executable versions, command line calls, environment variables...) - developped with inv[oke](https://github.com/pyinvoke/invoke).

Installation

Install the package from the PyPi repository:

$ pip install noos-inv

To enable shell completion, execute the following command (e.g. zsh),

$ noosinv --print-completion-script=zsh

And copy/paste its stdout into your shell config.

# NOOSINV completion script

_complete_noosinv() {
    collection_arg=''
    if [[ "${words}" =~ "(-c|--collection) [^ ]+" ]]; then
        collection_arg=$MATCH
    fi
    reply=( $(noosinv ${=collection_arg} --complete -- ${words}) )
}

compctl -K _complete_noosinv + -f noosinv

Finally, still in your shell config, enable automatic sub shell loading:

# ENV variable sub shell loading with command "source .env"

set -a

Usage as a command line tool

The noos-inv package installs a CLI binary, for managing common CI/CD tasks.

From the terminal,

$ noosinv

Usage: noosinv [--core-opts] <subcommand> [--subcommand-opts] ...

Subcommands:

  docker.build       Build Docker image locally.
  docker.buildx      Build and push x-platform Docker image to a remote registry.
  docker.configure   Create and configure buildx builder for multi-platform.
  docker.login       Login to Docker remote registry (AWS ECR or Dockerhub).
  docker.push        Push Docker image to a remote registry.
  git.config         Setup git credentials with a Github token.
  helm.install       Provision local Helm client (Chart Museum Plugin).
  helm.lint          Check compliance of Helm charts / values.
  helm.login         Login to Helm remote registry (AWS ECR or Chart Museum).
  helm.push          Push Helm chart to a remote registry (AWS ECR or Chart Museum).
  helm.test          Test local deployment in Minikube.
  local.dotenv       Create local dotenv file.
  python.clean       Clean project from temp files / dirs.
  python.coverage    Run coverage test report.
  python.format      Auto-format source code.
  python.lint        Run python linters.
  python.package     Build project wheel distribution.
  python.release     Publish wheel distribution to PyPi.
  python.test        Run pytest with optional grouped tests.
  terraform.run      Run a plan in Terraform cloud.
  terraform.update   Update variable in Terraform cloud.

Source your environnement variables first for a seamless experience. (use command local.dotenv to create it from the provided template)

$ source .env

Development

On Mac OSX, make sure poetry has been installed and pre-configured,

$ brew install poetry

This project is shipped with a Makefile, which is ready to do basic common tasks.

$ make

help                           Display this auto-generated help message
update                         Lock and install build dependencies
clean                          Clean project from temp files / dirs
format                         Run auto-formatting linters
install                        Install build dependencies from lock file
lint                           Run python linters
test                           Run pytest with all tests
package                        Build project wheel distribution
release                        Publish wheel distribution to PyPi

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

noos_inv-0.2.1.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

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

noos_inv-0.2.1-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file noos_inv-0.2.1.tar.gz.

File metadata

  • Download URL: noos_inv-0.2.1.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.8 Linux/6.8.0-1021-aws

File hashes

Hashes for noos_inv-0.2.1.tar.gz
Algorithm Hash digest
SHA256 8a67284406ad191a9a53df020ced066396f0e671ca1ba1df36e0a3d0c03efe62
MD5 f7f7df4cf6731ba2c49074d56bea7cc5
BLAKE2b-256 2a2675feb5fdeff7408970e00e20b9a22efc29aedf97b4a423b175bfbbb21402

See more details on using hashes here.

File details

Details for the file noos_inv-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: noos_inv-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 10.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.8 Linux/6.8.0-1021-aws

File hashes

Hashes for noos_inv-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 76728ff9b850e1f8876f8428dfb31411ced8769f2def3cabc6c9d5bf235ee7e9
MD5 6ca141be5e365eb7e4153a5946507f7a
BLAKE2b-256 0e903f25959c0e5f1c858fb56b2d043b18b9101baeebff0348f1fc8ba5f7f9a5

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