Skip to content

Latest commit

 

History

History
159 lines (112 loc) · 6.12 KB

README.md

File metadata and controls

159 lines (112 loc) · 6.12 KB

Wizard

License bash Test and Code Coverage codecov GitHub release (latest by date) GitHub stars GitHub forks

Wizard - The Magical Integration Framework

Welcome to Wizard, a versatile and magical framework that empowers you to effortlessly execute uniform integration scripts both locally and on your server. It caters to the needs of both developers and CI/CD platforms, weaving a touch of magic into your workflow.

The acronym WIZARD represents its essence: Wide Integration Zone And Runner Deployment. Thanks to its unconventional and almost mystical nature, Wizard bridges the gap between developers and CI/CD platforms, enabling the seamless execution of identical integration and deployment scripts, whether on your local machine or the server.

With Wizard, developers gain the magical ability to thoroughly test their CI/CD pipeline's functionality directly on their local workstations, eliminating the need to speculate about the outcomes once their code is pushed to the integration servers.

Embrace the enchantment of Wizard to fill the void in the DevOps approach and embody the "shift-left" principle with a sprinkle of magic.


Table of Contents

Supported platforms

Compatible Platforms

Currently, Wizard is tailored for seamless use on the following platforms:

  • Your local environment (Unix-based systems)
  • Jenkins
  • GitLab-CI (WIP)

Please note that our magical integration framework may expand its compatibility with more platforms in the future. Stay tuned for updates!

Prerequisites

In order to utilize Wizard on your local machine, the following prerequisites must be met:

  • Bash version 4.4 or newer
  • Git version 2.0 or higher
  • Docker version 19.03 or later

Installation

Install with Homebrew (WIP)

brew tap scalastic/tap
brew install wizard

Install with Git

git clone

Tutorial

Wizard CLI

Usage (WIP)

wizard [options] [command]

Command options

Option Description
-h, --help Display help for command
-v, --version Display version of Wizard
-d, --debug Display debug information
-q, --quiet Do not display any output
-c, --config Specify the configuration file to use
-p, --project Specify the project directory to use
-l, --log Specify the log file to use
-t, --trace Specify the trace file to use
-e, --env Specify the environment file to use
-i, --input Specify the input file to use

Project directory

Typical directory structure

<PROJECT-ROOT> directory
├─ .shellspec                       [recommended] 
│
├─ config/
│   ├─ sequence-default.json        [default] Default configuration
│   ├─ sequence-project1.json       [specific] Your specific configuration
│              :
|
├─ coverage/                        [optional] Ignore from version control
|
├─ lib/
│   ├─ your_library1.sh
│              :
│
├─ spec/ (also <HELPERDIR>)
│   ├─ spec_helper.sh               [recommended]
│   ├─ banner[.md]                  [optional]
│   ├─ support/                     [optional]
│   │
│   ├─ bin/
│   │   ├─ your_script1_spec.sh
│   │             :
│   ├─ lib/
│   │   ├─ your_library1_spec.sh

Options file

For developers

Related projects

  • getoptions - An elegant option parser for shell scripts (full support for all POSIX shells).

  • Inline - Inline script sources.

  • ShellSpec - A full-featured BDD unit testing framework for dash, bash, ksh, zsh and all POSIX shells that provides first-class features such as code coverage, mocking, parameterized test, parallel execution and more.

  • ShellCheck - A static analysis tool for shell scripts.

  • ShellMetrics - ShellMetrics is Cyclomatic Complexity Analyzer for shell script.

  • Conventional Commits - A specification for adding human and machine readable meaning to commit messages.

  • Semantic Versioning - Semantic Versioning 2.0.0.

Contributions (WIP)

All contributions are welcome!

Please read the contribution guidelines before submitting a pull request.

License

MIT