golem-deployment-version

Configures deployment logical versions in the Golem Application Manifest golem.yaml.

1.5k|212|Updated Nov 24, 2023
One-click install
npx skills add https://github.com/golemcloud/golem --skill golem-deployment-version
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: golem-deployment-version
Source: https://github.com/golemcloud/golem/tree/main/golem-skills/skills/common/golem-deployment-version
Command: npx skills add https://github.com/golemcloud/golem --skill golem-deployment-version

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Deployments in Golem need a human-meaningful version label to compare environments, track what changed, and enable rollbacks, but computing that label consistently from git tags, commit hashes, or environment variables is error-prone without clear configuration guidance.

Core Features & Use Cases

  • Version Source Configuration: Set the version: field in golem.yaml as a literal string, an environment variable, or a git-derived value using tag mode or hash-only mode.
  • Git Version Tuning: Control tagPattern, commitInfo, hashFallback, allowDirty, and staticFallback to handle untagged repos, dirty working trees, and non-git checkouts.
  • Per-Environment Overrides & Uniqueness: Layer environment-specific version overrides and enforce versionCheck so re-deploying an existing version is rejected.
  • Use Case: A team tags releases as v1.2.3, deploys to a cloud environment with versionCheck: true to prevent accidental re-deploys, while allowing dirty local deploys during development.

Quick Start

Ask the AI to configure the version field in your golem.yaml so deployments derive their version from git tags matching v* with a static fallback.

Frequently Asked Questions about golem-deployment-version

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set a deployment version in golem.yaml?

Set the `version:` field in golem.yaml to a literal string, an `env:` source reading a named environment variable, or a `git:` source deriving the version from tags or commit hashes. Without a `version:` field, the deployment is unversioned.

How do I derive deploy versions from git tags in Golem?

Use the git source with a `tagPattern` glob such as "v*". On a matching tag the version is the tag itself; past the tag with `commitInfo: true` it becomes something like v1.2.3-5-gabc1234.

Can I override the deployment version per environment?

Yes, `environments.<name>.version:` partially overrides the application-wide version. Fields merge when both use the same source type, and a different source replaces the root configuration entirely.

Why does my Golem deploy fail with uncommitted changes?

The git version source rejects dirty working trees by default. Commit the changed tracked files or set `allowDirty: true`, which appends a -dirty marker; untracked files are ignored.

What does versionCheck do in a Golem environment?

Setting `deployment.versionCheck: true` on an environment rejects any deploy whose computed version already exists there. This enforces tagging a new release before deploying and defaults to false.

What happens when no git tag matches the tagPattern?

Without a fallback the deploy errors. Set `hashFallback: true` to use the short commit hash, or set `staticFallback` to a fixed string used when git cannot supply a version.