Storm is an automation agent that helps to run workflows on remote or local machines.
- Storm vs GitHub Actions (self-hosted runner)
- Storm vs Ansible (Coming soon!)
- Storm deployment on EC2
For use in golang
go get https://github.com/overal-x/formatio.stormFor Linux and MacOS
curl -fsSL https://raw.githubusercontent.com/Overal-X/formatio.storm/main/scripts/install.sh | bashFor Windows
irm https://raw.githubusercontent.com/Overal-X/formatio.storm/main/scripts/install.ps1 | iexOr download binaries from release page
Use the reusable setup action from another repository workflow:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Storm
uses: Overal-X/storm/actions/setup-storm@v0.1.1
- name: Check Storm
run: storm versionCompatibility note:
- The legacy subpath also works:
Overal-X/storm/.github/actions/setup-storm@v0.1.1 - Prefer pinning to a tag or commit SHA instead of
@mainin production workflows.
Single-file deploy action (setup SSH + setup Storm + deploy):
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Storm deploy
uses: Overal-X/storm/actions/storm-deploy@v0.1.1
with:
ssh_key: ${{ secrets.SSH_KEY_B64 }}
github_token: ${{ secrets.GITHUB_TOKEN }}
github_repo: ${{ github.repository }}
github_ref: ${{ github.ref_name }}
inventory: .storm/inventory.yaml
workflow: .storm/workflow.yamlWith the example files
Run against remote machines from inventory
storm agent install -i ./samples/basic/inventory.yaml
storm agent run -i ./samples/basic/inventory.yaml ./samples/basic/workflow.yamlRun worklow on current host
storm run ./samples/basic/workflow.yamlgit clone git@github.com:Overal-X/formatio.storm.git
go mod tidy
go run ./cmd help