Sign inSign up

noxway/gitwall-runner

By noxway

Updated 4 months ago

Image
0

1.7K

noxway/gitwall-runner repository overview

GitWall Runner

Self-hosted CI/CD runner for GitWall. Polls a GitWall server for pending pipeline jobs, executes them in isolated temporary directories, and reports results back.

Quick Start

Add the runner to your existing GitWall docker-compose.yml. The runner communicates with the GitWall container directly over the Docker network using the service name:

services:
  gitwall:
    image: noxway/gitwall:latest
    # ... your existing gitwall config

  runner:
    image: noxway/gitwall-runner:latest
    restart: unless-stopped
    environment:
      GITWALL_URL: http://gitwall:8080
      RUNNER_NAME: my-runner
    volumes:
      - runner-data:/data
      - /var/run/docker.sock:/var/run/docker.sock
    depends_on:
      - gitwall

volumes:
  runner-data:

After starting, approve the runner in the GitWall admin panel at /-/admin/runners.

Environment Variables

VariableDefaultDescription
GITWALL_URLhttp://gitwall:8080GitWall server URL (Docker service name)
RUNNER_NAMEhostnameDisplay name in admin UI
RUNNER_STATE_FILE/data/runner-state.jsonPath to persist the runner token
POLL_INTERVAL5sHow often to poll for new jobs

How It Works

  1. Runner generates a token on first start and registers with the GitWall server
  2. Admin approves the runner at /-/admin/runners
  3. Runner polls /api/v1/runner/poll for pending jobs
  4. Each job runs in an isolated temp directory, cleaned up after completion
  5. Logs and step results are streamed back to the server in real time

Supported Actions

GitWall Native (.gitwall/ workflows)
ActionDescription
gitwall/checkoutCheck out the repository
gitwall/setup-goSet up Go toolchain
gitwall/go-testRun go test
gitwall/setup-nodeSet up Node.js via nvm
gitwall/npm-installRun npm ci / npm install
gitwall/npm-testRun npm test script
gitwall/npm-buildRun npm build script
gitwall/npm-publishPublish to npm registry
gitwall/npxRun arbitrary npx command
gitwall/setup-pythonSet up Python / pyenv
gitwall/pip-installInstall pip requirements
gitwall/uv-syncRun uv sync
gitwall/pytestRun pytest
gitwall/pypi-publishPublish to PyPI
gitwall/python-runRun inline Python script
gitwall/setup-rustSet up Rust via rustup
gitwall/cargo-testRun cargo test
gitwall/cargo-clippyRun cargo clippy
gitwall/docker-buildxSet up Docker Buildx
gitwall/docker-loginLog in to a container registry
gitwall/docker-buildBuild a Docker image
gitwall/docker-pushPush a Docker image
gitwall/dockerhub-descriptionUpdate Docker Hub README
gitwall/upload-artifactUpload build artifacts
gitwall/download-artifactDownload artifacts from a previous job
gitwall/create-releaseCreate a GitWall release
gitwall/slack-notifySend a Slack notification
GitHub Actions Compatible

The runner also accepts GitHub Actions syntax for common actions:

actions/checkout, actions/setup-go, actions/setup-node, actions/setup-python, actions/upload-artifact, actions/download-artifact, docker/login-action, docker/setup-buildx-action, docker/build-push-action, docker/metadata-action, softprops/action-gh-release

Docker Socket

Mount /var/run/docker.sock to enable Docker build and push actions. The runner uses the host Docker daemon — no Docker-in-Docker required.

Security

  • Runner token is generated locally and stored in RUNNER_STATE_FILE
  • Each job runs in a fresh temp directory, deleted after completion
  • Secrets are masked in all log output
  • Admin approval required before the runner receives any jobs

Tag summary

Content type

Image

Digest

sha256:2bcccda25

Size

445.4 MB

Last updated

4 months ago

docker pull noxway/gitwall-runner