CI-FirstGitLab CI · GitHub Actions

Quick Start

Shiro runs inside your existing CI runner as a Docker image. No new infrastructure. No agents. Just add three files and push.

1Create your workflow file

Save as .shiro/workflows/my-workflow.json

json
{
  "name": "my-workflow",
  "steps": [
    {
      "id": "build",
      "type": "shell",
      "config": { "command": "echo Building..." }
    },
    {
      "id": "test",
      "type": "shell",
      "config": { "command": "echo Running tests..." },
      "depends_on": ["build"]
    }
  ]
}

2Add Shiro to your CI

GitLab CI.gitlab-ci.yml
stages:
  - run

shiro:
  stage: run
  image: ghcr.io/rajitk13/shiro-automation:latest
  variables:
    GITLAB_TOKEN: $GL_TOKEN
  script:
    - shiro run
        -workflow .shiro/workflows/my-workflow.json
        -state-store gitlab
  artifacts:
    paths:
      - .shiro/state/
    expire_in: 1 day
GitHub Actions.github/workflows/shiro.yml
name: Shiro

on: [push, pull_request]

jobs:
  run:
    runs-on: ubuntu-latest
    container:
      image: ghcr.io/rajitk13/shiro-automation:latest
    steps:
      - uses: actions/checkout@v4
      - run: |
          shiro run \
            -workflow .shiro/workflows/my-workflow.json \
            -state-store github
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

3Commit and push

bash
git add .shiro/ .gitlab-ci.yml   # or .github/
git commit -m "add shiro workflow"
git push

Shiro runs automatically on the next pipeline trigger. Check the CI job logs for output.

Testing locally?

Run the same workflow on your machine before pushing:

bash
# Via Docker (mirrors CI exactly)
docker run --rm -v $(pwd):/workspace -w /workspace \
  ghcr.io/rajitk13/shiro-automation:latest \
  shiro run -workflow .shiro/workflows/my-workflow.json

# Or install the binary
curl -sSL https://raw.githubusercontent.com/rajitk13/shiro-automation/master/scripts/install-auto.sh | bash
shiro run -workflow .shiro/workflows/my-workflow.json