mirror of
https://github.com/gravitational/teleport
synced 2024-10-22 10:13:21 +00:00
4c9ec23822
* Revert "darwin fips builds (#5866)"
This reverts commit 32ac67db06
.
* Remove GO_BINARY references
* Re-add dronegen changes for commands/image
* make dronegen
* Update e ref
* Re-add package signing/notarization for full MacOS builds
119 lines
3.2 KiB
Go
119 lines
3.2 KiB
Go
package main
|
|
|
|
import "fmt"
|
|
|
|
var (
|
|
triggerPullRequest = trigger{
|
|
Event: triggerRef{Include: []string{"pull_request"}},
|
|
Repo: triggerRef{Include: []string{"gravitational/*"}},
|
|
}
|
|
triggerPush = trigger{
|
|
Event: triggerRef{Include: []string{"push"}, Exclude: []string{"pull_request"}},
|
|
Branch: triggerRef{Include: []string{"master", "branch/*"}},
|
|
Repo: triggerRef{Include: []string{"gravitational/*"}},
|
|
}
|
|
triggerTag = trigger{
|
|
Event: triggerRef{Include: []string{"tag"}},
|
|
Ref: triggerRef{Include: []string{"refs/tags/v*"}},
|
|
Repo: triggerRef{Include: []string{"gravitational/*"}},
|
|
}
|
|
triggerPushMasterOnly = trigger{
|
|
Event: triggerRef{Include: []string{"push"}},
|
|
Branch: triggerRef{Include: []string{"master"}},
|
|
Repo: triggerRef{Include: []string{"gravitational/teleport"}},
|
|
}
|
|
|
|
volumeDocker = volume{
|
|
Name: "dockersock",
|
|
Temp: &volumeTemp{},
|
|
}
|
|
volumeDockerTmpfs = volume{
|
|
Name: "dockertmpfs",
|
|
Temp: &volumeTemp{},
|
|
}
|
|
volumeTmpfs = volume{
|
|
Name: "tmpfs",
|
|
Temp: &volumeTemp{Medium: "memory"},
|
|
}
|
|
volumeTmpIntegration = volume{
|
|
Name: "tmp-integration",
|
|
Temp: &volumeTemp{},
|
|
}
|
|
|
|
volumeRefTmpfs = volumeRef{
|
|
Name: "tmpfs",
|
|
Path: "/tmpfs",
|
|
}
|
|
volumeRefDocker = volumeRef{
|
|
Name: "dockersock",
|
|
Path: "/var/run",
|
|
}
|
|
volumeRefDockerTmpfs = volumeRef{
|
|
Name: "dockertmpfs",
|
|
Path: "/var/lib/docker",
|
|
}
|
|
volumeRefTmpIntegration = volumeRef{
|
|
Name: "tmp-integration",
|
|
Path: "/tmp",
|
|
}
|
|
|
|
// TODO(gus): Set this from `make -C build.assets print-runtime-version` or similar rather
|
|
// than hardcoding it. Also remove the usage of RUNTIME as a pipeline-level environment variable
|
|
// (as support for these varies among Drone runners) and only set it for steps that need it.
|
|
goRuntime = value{raw: "go1.16.2"}
|
|
)
|
|
|
|
type buildType struct {
|
|
os string
|
|
arch string
|
|
fips bool
|
|
centos6 bool
|
|
}
|
|
|
|
// dockerService generates a docker:dind service
|
|
// It includes the Docker socket volume by default, plus any extra volumes passed in
|
|
func dockerService(v ...volumeRef) service {
|
|
return service{
|
|
Name: "Start Docker",
|
|
Image: "docker:dind",
|
|
Volumes: append(v, volumeRefDocker),
|
|
}
|
|
}
|
|
|
|
// dockerVolumes returns a slice of volumes
|
|
// It includes the Docker socket volume by default, plus any extra volumes passed in
|
|
func dockerVolumes(v ...volume) []volume {
|
|
return append(v, volumeDocker)
|
|
}
|
|
|
|
// dockerVolumeRefs returns a slice of volumeRefs
|
|
// It includes the Docker socket volumeRef as a default, plus any extra volumeRefs passed in
|
|
func dockerVolumeRefs(v ...volumeRef) []volumeRef {
|
|
return append(v, volumeRefDocker)
|
|
}
|
|
|
|
// releaseMakefileTarget gets the correct Makefile target for a given arch/fips/centos6 combo
|
|
func releaseMakefileTarget(b buildType) string {
|
|
makefileTarget := fmt.Sprintf("release-%s", b.arch)
|
|
if b.centos6 {
|
|
makefileTarget += "-centos6"
|
|
}
|
|
if b.fips {
|
|
makefileTarget += "-fips"
|
|
}
|
|
return makefileTarget
|
|
}
|
|
|
|
// waitForDockerStep returns a step which checks that the Docker socket is active before trying
|
|
// to run container operations
|
|
func waitForDockerStep() step {
|
|
return step{
|
|
Name: "Wait for docker",
|
|
Image: "docker",
|
|
Commands: []string{
|
|
`timeout 30s /bin/sh -c 'while [ ! -S /var/run/docker.sock ]; do sleep 1; done'`,
|
|
},
|
|
Volumes: dockerVolumeRefs(),
|
|
}
|
|
}
|