Skip to content

feat: support service type without repo or build#29

Merged
hailangvn merged 1 commit into
mainfrom
feat/service-no-repo
May 25, 2026
Merged

feat: support service type without repo or build#29
hailangvn merged 1 commit into
mainfrom
feat/service-no-repo

Conversation

@nilshamerlinck
Copy link
Copy Markdown
Contributor

@nilshamerlinck nilshamerlinck commented May 22, 2026

Summary

Adds support for deploying simple system-binary services (e.g. mailhog) as systemd user units without any git repository or build step. Previously, configure required a repo_url and service type required a build command; update and status would crash on such instances.

Minimal config that now works:

mailhog-foodcoop12-staging-superquinquin:
  ssh_host: foodcoop12-stag02
  type: service
  exec_start: /usr/local/bin/mailhog -smtp-bind-addr mailhog-foodcoop12-staging-superquinquin:2025 -ui-bind-addr mailhog-foodcoop12-staging-superquinquin:9025

configure — when type: service and no repo_url:

  • skips git clone, creates the instance directory directly (used as WorkingDirectory)
  • build is now optional; runs when present, silently skipped when absent

update — when type: service and no repo_url:

  • skips git pull and build entirely, goes straight to systemctl --user restart

status — when no repo_url in config:

  • skips all git commands, omits Remote / Branch lines from output

Existing service instances with repo_url + build are unaffected.

Test plan

  • configure on a no-repo service creates the unit and starts it
  • update on a no-repo service restarts the unit without git errors
  • status on a no-repo service shows Instance and Unit lines only
  • Existing repo-backed service instances still configure/update/show status correctly
  • All unit tests pass (28 passed)

…uild

Allow service instances backed by pre-installed system binaries (e.g.
mailhog) to be managed without a git repository or build step. Only
ssh_host and exec_start are required in deploy.yml.

configure: skip cloning and mkdir the instance dir when no repo_url;
           make build optional (run when present, skip when absent)
update:    skip git pull and build, go straight to service restart
status:    skip git commands and omit Remote/Branch from output

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@nilshamerlinck nilshamerlinck force-pushed the feat/service-no-repo branch from 6f8d1a1 to a9a0abf Compare May 22, 2026 11:42
@nilshamerlinck nilshamerlinck changed the title feat(configure): support service type without repo or build feat: support service type without repo or build May 22, 2026
@nilshamerlinck nilshamerlinck requested a review from hailangvn May 22, 2026 11:56
Copy link
Copy Markdown
Collaborator

@hailangvn hailangvn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thank you.

@hailangvn hailangvn merged commit c66d04d into main May 25, 2026
5 checks passed
@hailangvn hailangvn deleted the feat/service-no-repo branch May 25, 2026 01:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants