Skip to content

Modules Overview

A module is a packaged, versioned collection of OrchStep tasks distributed via Git. Modules let teams share deployment patterns, operational runbooks, and infrastructure automation.

Modules are reusable workflow packages that encapsulate common automation patterns. Instead of writing the same deployment, notification, or testing steps in every project, you package them once as a module and share them across your organization.

my-module/
orchstep-module.yml # Module metadata and configuration
orchstep.yml # Module workflow (tasks and steps)
README.md # Documentation (optional)

OrchStep modules are organized into three tiers:

Maintained by the OrchStep team. These modules follow strict quality standards, have comprehensive tests, and are guaranteed to work with the latest OrchStep version.

Created and maintained by the community. These modules are reviewed for basic quality and safety but are maintained by their authors.

Generated by AI agents. These modules are scaffolded from natural language descriptions and may need refinement before production use.

Terminal window
orchstep module install github.com/your-org/ci-cd-module@v1.2.0
Terminal window
orchstep module search ci-cd
Terminal window
orchstep module list
name: my-app-pipeline
modules:
- name: ci-cd
version: "^1.2.0"
source: "github.com/your-org/ci-cd-module"
config:
registry_url: "registry.example.com"
app_name: "my-app"
replicas: 3

The orchstep-module.yml file defines module metadata and the configuration schema:

name: ci-cd
version: "1.2.0"
description: "CI/CD pipeline module with build, test, and deploy tasks"
author: "your-org"
license: "MIT"
config:
required:
- name: registry_url
type: string
description: "Docker registry URL"
- name: app_name
type: string
description: "Application name"
optional:
- name: replicas
type: integer
default: 2
description: "Number of deployment replicas"
exports:
tasks:
- build
- test
- deploy
- rollback
dependencies:
- name: docker-utils
version: "^1.0.0"
source: "github.com/orchstep-modules/docker-utils"

Modules use semantic versioning (semver):

Version ConstraintMeaning
1.2.3Exact version
^1.2.0Compatible with 1.x.x (major locked)
~1.2.0Compatible with 1.2.x (minor locked)
>=1.2.0Minimum version