This repository has been archived on 2025-11-20. You can view files and clone it, but cannot push or open issues or pull requests.
Files
drone-runner-podman/.drone.star
2019-10-24 16:06:57 -07:00

106 lines
2.0 KiB
Plaintext

# go version
go = "golang:1.13"
# docker repository
repo = "drone/drone-runner-docker"
def main(ctx):
return [
pipeline_linux(),
pipeline_windows("1903"),
pipeline_windows("1809"),
pipeline_manifest(),
# manifest
]
def pipeline_linux():
return {
"kind": "pipeline",
"type": "docker",
"name": "linux",
"steps": [
test,
build,
publish("arm"),
publish("arm64"),
publish("amd64"),
]
}
def pipeline_windows(version):
return {
"kind": "pipeline",
"type": "ssh",
"name": "windows_%s" % version,
"server": {
},
"platform": {
"os": "windows",
},
"steps": [
"sh scripts/ci_%s.ps1" % version,
],
}
def pipeline_manifest():
return [
"kind": "pipeline",
"type": "docker",
"name": "linux",
"steps": [
{
}
]
]
# publish creates a docker publish step.
def publish(arch):
return {
"name": "publish_%s" % arch,
"image": "plugins/docker",
"pull": "if-not-exists",
"settings": {
"auto_tag": "true",
"auto_tag_suffix": "linux-%s" % arch,
"dockerfile": "docker/Dockerfile.linux.%s" % arch,
"repo": repo,
},
"when": {
"event": [ "push", "tag" ]
}
}
# test defines a test step that downloads
# dependencies and tests the packages.
test = {
"name": "test",
"image": go,
"volumes": mounts,
"commands": [
"go test -v ./...",
],
}
# build defines a build step that compiles
# the binaries.
build = {
"name": "build",
"image": go,
"volumes": mounts,
"commands": [
"sh scripts/build.sh",
],
"when": {
"event": [ "push", "tag" ]
}
}
# mount points shared by all steps.
mounts = [{
"name": "go",
"path": "/go",
}]