From aaadce2ba6f852b792029fee56a21391475ce120 Mon Sep 17 00:00:00 2001 From: Robert Kaussow Date: Sun, 19 Sep 2021 14:02:40 +0200 Subject: [PATCH] regenerate drone config --- .drone.yml | 530 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 524 insertions(+), 6 deletions(-) diff --git a/.drone.yml b/.drone.yml index a292a74..783b3c3 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,16 +1,534 @@ --- kind: pipeline -name: default +name: test platform: os: linux arch: amd64 steps: -- name: test - image: golang:1.11 - commands: - - go vet ./... - - go test ./... + - name: staticcheck + image: golang:1.16 + commands: + - go run honnef.co/go/tools/cmd/staticcheck ./... + volumes: + - name: gopath + path: /go + + - name: lint + image: golang:1.16 + commands: + - go run golang.org/x/lint/golint -set_exit_status ./... + volumes: + - name: gopath + path: /go + + - name: vet + image: golang:1.16 + commands: + - go vet ./... + volumes: + - name: gopath + path: /go + + - name: test + image: golang:1.16 + commands: + - go test -cover ./... + volumes: + - name: gopath + path: /go + +volumes: + - name: gopath + temp: {} + +image_pull_secrets: + - docker_config + +trigger: + ref: + - refs/heads/main + - refs/tags/** + - refs/pull/** + +--- +kind: pipeline +name: build-binaries + +platform: + os: linux + arch: amd64 + +steps: + - name: build + image: techknowlogick/xgo:go-1.16.x + commands: + - "[ -z \"${DRONE_TAG}\" ] && BUILD_VERSION=${DRONE_COMMIT_SHA:0:8} || BUILD_VERSION=${DRONE_TAG##v}" + - mkdir -p release/ + - cd cmd/drone-yaml && xgo -ldflags "-s -w -X main.version=$BUILD_VERSION" -tags netgo -targets 'linux/amd64,linux/arm-6,linux/arm-7,linux/arm64' -out drone-yaml . + - mv /build/* /drone/src/release/ + - ls -l /drone/src/release/ + + - name: executable + image: alpine + commands: + - $(find release/ -executable -type f | grep drone-yaml-linux-amd64) --help + + - name: compress + image: alpine + commands: + - apk add upx + - find release/ -maxdepth 1 -executable -type f -exec upx {} \; + - ls -lh release/ + + - name: checksum + image: alpine + commands: + - cd release/ && sha256sum * > sha256sum.txt + + - name: changelog-generate + image: thegeeklab/git-chglog + commands: + - git fetch -tq + - git-chglog --no-color --no-emoji -o CHANGELOG.md ${DRONE_TAG:---next-tag unreleased unreleased} + + - name: changelog-format + image: thegeeklab/alpine-tools + commands: + - prettier CHANGELOG.md + - prettier -w CHANGELOG.md + + - name: publish + image: plugins/github-release + settings: + api_key: + from_secret: github_token + files: + - release/* + note: CHANGELOG.md + overwrite: true + title: ${DRONE_TAG} + when: + ref: + - refs/tags/** + +image_pull_secrets: + - docker_config + +trigger: + ref: + - refs/heads/main + - refs/tags/** + - refs/pull/** + +depends_on: + - test + +--- +kind: pipeline +name: build-container-amd64 + +platform: + os: linux + arch: amd64 + +steps: + - name: build + image: golang:1.16 + commands: + - "[ -z \"${DRONE_TAG}\" ] && BUILD_VERSION=${DRONE_COMMIT_SHA:0:8} || BUILD_VERSION=${DRONE_TAG##v}" + - go build -v -ldflags "-X main.version=$BUILD_VERSION" -a -tags netgo -o release/amd64/drone-yaml ./cmd/drone-yaml + + - name: dryrun + image: thegeeklab/drone-docker:19 + settings: + config: + from_secret: docker_config + dockerfile: docker/Dockerfile.amd64 + dry_run: true + password: + from_secret: docker_password + repo: thegeeklab/${DRONE_REPO_NAME} + username: + from_secret: docker_username + when: + ref: + - refs/pull/** + depends_on: + - build + + - name: publish-dockerhub + image: thegeeklab/drone-docker:19 + settings: + auto_tag: true + auto_tag_suffix: amd64 + config: + from_secret: docker_config + dockerfile: docker/Dockerfile.amd64 + password: + from_secret: docker_password + repo: thegeeklab/${DRONE_REPO_NAME} + username: + from_secret: docker_username + when: + ref: + - refs/heads/main + - refs/tags/** + depends_on: + - dryrun + + - name: publish-quay + image: thegeeklab/drone-docker:19 + settings: + auto_tag: true + auto_tag_suffix: amd64 + config: + from_secret: docker_config + dockerfile: docker/Dockerfile.amd64 + password: + from_secret: quay_password + registry: quay.io + repo: quay.io/thegeeklab/${DRONE_REPO_NAME} + username: + from_secret: quay_username + when: + ref: + - refs/heads/main + - refs/tags/** + depends_on: + - dryrun + +image_pull_secrets: + - docker_config + +trigger: + ref: + - refs/heads/main + - refs/tags/** + - refs/pull/** + +depends_on: + - test + +--- +kind: pipeline +name: build-container-arm64 + +platform: + os: linux + arch: arm64 + +steps: + - name: build + image: golang:1.16 + commands: + - "[ -z \"${DRONE_TAG}\" ] && BUILD_VERSION=${DRONE_COMMIT_SHA:0:8} || BUILD_VERSION=${DRONE_TAG##v}" + - go build -v -ldflags "-X main.version=$BUILD_VERSION" -a -tags netgo -o release/arm64/drone-yaml ./cmd/drone-yaml + + - name: dryrun + image: thegeeklab/drone-docker:19 + settings: + config: + from_secret: docker_config + dockerfile: docker/Dockerfile.arm64 + dry_run: true + password: + from_secret: docker_password + repo: thegeeklab/${DRONE_REPO_NAME} + username: + from_secret: docker_username + when: + ref: + - refs/pull/** + depends_on: + - build + + - name: publish-dockerhub + image: thegeeklab/drone-docker:19 + settings: + auto_tag: true + auto_tag_suffix: arm64 + config: + from_secret: docker_config + dockerfile: docker/Dockerfile.arm64 + password: + from_secret: docker_password + repo: thegeeklab/${DRONE_REPO_NAME} + username: + from_secret: docker_username + when: + ref: + - refs/heads/main + - refs/tags/** + depends_on: + - dryrun + + - name: publish-quay + image: thegeeklab/drone-docker:19 + settings: + auto_tag: true + auto_tag_suffix: arm64 + config: + from_secret: docker_config + dockerfile: docker/Dockerfile.arm64 + password: + from_secret: quay_password + registry: quay.io + repo: quay.io/thegeeklab/${DRONE_REPO_NAME} + username: + from_secret: quay_username + when: + ref: + - refs/heads/main + - refs/tags/** + depends_on: + - dryrun + +image_pull_secrets: + - docker_config + +trigger: + ref: + - refs/heads/main + - refs/tags/** + - refs/pull/** + +depends_on: + - test + +--- +kind: pipeline +name: build-container-arm + +platform: + os: linux + arch: arm + +steps: + - name: build + image: golang:1.16 + commands: + - "[ -z \"${DRONE_TAG}\" ] && BUILD_VERSION=${DRONE_COMMIT_SHA:0:8} || BUILD_VERSION=${DRONE_TAG##v}" + - go build -v -ldflags "-X main.version=$BUILD_VERSION" -a -tags netgo -o release/arm/drone-yaml ./cmd/drone-yaml + + - name: dryrun + image: thegeeklab/drone-docker:19 + settings: + config: + from_secret: docker_config + dockerfile: docker/Dockerfile.arm + dry_run: true + password: + from_secret: docker_password + repo: thegeeklab/${DRONE_REPO_NAME} + username: + from_secret: docker_username + when: + ref: + - refs/pull/** + depends_on: + - build + + - name: publish-dockerhub + image: thegeeklab/drone-docker:19 + settings: + auto_tag: true + auto_tag_suffix: arm + config: + from_secret: docker_config + dockerfile: docker/Dockerfile.arm + password: + from_secret: docker_password + repo: thegeeklab/${DRONE_REPO_NAME} + username: + from_secret: docker_username + when: + ref: + - refs/heads/main + - refs/tags/** + depends_on: + - dryrun + + - name: publish-quay + image: thegeeklab/drone-docker:19 + settings: + auto_tag: true + auto_tag_suffix: arm + config: + from_secret: docker_config + dockerfile: docker/Dockerfile.arm + password: + from_secret: quay_password + registry: quay.io + repo: quay.io/thegeeklab/${DRONE_REPO_NAME} + username: + from_secret: quay_username + when: + ref: + - refs/heads/main + - refs/tags/** + depends_on: + - dryrun + +image_pull_secrets: + - docker_config + +trigger: + ref: + - refs/heads/main + - refs/tags/** + - refs/pull/** + +depends_on: + - test + +--- +kind: pipeline +name: docs + +platform: + os: linux + arch: amd64 + +concurrency: + limit: 1 + +steps: + - name: markdownlint + image: thegeeklab/markdownlint-cli + commands: + - markdownlint 'docs/content/**/*.md' 'README.md' 'CONTRIBUTING.md' + + - name: spellcheck + image: node:lts-alpine + commands: + - npm install -g spellchecker-cli + - spellchecker --files '_docs/**/*.md' 'README.md' 'CONTRIBUTING.md' -d .dictionary -p spell indefinite-article syntax-urls --no-suggestions + environment: + FORCE_COLOR: true + NPM_CONFIG_LOGLEVEL: error + + - name: publish + image: plugins/gh-pages + settings: + pages_directory: _docs/ + password: + from_secret: github_token + target_branch: docs + username: + from_secret: github_username + when: + ref: + - refs/heads/main + +trigger: + ref: + - refs/heads/main + - refs/tags/** + - refs/pull/** + +depends_on: + - build-binaries + - build-container-amd64 + - build-container-arm64 + - build-container-arm + +--- +kind: pipeline +name: notifications + +platform: + os: linux + arch: amd64 + +steps: + - name: manifest-dockerhub + image: plugins/manifest + settings: + auto_tag: true + ignore_missing: true + password: + from_secret: docker_password + spec: docker/manifest.tmpl + username: + from_secret: docker_username + when: + status: + - success + + - name: manifest-quay + image: plugins/manifest + settings: + auto_tag: true + ignore_missing: true + password: + from_secret: quay_password + spec: docker/manifest-quay.tmpl + username: + from_secret: quay_username + when: + status: + - success + + - name: pushrm-dockerhub + image: chko/docker-pushrm:1 + environment: + DOCKER_PASS: + from_secret: docker_password + DOCKER_USER: + from_secret: docker_username + PUSHRM_FILE: README.md + PUSHRM_SHORT: Custom Drone YAML formatter + PUSHRM_TARGET: thegeeklab/${DRONE_REPO_NAME} + when: + status: + - success + + - name: pushrm-quay + image: chko/docker-pushrm:1 + environment: + APIKEY__QUAY_IO: + from_secret: quay_token + PUSHRM_FILE: README.md + PUSHRM_TARGET: quay.io/thegeeklab/${DRONE_REPO_NAME} + when: + status: + - success + + - name: matrix + image: plugins/matrix + settings: + homeserver: + from_secret: matrix_homeserver + password: + from_secret: matrix_password + roomid: + from_secret: matrix_roomid + template: "Status: **{{ build.status }}**
Build: [{{ repo.Owner }}/{{ repo.Name }}]({{ build.link }}) ({{ build.branch }}) by {{ build.author }}
Message: {{ build.message }}" + username: + from_secret: matrix_username + when: + status: + - success + - failure + +image_pull_secrets: + - docker_config + +trigger: + ref: + - refs/heads/main + - refs/tags/** + status: + - success + - failure + +depends_on: + - docs + +--- +kind: signature +hmac: 06308f21c894d1b47d0134b9c2fd87311e9a1eaffe70e2ddac7d1cfd397bf746 ...