@@ -55,10 +55,8 @@ const (
5555)
5656
5757var (
58- errHeadscaleStatusCodeNotOk = errors .New ("headscale status code not ok" )
59- errInvalidHeadscaleImageFormat = errors .New ("invalid HEADSCALE_INTEGRATION_HEADSCALE_IMAGE format, expected repository:tag" )
60- errHeadscaleImageRequiredInCI = errors .New ("HEADSCALE_INTEGRATION_HEADSCALE_IMAGE must be set in CI" )
61- errInvalidPostgresImageFormat = errors .New ("invalid HEADSCALE_INTEGRATION_POSTGRES_IMAGE format, expected repository:tag" )
58+ errHeadscaleStatusCodeNotOk = errors .New ("headscale status code not ok" )
59+ errHeadscaleImageRequiredInCI = errors .New ("HEADSCALE_INTEGRATION_HEADSCALE_IMAGE must be set in CI" )
6260)
6361
6462type fileInContainer struct {
@@ -404,12 +402,12 @@ func New(
404402 pgRepo := "postgres"
405403 pgTag := "latest"
406404
407- if prebuiltImage := os .Getenv ("HEADSCALE_INTEGRATION_POSTGRES_IMAGE" ); prebuiltImage != "" {
408- repo , tag , found := strings .Cut (prebuiltImage , ":" )
409- if ! found {
410- return nil , errInvalidPostgresImageFormat
411- }
405+ repo , tag , prebuilt , err := integrationutil .PrebuiltImage ("HEADSCALE_INTEGRATION_POSTGRES_IMAGE" )
406+ if err != nil {
407+ return nil , err
408+ }
412409
410+ if prebuilt {
413411 pgRepo = repo
414412 pgTag = tag
415413 }
@@ -508,16 +506,13 @@ func New(
508506 var container * dockertest.Resource
509507
510508 // Check if a pre-built image is available via environment variable
511- prebuiltImage := os .Getenv ("HEADSCALE_INTEGRATION_HEADSCALE_IMAGE" )
512-
513- if prebuiltImage != "" {
514- log .Printf ("Using pre-built headscale image: %s" , prebuiltImage ) //nolint:gosec // G706: integration-only log of trusted env value
515- // Parse image into repository and tag
516- repo , tag , ok := strings .Cut (prebuiltImage , ":" )
517- if ! ok {
518- return nil , errInvalidHeadscaleImageFormat
519- }
509+ repo , tag , prebuilt , err := integrationutil .PrebuiltImage ("HEADSCALE_INTEGRATION_HEADSCALE_IMAGE" )
510+ if err != nil {
511+ return nil , err
512+ }
520513
514+ if prebuilt {
515+ log .Printf ("Using pre-built headscale image: %s:%s" , repo , tag ) //nolint:gosec // G706: integration-only log of trusted env value
521516 runOptions .Repository = repo
522517 runOptions .Tag = tag
523518
@@ -528,7 +523,7 @@ func New(
528523 dockertestutil .DockerAllowNetworkAdministration ,
529524 )
530525 if err != nil {
531- return nil , fmt .Errorf ("running pre-built headscale container %q: %w" , prebuiltImage , err )
526+ return nil , fmt .Errorf ("running pre-built headscale container %s:%s: %w" , repo , tag , err )
532527 }
533528 } else if util .IsCI () {
534529 return nil , errHeadscaleImageRequiredInCI
0 commit comments