hashicorp/packer · error

GITLAB_CI environment variable not found

Error message

GITLAB_CI environment variable not found

What it means

CI/CD environment detection for HCP Packer registry metadata. GitlabCI.Detect probes for the GITLAB_CI variable that GitLab sets automatically in its CI runners; this error means Packer was not running inside a GitLab CI pipeline, so this detector does not apply. It is normally benign — the registry simply tries other detectors — and only matters if GitLab metadata was expected, in which case verify the build actually runs in GitLab CI.

Source

Thrown at internal/hcp/registry/metadata/cicd.go:55

		if value, ok := os.LookupEnv(key); ok {
			env[key] = value
		}
	}

	env["GITHUB_WORKFLOW_URL"] = fmt.Sprintf("%s/%s/actions/runs/%s", os.Getenv("GITHUB_SERVER_URL"), os.Getenv("GITHUB_REPOSITORY"), os.Getenv("GITHUB_RUN_ID"))
	return env
}

func (g *GithubActions) Type() string {
	return "github"
}

type GitlabCI struct{}

func (g *GitlabCI) Detect() error {
	_, ok := os.LookupEnv("GITLAB_CI")
	if !ok {
		return fmt.Errorf("GITLAB_CI environment variable not found")
	}
	return nil
}

func (g *GitlabCI) Details() map[string]interface{} {
	env := make(map[string]interface{})
	keys := []string{
		"CI_PROJECT_NAME",
		"CI_PROJECT_ID",
		"CI_PROJECT_URL",
		"CI_COMMIT_SHA",
		"CI_COMMIT_REF_NAME",
		"GITLAB_USER_NAME",
		"GITLAB_USER_ID",
		"CI_PIPELINE_SOURCE",
		"CI_PIPELINE_URL",
		"CI_JOB_URL",
		"CI_SERVER_NAME",

View on GitHub (pinned to eb36e3c3e4)

Solutions

  1. Expected negative detection; try the next CI provider in the chain
  2. Run the build from a GitLab pipeline job if GitLab metadata is required
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at internal/hcp/registry/metadata/cicd.go:55 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of hashicorp/packer@eb36e3c3e4 (2026-09-05). Data as JSON: /api/errors/2b2462be3db9e556. Report an issue: GitHub.