teleport/dronegen/common.go
Gus Luxton 4c9ec23822
Revert "darwin fips builds (#5866)" (#6265)
* 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
2021-04-01 10:12:53 -07:00

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(),
}
}