--- kind: pipeline name: testing platform: os: linux arch: amd64 steps: - name: vet pull: always image: golang:1.13 commands: - go vet -mod=vendor ./... environment: GO111MODULE: on - name: test pull: always image: golang:1.13 commands: - go test -mod=vendor -cover $(go list -mod=vendor ./... | grep -v /vendor/) environment: GO111MODULE: on trigger: branch: - master --- kind: pipeline name: linux-amd64 platform: os: linux arch: amd64 steps: - name: build-push pull: always image: golang:1.13 commands: - "go build -mod=vendor -v -ldflags \"-X main.build=${DRONE_BUILD_NUMBER}\" -a -o release/linux/amd64/drone-crowdin" environment: CGO_ENABLED: 0 GO111MODULE: on when: event: - push - pull_request - name: build-tag pull: always image: golang:1.13 commands: - "go build -mod=vendor -v -ldflags \"-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}\" -a -o release/linux/amd64/drone-crowdin" environment: CGO_ENABLED: 0 GO111MODULE: on when: event: - tag - name: executable pull: always image: golang:1.13 commands: - ./release/linux/amd64/drone-crowdin --help - name: dryrun pull: always image: plugins/docker:linux-amd64 settings: dockerfile: docker/Dockerfile.linux.amd64 dry_run: true repo: jonasfranz/crowdin tags: linux-amd64 when: event: - pull_request - name: publish pull: always image: plugins/docker:linux-amd64 settings: auto_tag: true auto_tag_suffix: linux-amd64 dockerfile: docker/Dockerfile.linux.amd64 password: from_secret: docker_password repo: jonasfranz/crowdin username: from_secret: docker_username when: event: - push - tag trigger: branch: - master depends_on: - testing --- kind: pipeline name: linux-arm64 platform: os: linux arch: arm64 steps: - name: build-push pull: always image: golang:1.13 commands: - "go build -mod=vendor -v -ldflags \"-X main.build=${DRONE_BUILD_NUMBER}\" -a -o release/linux/arm64/drone-crowdin" environment: CGO_ENABLED: 0 GO111MODULE: on when: event: - push - pull_request - name: build-tag pull: always image: golang:1.13 commands: - "go build -mod=vendor -v -ldflags \"-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}\" -a -o release/linux/arm64/drone-crowdin" environment: CGO_ENABLED: 0 GO111MODULE: on when: event: - tag - name: executable pull: always image: golang:1.13 commands: - ./release/linux/arm64/drone-crowdin --help - name: dryrun pull: always image: plugins/docker:linux-arm64 settings: dockerfile: docker/Dockerfile.linux.arm64 dry_run: true repo: jonasfranz/crowdin tags: linux-arm64 when: event: - pull_request - name: publish pull: always image: plugins/docker:linux-arm64 settings: auto_tag: true auto_tag_suffix: linux-arm64 dockerfile: docker/Dockerfile.linux.arm64 password: from_secret: docker_password repo: jonasfranz/crowdin username: from_secret: docker_username when: event: - push - tag trigger: branch: - master depends_on: - testing --- kind: pipeline name: linux-arm platform: os: linux arch: arm steps: - name: build-push pull: always image: golang:1.13 commands: - "go build -mod=vendor -v -ldflags \"-X main.build=${DRONE_BUILD_NUMBER}\" -a -o release/linux/arm/drone-crowdin" environment: CGO_ENABLED: 0 GO111MODULE: on when: event: - push - pull_request - name: build-tag pull: always image: golang:1.13 commands: - "go build -mod=vendor -v -ldflags \"-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}\" -a -o release/linux/arm/drone-crowdin" environment: CGO_ENABLED: 0 GO111MODULE: on when: event: - tag - name: executable pull: always image: golang:1.13 commands: - ./release/linux/arm/drone-crowdin --help - name: dryrun pull: always image: plugins/docker:linux-arm settings: dockerfile: docker/Dockerfile.linux.arm dry_run: true repo: jonasfranz/crowdin tags: linux-arm when: event: - pull_request - name: publish pull: always image: plugins/docker:linux-arm settings: auto_tag: true auto_tag_suffix: linux-arm dockerfile: docker/Dockerfile.linux.arm password: from_secret: docker_password repo: jonasfranz/crowdin username: from_secret: docker_username when: event: - push - tag trigger: branch: - master depends_on: - testing --- kind: pipeline name: notifications platform: os: linux arch: amd64 steps: - name: manifest pull: always image: plugins/manifest:1 settings: ignore_missing: true password: from_secret: docker_password spec: docker/manifest.tmpl username: from_secret: docker_username trigger: branch: - master event: - push - tag depends_on: - linux-amd64 - linux-arm64 - linux-arm ...