Compare commits

..
17 changed files with 23 additions and 32 deletions
+3 -3
View File
@@ -3,12 +3,12 @@ kind: pipeline
name: coopcloud.tech/abra
steps:
- name: make check
image: golang:1.27
image: golang:1.26
commands:
- make check
- name: xgettext-go
image: golang:1.27
image: golang:1.26
environment:
GOPRIVATE: coopcloud.tech
commands:
@@ -43,7 +43,7 @@ steps:
- tag
- name: make test
image: golang:1.27
image: golang:1.26
environment:
ABRA_DIR: /root/.abra_test
commands:
+1 -1
View File
@@ -1,5 +1,5 @@
# Build image
FROM golang:1.27-alpine AS build
FROM golang:1.26-alpine AS build
ENV GOPRIVATE=coopcloud.tech
+1 -1
View File
@@ -98,7 +98,7 @@ func GetMainAppImage(recipe recipe.Recipe) (string, error) {
}
for _, service := range config.Services {
if service.Name == "app" {
img, err := reference.ParseNormalizedNamed(formatter.RemoveSha(service.Image))
img, err := reference.ParseNormalizedNamed(service.Image)
if err != nil {
return "", err
}
+1 -1
View File
@@ -322,7 +322,7 @@ func GetImageVersions(recipe recipePkg.Recipe) (map[string]string, error) {
continue
}
img, err := reference.ParseNormalizedNamed(formatter.RemoveSha(service.Image))
img, err := reference.ParseNormalizedNamed(service.Image)
if err != nil {
return services, err
}
+1 -1
View File
@@ -130,7 +130,7 @@ interface.`),
}
for _, service := range config.Services {
img, err := reference.ParseNormalizedNamed(formatter.RemoveSha(service.Image))
img, err := reference.ParseNormalizedNamed(service.Image)
if err != nil {
log.Fatal(err)
}
+1 -1
View File
@@ -6,7 +6,7 @@ require (
coopcloud.tech/tagcmp v0.0.0-20260515102403-c26951b55977
git.coopcloud.tech/toolshed/godotenv v1.5.2-0.20250103171850-4d0ca41daa5c
github.com/AlecAivazis/survey/v2 v2.3.7
github.com/charmbracelet/bubbletea v1.3.10
github.com/charmbracelet/bubbletea/v2 v2.0.9
github.com/charmbracelet/lipgloss v1.1.0
github.com/charmbracelet/log v1.0.0
github.com/distribution/reference v0.6.0
+2 -2
View File
@@ -158,7 +158,7 @@ func GetImagesForStack(cl *dockerClient.Client, app appPkg.App) (map[string]stri
if service.Spec.TaskTemplate.ContainerSpec != nil {
imageName := service.Spec.TaskTemplate.ContainerSpec.Image
imageParsed, err := reference.ParseNormalizedNamed(formatter.RemoveSha(imageName))
imageParsed, err := reference.ParseNormalizedNamed(imageName)
if err != nil {
log.Warn(err)
continue
@@ -281,7 +281,7 @@ func GatherImagesForDeploy(cl *dockerClient.Client, app appPkg.App, compose *com
newImages := make(map[string]string)
for _, service := range compose.Services {
imageParsed, err := reference.ParseNormalizedNamed(formatter.RemoveSha(service.Image))
imageParsed, err := reference.ParseNormalizedNamed(service.Image)
if err != nil {
log.Warn(err)
continue
+1 -2
View File
@@ -34,8 +34,7 @@ func SmallSHA(hash string) string {
return hash[:8]
}
// RemoveSha remove image sha (digest suffix) from a string that are added in some docker outputs
// e.g., "image:tag@sha256:..." -> "image:tag"
// RemoveSha remove image sha from a string that are added in some docker outputs
func RemoveSha(str string) string {
return strings.Split(str, "@")[0]
}
-7
View File
@@ -6,13 +6,6 @@ import (
"github.com/stretchr/testify/assert"
)
func TestRemoveSha(t *testing.T) {
assert.Equal(t, "ubuntu:latest", RemoveSha("ubuntu:latest@sha256:1234567890abcdef"))
assert.Equal(t, "ubuntu:latest", RemoveSha("ubuntu:latest"))
assert.Equal(t, "my-repo/my-image:v1", RemoveSha("my-repo/my-image:v1@sha256:abcdef1234567890"))
assert.Equal(t, "my-repo/my-image", RemoveSha("my-repo/my-image@sha256:abcdef1234567890"))
}
func TestBoldDirtyDefault(t *testing.T) {
assert.Equal(t, "foo", BoldDirtyDefault("foo"))
}
+3 -4
View File
@@ -7,7 +7,6 @@ import (
"os"
"path"
"coopcloud.tech/abra/pkg/formatter"
"coopcloud.tech/abra/pkg/i18n"
"coopcloud.tech/abra/pkg/log"
"coopcloud.tech/abra/pkg/recipe"
@@ -322,7 +321,7 @@ func LintAllImagesTagged(recipe recipe.Recipe) (bool, error) {
return false, err
}
for _, service := range config.Services {
img, err := reference.ParseNormalizedNamed(formatter.RemoveSha(service.Image))
img, err := reference.ParseNormalizedNamed(service.Image)
if err != nil {
return false, err
}
@@ -340,7 +339,7 @@ func LintNoUnstableTags(recipe recipe.Recipe) (bool, error) {
return false, err
}
for _, service := range config.Services {
img, err := reference.ParseNormalizedNamed(formatter.RemoveSha(service.Image))
img, err := reference.ParseNormalizedNamed(service.Image)
if err != nil {
return false, err
}
@@ -367,7 +366,7 @@ func LintSemverLikeTags(recipe recipe.Recipe) (bool, error) {
return false, err
}
for _, service := range config.Services {
img, err := reference.ParseNormalizedNamed(formatter.RemoveSha(service.Image))
img, err := reference.ParseNormalizedNamed(service.Image)
if err != nil {
return false, err
}
+1 -1
View File
@@ -140,7 +140,7 @@ func (r Recipe) UpdateTag(image, tag string) (bool, error) {
continue // may be a compose.$optional.yml file
}
img, _ := reference.ParseNormalizedNamed(formatter.RemoveSha(service.Image))
img, _ := reference.ParseNormalizedNamed(service.Image)
if err != nil {
return false, err
}
+1 -1
View File
@@ -426,7 +426,7 @@ func (r Recipe) GetRecipeVersions() (RecipeVersions, []string, error) {
versionMeta := make(map[string]ServiceMeta)
for _, service := range config.Services {
img, err := reference.ParseNormalizedNamed(formatter.RemoveSha(service.Image))
img, err := reference.ParseNormalizedNamed(service.Image)
if err != nil {
log.Debug(i18n.G("failed to parse image for %s in %s: %s", service.Name, tag, err))
warnMsg = append(warnMsg, i18n.G("skipping tag %s: invalid image reference in service %s: %s", tag, service.Name, err))
+1 -1
View File
@@ -3,7 +3,7 @@ version: "3.8"
services:
app:
image: nginx:1.31.4
image: nginx:1.31.3
secrets:
- test_pass_one
- test_pass_two
+1 -1
View File
@@ -3,7 +3,7 @@ version: "3.8"
services:
app:
image: nginx:1.31.4
image: nginx:1.31.3
networks:
- proxy
deploy:
+3 -3
View File
@@ -3,16 +3,16 @@ kind: pipeline
name: coopcloud.tech/tagcmp
steps:
- name: gofmt
image: golang:1.27
image: golang:1.26
commands:
- test -z "$(gofmt -l .)"
- name: go build
image: golang:1.27
image: golang:1.26
commands:
- go build -v .
- name: go test
image: golang:1.27
image: golang:1.26
commands:
- go test . -cover
+1 -1
View File
@@ -1,4 +1,4 @@
FROM golang:1.27@sha256:eb37f58646a901dc7727cf448cae36daaefaba79de33b5058dab79aa4c04aefb
FROM golang:1.26@sha256:0d1d3a794be25f809dd2cb3160d8c73276c4056a9f8242a138e908ddeee7b6b6
ENV GOOS=linux
ENV GOARCH=arm
+1 -1
View File
@@ -1,4 +1,4 @@
FROM golang:1.27@sha256:eb37f58646a901dc7727cf448cae36daaefaba79de33b5058dab79aa4c04aefb
FROM golang:1.26@sha256:0d1d3a794be25f809dd2cb3160d8c73276c4056a9f8242a138e908ddeee7b6b6
ENV GOOS=linux
ENV GOARCH=arm64