Skip to content
This repository has been archived by the owner on Jun 21, 2020. It is now read-only.

Commit

Permalink
Merge pull request #24 from drone-plugins/improve-config
Browse files Browse the repository at this point in the history
Replace jsonnet by starlark
  • Loading branch information
tboerger committed Sep 16, 2019
2 parents 3f3a5ad + 2fafb6e commit 2088bcc
Show file tree
Hide file tree
Showing 10 changed files with 390 additions and 867 deletions.
14 changes: 0 additions & 14 deletions .drone.jsonnet

This file was deleted.

371 changes: 371 additions & 0 deletions .drone.starlark
Original file line number Diff line number Diff line change
@@ -0,0 +1,371 @@
def main(ctx):
before = testing()

stages = [
linux('amd64'),
linux('arm64'),
linux('arm'),
windows('1903'),
windows('1809'),
]

after = manifest() + gitter()

for b in before:
for s in stages:
s['depends_on'].append(b['name'])

for s in stages:
for a in after:
a['depends_on'].append(s['name'])

return before + stages + after

def testing():
return [{
'kind': 'pipeline',
'type': 'docker',
'name': 'testing',
'platform': {
'os': 'linux',
'arch': 'amd64',
},
'steps': [
{
'name': 'vet',
'image': 'golang:1.12',
'pull': 'always',
'commands': [
'go vet ./...'
],
'volumes': [
{
'name': 'gopath',
'path': '/go'
}
]
},
{
'name': 'test',
'image': 'golang:1.12',
'pull': 'always',
'commands': [
'go test -cover ./...'
],
'volumes': [
{
'name': 'gopath',
'path': '/go'
}
]
}
],
'volumes': [
{
'name': 'gopath',
'temp': {}
}
],
'trigger': {
'ref': [
'refs/heads/master',
'refs/tags/**',
'refs/pull/**'
]
}
}]

def linux(arch):
return {
'kind': 'pipeline',
'type': 'docker',
'name': 'linux-%s' % arch,
'platform': {
'os': 'linux',
'arch': arch,
},
'steps': [
{
'name': 'build-push',
'image': 'golang:1.12',
'pull': 'always',
'environment': {
'CGO_ENABLED': '0'
},
'commands': [
'go build -v -ldflags "-X main.version=${DRONE_COMMIT_SHA:0:8}" -a -tags netgo -o release/linux/%s/drone-bintray' % arch
],
'when': {
'event': {
'exclude': [
'tag'
]
}
}
},
{
'name': 'build-tag',
'image': 'golang:1.12',
'pull': 'always',
'environment': {
'CGO_ENABLED': '0'
},
'commands': [
'go build -v -ldflags "-X main.version=${DRONE_TAG##v}" -a -tags netgo -o release/linux/%s/drone-bintray' % arch
],
'when': {
'event': [
'tag'
]
}
},
{
'name': 'executable',
'image': 'golang:1.12',
'pull': 'always',
'commands': [
'./release/linux/%s/drone-bintray --help' % arch
]
},
{
'name': 'dryrun',
'image': 'plugins/docker',
'pull': 'always',
'settings': {
'dry_run': True,
'tags': 'linux-%s' % arch,
'dockerfile': 'docker/Dockerfile.linux.%s' % arch,
'repo': 'plugins/bintray',
'username': {
'from_secret': 'docker_username'
},
'password': {
'from_secret': 'docker_password'
}
},
'when': {
'event': [
'pull_request'
]
}
},
{
'name': 'publish',
'image': 'plugins/docker',
'pull': 'always',
'settings': {
'auto_tag': True,
'auto_tag_suffix': 'linux-%s' % arch,
'dockerfile': 'docker/Dockerfile.linux.%s' % arch,
'repo': 'plugins/bintray',
'username': {
'from_secret': 'docker_username'
},
'password': {
'from_secret': 'docker_password'
}
},
'when': {
'event': {
'exclude': [
'pull_request'
]
}
}
}
],
'depends_on': [],
'trigger': {
'ref': [
'refs/heads/master',
'refs/tags/**',
'refs/pull/**'
]
}
}

