Skip to content

Commit 99f780e

Browse files
feat: add support for UF2 firmwares (#109)
Co-authored-by: raphaelcoeffic <[email protected]>
1 parent cc0b28d commit 99f780e

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed

artifactory/artifactory.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ func (artifactory *Artifactory) Build(
251251
return onBuildFailure(err, build)
252252
}
253253

254-
fileName := fmt.Sprintf("%s-%s.bin", build.CommitHash, build.BuildFlagsHash)
254+
fileName := fmt.Sprintf("%s-%s", build.CommitHash, build.BuildFlagsHash)
255255
err = artifactory.ArtifactStorage.Upload(ctx, firmwareBin, fileName)
256256
if err != nil {
257257
return onBuildFailure(err, build)

artifactory/artifactory_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ func createBuildModel(
139139
if status == artifactory.BuildSuccess {
140140
build.Artifacts = append(build.Artifacts, artifactory.ArtifactModel{
141141
Slug: "firmware",
142-
Filename: "firmware.bin",
142+
Filename: "firmware",
143143
})
144144
}
145145
buildModel, err := repository.Create(build)
@@ -369,7 +369,7 @@ func TestSuccessfulBuildJobFlow(t *testing.T) {
369369
assert.Equal(t, artifactory.BuildSuccess, model2.Status)
370370
assert.Equal(t, int64(1), model2.BuildAttempts)
371371
assert.Equal(t,
372-
fmt.Sprintf("%s-%s.bin", model2.CommitHash, model2.BuildFlagsHash),
372+
fmt.Sprintf("%s-%s", model2.CommitHash, model2.BuildFlagsHash),
373373
model2.Artifacts[0].Filename,
374374
)
375375
}

firmware/podman_builder.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,19 @@ func (builder *PodmanBuilder) buildCmdArgs(
8888
return append(args, buildContainer, "./tools/build-gh.sh")
8989
}
9090

91+
func (builder *PodmanBuilder) matchBuildArtefacts(patterns ...string) ([]string, error) {
92+
var matches []string
93+
94+
for _, pattern := range patterns {
95+
found, err := filepath.Glob(filepath.Join(builder.workingDir, pattern))
96+
if err != nil {
97+
return nil, fmt.Errorf("error with pattern %s: %w", pattern, err)
98+
}
99+
matches = append(matches, found...)
100+
}
101+
return matches, nil
102+
}
103+
91104
func (builder *PodmanBuilder) Build(
92105
ctx context.Context,
93106
buildContainer string,
@@ -108,7 +121,7 @@ func (builder *PodmanBuilder) Build(
108121
return nil, fmt.Errorf("failed to build: %w", err)
109122
}
110123

111-
firmwarePaths, err := filepath.Glob(filepath.Join(builder.workingDir, "*.bin"))
124+
firmwarePaths, err := builder.matchBuildArtefacts("*.uf2", "*.bin")
112125
if err != nil || len(firmwarePaths) == 0 {
113126
return nil, fmt.Errorf("cannot find build artifact: %w", err)
114127
}

0 commit comments

Comments
 (0)