Skip to content

Commit cf2ab87

Browse files
h9jianggopherbot
authored andcommitted
internal/task: add steps to build and publish package extension
The test step can be skipped as it was already executed in the prerelease flow. For golang/vscode-go#3500 Change-Id: Ieea664ec28657208a93d4dbd9a6fe04ffd9da576 Reviewed-on: https://go-review.googlesource.com/c/build/+/615215 Auto-Submit: Hongxiang Jiang <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]> Reviewed-by: Hyang-Ah Hana Kim <[email protected]> LUCI-TryBot-Result: Go LUCI <[email protected]>
1 parent 8353211 commit cf2ab87

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

internal/task/releasevscodego.go

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,13 @@ func (r *ReleaseVSCodeGoTasks) createReleaseBranch(ctx *wf.TaskContext, release
306306
return nil
307307
}
308308

309+
// generatePackageExtension builds the vscode-go package extension from source.
310+
//
311+
// Uses the 'revision' parameter to determine the commit to build.
312+
// Uses the 'release' and 'prerelease' to determine the output file name.
313+
//
314+
// Returns a CloudBuild struct with information about the built package
315+
// extension in Google Cloud Storage (GCS).
309316
func (r *ReleaseVSCodeGoTasks) generatePackageExtension(ctx *wf.TaskContext, release releaseVersion, prerelease, revision string) (CloudBuild, error) {
310317
steps := func(resultURL string) []*cloudbuildpb.BuildStep {
311318
const packageScriptFmt = cloudBuildClientScriptPrefix + `
@@ -905,7 +912,13 @@ func (r *ReleaseVSCodeGoTasks) NewReleaseDefinition() *wf.Definition {
905912
release := wf.Task1(wd, "determine the release version", r.determineReleaseVersion, versionBumpStrategy)
906913
prerelease := wf.Task1(wd, "find the latest pre-release version", r.latestPrereleaseVersion, release)
907914

908-
_ = wf.Action2(wd, "await release coordinator's approval", r.approveStableRelease, release, prerelease)
915+
approved := wf.Action2(wd, "await release coordinator's approval", r.approveStableRelease, release, prerelease)
916+
917+
tag := wf.Task2(wd, "find tag for the release candidate", findVSCodeReleaseTag, release, prerelease, wf.After(approved))
918+
// Skip test result verification because it was already executed in the
919+
// prerelease flow.
920+
build := wf.Task3(wd, "generate package extension (.vsix) from release candidate tag", r.generatePackageExtension, release, wf.Const(""), tag)
921+
_ = wf.Action2(wd, "publish to vscode marketplace", r.publishPackageExtension, release, build)
909922

910923
return wd
911924
}
@@ -925,3 +938,11 @@ func (r *ReleaseVSCodeGoTasks) latestPrereleaseVersion(ctx *wf.TaskContext, rele
925938

926939
return prerelease, nil
927940
}
941+
942+
// findVSCodeReleaseTag returns the tag for the VS Code release candidate.
943+
//
944+
// It wraps the versionString function and includes an extra parameter to
945+
// facilitate execution within the release flow steps.
946+
func findVSCodeReleaseTag(_ *wf.TaskContext, release releaseVersion, prerelease string) (string, error) {
947+
return versionString(release, prerelease), nil
948+
}

0 commit comments

Comments
 (0)