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.
- Supported platforms
- Supported technologies and extensibility
- Requirements
- Installation
- Tutorial
- Wizard CLI
- Project directory
- For developers
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!
In order to utilize Wizard
on your local machine, the following prerequisites must be met:
brew tap scalastic/tap
brew install wizard
git clone
wizard [options] [command]
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-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
-
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.
All contributions are welcome!
Please read the contribution guidelines before submitting a pull request.