mirror of
https://github.com/sourcegraph/sourcegraph.git
synced 2026-02-06 17:51:57 +00:00
ci: publish images list as standalone module (#16227)
This commit is contained in:
parent
712ba33f8c
commit
ccf060093a
@ -325,6 +325,12 @@
|
||||
:when: 2020-08-12 08:03:13.360476000 Z
|
||||
- - :permit
|
||||
- CC-BY-4.0
|
||||
- :who:
|
||||
- :who:
|
||||
:why: Used by caniuse-lite
|
||||
:when: 2020-09-23 12:14:34.205000000 Z
|
||||
- - :ignore
|
||||
- "./enterprise/dev/ci/images"
|
||||
- :who:
|
||||
:why: Internal module
|
||||
:versions: []
|
||||
:when: 2020-11-29 06:02:35.623296000 Z
|
||||
|
||||
@ -9,6 +9,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/hashicorp/go-multierror"
|
||||
"github.com/sourcegraph/sourcegraph/enterprise/dev/ci/images"
|
||||
"github.com/sourcegraph/sourcegraph/internal/lazyregexp"
|
||||
)
|
||||
|
||||
@ -166,3 +167,12 @@ func (c Config) isGoOnly() bool {
|
||||
func (c Config) shouldRunE2EandQA() bool {
|
||||
return c.releaseBranch || c.taggedRelease || c.isBextReleaseBranch || c.patch || c.branch == "main"
|
||||
}
|
||||
|
||||
// candidateImageTag provides the tag for a candidate image built for this Buildkite run.
|
||||
//
|
||||
// Note that the availability of this image depends on whether a candidate gets built,
|
||||
// as determined in `addDockerImages()`.
|
||||
func (c Config) candidateImageTag() string {
|
||||
buildNumber := os.Getenv("BUILDKITE_BUILD_NUMBER")
|
||||
return images.CandidateImageTag(c.commit, buildNumber)
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ import (
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/sourcegraph/sourcegraph/enterprise/dev/ci/images"
|
||||
bk "github.com/sourcegraph/sourcegraph/internal/buildkite"
|
||||
)
|
||||
|
||||
@ -256,13 +257,13 @@ func triggerE2EandQA(c Config, commonEnv map[string]string) func(*bk.Pipeline) {
|
||||
|
||||
// Set variables that indicate the tag for 'us.gcr.io/sourcegraph-dev' images built
|
||||
// from this CI run's commit, and credentials to access them.
|
||||
env["CANDIDATE_VERSION"] = candidateImageTag(c)
|
||||
env["CANDIDATE_VERSION"] = c.candidateImageTag()
|
||||
env["VAGRANT_SERVICE_ACCOUNT"] = "buildkite@sourcegraph-ci.iam.gserviceaccount.com"
|
||||
|
||||
// Test upgrades from mininum upgradeable Sourcegraph version
|
||||
env["MINIMUM_UPGRADEABLE_VERSION"] = "3.20.0"
|
||||
|
||||
env["DOCKER_CLUSTER_IMAGES_TXT"] = clusterDockerImages(SourcegraphDockerImages)
|
||||
env["DOCKER_CLUSTER_IMAGES_TXT"] = clusterDockerImages(images.SourcegraphDockerImages)
|
||||
|
||||
return func(pipeline *bk.Pipeline) {
|
||||
if !c.shouldRunE2EandQA() {
|
||||
@ -322,25 +323,25 @@ func addDockerImages(c Config, final bool) func(*bk.Pipeline) {
|
||||
switch {
|
||||
// build all images for tagged releases
|
||||
case c.taggedRelease:
|
||||
for _, dockerImage := range SourcegraphDockerImages {
|
||||
for _, dockerImage := range images.SourcegraphDockerImages {
|
||||
addDockerImage(c, dockerImage, false)(pipeline)
|
||||
}
|
||||
|
||||
// replicates `main` build but does not deploy `insiders` images
|
||||
case c.isMasterDryRun:
|
||||
for _, dockerImage := range SourcegraphDockerImages {
|
||||
for _, dockerImage := range images.SourcegraphDockerImages {
|
||||
addDockerImage(c, dockerImage, false)(pipeline)
|
||||
}
|
||||
|
||||
// deploy `insiders` images for `main`
|
||||
case c.branch == "main":
|
||||
for _, dockerImage := range SourcegraphDockerImages {
|
||||
for _, dockerImage := range images.SourcegraphDockerImages {
|
||||
addDockerImage(c, dockerImage, true)(pipeline)
|
||||
}
|
||||
|
||||
// ensure candidate images are available for testing
|
||||
case c.shouldRunE2EandQA():
|
||||
for _, dockerImage := range SourcegraphDockerImages {
|
||||
for _, dockerImage := range images.SourcegraphDockerImages {
|
||||
addDockerImage(c, dockerImage, false)(pipeline)
|
||||
}
|
||||
|
||||
@ -386,8 +387,8 @@ func addCandidateDockerImage(c Config, app string) func(*bk.Pipeline) {
|
||||
cmds = append(cmds, bk.Cmd(cmdDir+"/build.sh"))
|
||||
}
|
||||
|
||||
devImage := fmt.Sprintf("%s/%s", SourcegraphDockerDevRegistry, image)
|
||||
devTag := candidateImageTag(c)
|
||||
devImage := fmt.Sprintf("%s/%s", images.SourcegraphDockerDevRegistry, image)
|
||||
devTag := c.candidateImageTag()
|
||||
cmds = append(cmds,
|
||||
// Retag the local image for dev registry
|
||||
bk.Cmd(fmt.Sprintf("docker tag %s %s:%s", localImage, devImage, devTag)),
|
||||
@ -404,8 +405,8 @@ func addCandidateDockerImage(c Config, app string) func(*bk.Pipeline) {
|
||||
func addFinalDockerImage(c Config, app string, insiders bool) func(*bk.Pipeline) {
|
||||
return func(pipeline *bk.Pipeline) {
|
||||
image := strings.ReplaceAll(app, "/", "-")
|
||||
devImage := fmt.Sprintf("%s/%s", SourcegraphDockerDevRegistry, image)
|
||||
publishImage := fmt.Sprintf("%s/%s", SourcegraphDockerPublishRegistry, image)
|
||||
devImage := fmt.Sprintf("%s/%s", images.SourcegraphDockerDevRegistry, image)
|
||||
publishImage := fmt.Sprintf("%s/%s", images.SourcegraphDockerPublishRegistry, image)
|
||||
|
||||
var images []string
|
||||
for _, image := range []string{publishImage, devImage} {
|
||||
@ -422,7 +423,7 @@ func addFinalDockerImage(c Config, app string, insiders bool) func(*bk.Pipeline)
|
||||
}
|
||||
}
|
||||
|
||||
candidateImage := fmt.Sprintf("%s:%s", devImage, candidateImageTag(c))
|
||||
candidateImage := fmt.Sprintf("%s:%s", devImage, c.candidateImageTag())
|
||||
cmd := fmt.Sprintf("./dev/ci/docker-publish.sh %s %s", candidateImage, strings.Join(images, " "))
|
||||
|
||||
pipeline.AddStep(fmt.Sprintf(":docker: :white_check_mark: %s", app), bk.Cmd(cmd))
|
||||
|
||||
3
enterprise/dev/ci/images/go.mod
Normal file
3
enterprise/dev/ci/images/go.mod
Normal file
@ -0,0 +1,3 @@
|
||||
module github.com/sourcegraph/sourcegraph/enterprise/dev/ci/images
|
||||
|
||||
go 1.14
|
||||
@ -1,8 +1,13 @@
|
||||
package ci
|
||||
/*
|
||||
Package images describes the publishing scheme for Sourcegraph images.
|
||||
|
||||
It is published as a standalone module to enable tooling in other repositories to more
|
||||
easily use these definitions.
|
||||
*/
|
||||
package images
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -52,11 +57,10 @@ var SourcegraphDockerImages = []string{
|
||||
"minio",
|
||||
}
|
||||
|
||||
// candidateImageTag provides the tag for a candidate image built for this Buildkite run.
|
||||
// CandidateImageTag provides the tag for a candidate image built for this Buildkite run.
|
||||
//
|
||||
// Note that the availability of this image depends on whether a candidate gets built,
|
||||
// as determined in `addDockerImages()`.
|
||||
func candidateImageTag(c Config) string {
|
||||
buildNumber := os.Getenv("BUILDKITE_BUILD_NUMBER")
|
||||
return fmt.Sprintf("%s_%s_candidate", c.commit, buildNumber)
|
||||
func CandidateImageTag(commit, buildNumber string) string {
|
||||
return fmt.Sprintf("%s_%s_candidate", commit, buildNumber)
|
||||
}
|
||||
3
go.mod
3
go.mod
@ -160,6 +160,7 @@ require (
|
||||
github.com/sourcegraph/go-lsp v0.0.0-20200429204803-219e11d77f5d
|
||||
github.com/sourcegraph/gosyntect v0.0.0-20200429204402-842ed26129d0
|
||||
github.com/sourcegraph/jsonx v0.0.0-20200629203448-1a936bd500cf
|
||||
github.com/sourcegraph/sourcegraph/enterprise/dev/ci/images v0.0.0-00010101000000-000000000000
|
||||
github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e // indirect
|
||||
github.com/spaolacci/murmur3 v1.1.0 // indirect
|
||||
github.com/src-d/enry/v2 v2.1.0
|
||||
@ -230,3 +231,5 @@ replace github.com/golang/lint => golang.org/x/lint v0.0.0-20191125180803-fdd1cd
|
||||
|
||||
// See: https://github.com/ghodss/yaml/pull/65
|
||||
replace github.com/ghodss/yaml => github.com/sourcegraph/yaml v1.0.1-0.20200714132230-56936252f152
|
||||
|
||||
replace github.com/sourcegraph/sourcegraph/enterprise/dev/ci/images => ./enterprise/dev/ci/images
|
||||
|
||||
Loading…
Reference in New Issue
Block a user