// SPDX-License-Identifier: BSD-3-Clause local testing(version, arch) = { kind: 'pipeline', type: 'docker', name: '%s-%s' % [version, arch], platform: { arch: arch, }, steps: [ { name: 'lint', image: 'golangci/golangci-lint', commands: [ 'golangci-lint run ./...', ], }, { name: 'cache', image: 'golang:%s' % [version], commands: [ 'go mod tidy', ], depends_on: [ 'lint', ], volumes: [ { name: 'cache', path: '/go', }, ], }, { name: 'test', image: 'golang:%s' % [version], commands: [ 'make test-ci', ], depends_on: [ 'cache', ], volumes: [ { name: 'cache', path: '/go', }, ], }, { name: 'fuzz', image: 'golang:%s' % [version], commands: [ 'make fuzz-ci', ], depends_on: [ 'cache', ], volumes: [ { name: 'cache', path: '/go', }, ], }, ], trigger: { event: { exclude: [ 'tag', ], }, }, volumes: [ { name: 'cache', temp: {}, }, ], }; // "Inspired by" https://goreleaser.com/ci/drone/ local release() = { kind: 'pipeline', type: 'docker', name: 'release', clone: { disable: true, }, trigger: { event: [ 'tag', ], }, steps: [ { name: 'clone', image: 'woodpeckerci/plugin-git', settings: { tags: true, }, }, { name: 'test', image: 'golang', commands: [ 'make test-ci', ], volumes: [ { name: 'cache', path: '/go', }, ], }, { name: 'release', image: 'goreleaser/goreleaser', environment: { GITEA_TOKEN: { from_secret: 'GITEA_TOKEN', }, }, commands: [ 'apk add --no-cache scdoc', 'goreleaser release', ], volumes: [ { name: 'cache', path: '/go', }, ], }, { name: 'package', image: 'git.freecumextremist.com/notsam/drone-gitea-push-packages', settings: { base_url: 'https://git.froth.zone', owner: 'sam', project_name: 'awl', package_name: 'awl-dns', username: 'sam', password: { from_secret: 'GITEA_TOKEN', }, architectures: [ 'amd64', 'arm64', '386', 'armv6', ], package_types: [ 'deb', 'apk', 'rpm', ], }, }, ], volumes: [ { name: 'cache', temp: {}, }, ], }; [ testing('1.20', 'amd64'), testing('1.20', 'arm64'), testing('1.21', 'amd64'), testing('1.21', 'arm64'), release(), ]