Skip to content

Commit 3fe776b

Browse files
authored
feat: adds GIT_HASH_OR_TAG runtime value (#99)
1 parent bb76916 commit 3fe776b

File tree

5 files changed

+8
-43
lines changed

5 files changed

+8
-43
lines changed

cli/pkg/release/providers/docker.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,8 @@ func (r *DockerReleaser) Release() error {
5959
container := r.project.Blueprint.Project.Container
6060
registries := r.project.Blueprint.Global.CI.Registries
6161

62-
var imageTag string
63-
if r.project.Tag != nil {
64-
imageTag = r.project.Tag.Version
65-
} else if r.config.Tag != "" {
66-
imageTag = r.config.Tag
67-
} else {
62+
imageTag := r.config.Tag
63+
if imageTag == "" {
6864
return fmt.Errorf("no image tag specified")
6965
}
7066

cli/pkg/release/providers/docker_test.go

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ func TestDockerReleaserRelease(t *testing.T) {
1919
container string,
2020
registries []string,
2121
platforms []string,
22-
tag *project.ProjectTag,
2322
) project.Project {
2423
return project.Project{
2524
Blueprint: schema.Blueprint{
@@ -39,7 +38,6 @@ func TestDockerReleaserRelease(t *testing.T) {
3938
},
4039
},
4140
},
42-
Tag: tag,
4341
}
4442
}
4543

@@ -66,7 +64,6 @@ func TestDockerReleaserRelease(t *testing.T) {
6664
"test",
6765
[]string{"test.com"},
6866
[]string{},
69-
nil,
7067
),
7168
release: newRelease(),
7269
config: DockerReleaserConfig{
@@ -82,37 +79,12 @@ func TestDockerReleaserRelease(t *testing.T) {
8279
assert.Contains(t, calls, "push test.com/test:test")
8380
},
8481
},
85-
{
86-
name: "with git tag",
87-
project: newProject(
88-
"test",
89-
[]string{"test.com"},
90-
[]string{},
91-
&project.ProjectTag{
92-
Version: "v1.0.0",
93-
},
94-
),
95-
release: newRelease(),
96-
config: DockerReleaserConfig{
97-
Tag: "test",
98-
},
99-
firing: true,
100-
force: false,
101-
runFail: false,
102-
validate: func(t *testing.T, calls []string, err error) {
103-
require.NoError(t, err)
104-
assert.Contains(t, calls, fmt.Sprintf("inspect %s:%s", CONTAINER_NAME, TAG_NAME))
105-
assert.Contains(t, calls, fmt.Sprintf("tag %s:%s test.com/test:v1.0.0", CONTAINER_NAME, TAG_NAME))
106-
assert.Contains(t, calls, "push test.com/test:v1.0.0")
107-
},
108-
},
10982
{
11083
name: "multiple platforms",
11184
project: newProject(
11285
"test",
11386
[]string{"test.com"},
11487
[]string{"linux", "windows"},
115-
nil,
11688
),
11789
release: newRelease(),
11890
config: DockerReleaserConfig{
@@ -140,7 +112,6 @@ func TestDockerReleaserRelease(t *testing.T) {
140112
"test",
141113
[]string{"test.com"},
142114
[]string{"linux", "windows"},
143-
nil,
144115
),
145116
release: schema.Release{},
146117
config: DockerReleaserConfig{},
@@ -170,7 +141,6 @@ func TestDockerReleaserRelease(t *testing.T) {
170141
"test",
171142
[]string{"test.com"},
172143
[]string{},
173-
nil,
174144
),
175145
release: newRelease(),
176146
firing: true,
@@ -189,7 +159,6 @@ func TestDockerReleaserRelease(t *testing.T) {
189159
"test",
190160
[]string{"test.com"},
191161
[]string{},
192-
nil,
193162
),
194163
release: newRelease(),
195164
firing: false,
@@ -206,7 +175,6 @@ func TestDockerReleaserRelease(t *testing.T) {
206175
"test",
207176
[]string{"test.com"},
208177
[]string{},
209-
nil,
210178
),
211179
release: newRelease(),
212180
config: DockerReleaserConfig{

foundry/api/blueprint.cue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ project: {
3333
tag: {}
3434
}
3535
config: {
36-
tag: _ @forge(name="GIT_COMMIT_HASH")
36+
tag: _ @forge(name="GIT_HASH_OR_TAG")
3737
}
3838
}
3939
}

lib/project/project/runtime.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,13 @@ func (g *GitRuntime) Load(project *Project) map[string]cue.Value {
3030
g.logger.Warn("Failed to get commit hash", "error", err)
3131
} else {
3232
data["GIT_COMMIT_HASH"] = project.ctx.CompileString(fmt.Sprintf(`"%s"`, hash))
33+
data["GIT_HASH_OR_TAG"] = project.ctx.CompileString(fmt.Sprintf(`"%s"`, hash))
3334
}
3435

3536
if project.Tag != nil {
3637
data["GIT_TAG"] = project.ctx.CompileString(fmt.Sprintf(`"%s"`, project.Tag.Full))
3738
data["GIT_TAG_VERSION"] = project.ctx.CompileString(fmt.Sprintf(`"%s"`, project.Tag.Version))
39+
data["GIT_HASH_OR_TAG"] = project.ctx.CompileString(fmt.Sprintf(`"%s"`, project.Tag.Version))
3840
} else {
3941
g.logger.Debug("No project tag found")
4042
}

tools/argocd/blueprint.cue

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@ project: {
44
release: {
55
docker: {
66
on: {
7-
//merge: {}
8-
//tag: {}
9-
always: {}
7+
merge: {}
8+
tag: {}
109
}
1110
config: {
12-
tag: _ @forge(name="GIT_COMMIT_HASH")
11+
tag: _ @forge(name="GIT_HASH_OR_TAG")
1312
}
1413
}
1514
}

0 commit comments

Comments
 (0)