def windows(version):
return {
'kind': 'pipeline',
'type': 'ssh',
'name': 'windows-%s' % version,
'platform': {
'os': 'windows'
},
'server': {
'host': {
'from_secret': 'windows_server_%s' % version
},
'user': {
'from_secret': 'windows_username'
},
'password': {
'from_secret': 'windows_password'
},
},
'steps': [
{
'name': 'build-push',
'environment': {
'CGO_ENABLED': '0'
},
'commands': [
'go build -v -ldflags "-X main.version=${DRONE_COMMIT_SHA:0:8}" -a -tags netgo -o release/windows/amd64/drone-bintray.exe',
],
'when': {
'event': {
'exclude': [
'tag'
]
}
}
},
{
'name': 'build-tag',
'environment': {
'CGO_ENABLED': '0'
},
'commands': [
'go build -v -ldflags "-X main.version=${DRONE_TAG##v}" -a -tags netgo -o release/windows/amd64/drone-bintray.exe',
],
'when': {
'event': [
'tag'
]
}
},
{
'name': 'executable',
'commands': [
'./release/windows/amd64/drone-bintray.exe --help',
]
},
{
'name': 'latest',
'environment': {
'USERNAME': {
'from_secret': 'docker_username'
},
'PASSWORD': {
'from_secret': 'docker_password'
},
},
'commands': [
'echo $env:PASSWORD | docker login --username $env:USERNAME --password-stdin',
'docker build --pull -f docker/Dockerfile.windows.%s -t plugins/bintray:windows-%s-amd64 .' % (version, version),
'docker run --rm plugins/bintray:windows-%s-amd64 --help' % version,
'docker push plugins/bintray:windows-%s-amd64' % version,
],
'when': {
'ref': [
'refs/heads/master',
]
}
},
{
'name': 'tagged',
'environment': {
'USERNAME': {
'from_secret': 'docker_username'
},
'PASSWORD': {
'from_secret': 'docker_password'
},
},
'commands': [
'echo $env:PASSWORD | docker login --username $env:USERNAME --password-stdin',
'docker build --pull -f docker/Dockerfile.windows.%s -t plugins/bintray:${DRONE_TAG##v}-windows-%s-amd64 .' % (version, version),
'docker run --rm plugins/bintray:${DRONE_TAG##v}-windows-%s-amd64 --help' % version,
'docker push plugins/bintray:${DRONE_TAG##v}-windows-%s-amd64' % version,
],
'when': {
'ref': [
'refs/tags/**',
]
}
}
],
'depends_on': [],
'trigger': {
'ref': [
'refs/heads/master',
'refs/tags/**',
]
}
}

def manifest():
return [{
'kind': 'pipeline',
'type': 'docker',
'name': 'manifest',
'steps': [
{
'name': 'manifest',
'image': 'plugins/manifest',
'pull': 'always',
'settings': {
'auto_tag': 'true',
'username': {
'from_secret': 'docker_username'
},
'password': {
'from_secret': 'docker_password'
},
'spec': 'docker/manifest.tmpl',
'ignore_missing': 'true',
},
},
{
'name': 'microbadger',
'image': 'plugins/webhook',
'pull': 'always',
'settings': {
'urls': {
'from_secret': 'microbadger_url'
}
},
}
],
'depends_on': [],
'trigger': {
'ref': [
'refs/heads/master',
'refs/tags/**'
]
}
}]

def gitter():
return [{
'kind': 'pipeline',
'type': 'docker',
'name': 'gitter',
'clone': {
'disable': True
},
'steps': [
{
'name': 'gitter',
'image': 'plugins/gitter',
'pull': 'always',
'settings': {
'webhook': {
'from_secret': 'gitter_webhook'
}
},
},
],
'depends_on': [
'manifest'
],
'trigger': {
'ref': [
'refs/heads/master',
'refs/tags/**'
],
'status': [
'failure'
]
}
}]
9 changes: 0 additions & 9 deletions .drone.windows.jsonnet

This file was deleted.

0 comments on commit 2088bcc

Please sign in to comment.