diff --git a/.drone.yml b/.drone.yml index bdbcf63..39a964a 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,15 +1,11 @@ --- kind: pipeline name: lint - platform: - os: linux arch: amd64 - + os: linux steps: -- name: yapf - image: python:3.9 - commands: +- commands: - git fetch -tq - pip install poetry poetry-dynamic-versioning -qq - poetry config experimental.new-installer false @@ -17,10 +13,9 @@ steps: - poetry run yapf -dr ./dockerautotag environment: PY_COLORS: 1 - -- name: flake8 image: python:3.9 - commands: + name: yapf +- commands: - git fetch -tq - pip install poetry poetry-dynamic-versioning -qq - poetry config experimental.new-installer false @@ -28,100 +23,89 @@ steps: - poetry run flake8 ./dockerautotag environment: PY_COLORS: 1 - + image: python:3.9 + name: flake8 trigger: ref: - refs/heads/main - refs/tags/** - refs/pull/** - --- -kind: pipeline -name: test - -platform: - os: linux - arch: amd64 - -steps: -- name: fetch - image: python:3.9 - commands: - - git fetch -tq - -- name: python36-pytest - image: python:3.6 - commands: - - pip install poetry poetry-dynamic-versioning -qq - - poetry config experimental.new-installer false - - poetry install - - poetry version - - poetry run docker-autotag --help - environment: - PY_COLORS: 1 - depends_on: - - fetch - -- name: python37-pytest - image: python:3.7 - commands: - - pip install poetry poetry-dynamic-versioning -qq - - poetry config experimental.new-installer false - - poetry install - - poetry version - - poetry run docker-autotag --help - environment: - PY_COLORS: 1 - depends_on: - - fetch - -- name: python38-pytest - image: python:3.8 - commands: - - pip install poetry poetry-dynamic-versioning -qq - - poetry config experimental.new-installer false - - poetry install - - poetry version - - poetry run docker-autotag --help - environment: - PY_COLORS: 1 - depends_on: - - fetch - -- name: python39-pytest - image: python:3.9 - commands: - - pip install poetry poetry-dynamic-versioning -qq - - poetry config experimental.new-installer false - - poetry install - - poetry version - - poetry run docker-autotag --help - environment: - PY_COLORS: 1 - depends_on: - - fetch - -trigger: - ref: - - refs/heads/main - - refs/tags/** - - refs/pull/** - depends_on: - lint - +kind: pipeline +name: test +platform: + arch: amd64 + os: linux +steps: +- commands: + - git fetch -tq + image: python:3.9 + name: fetch +- commands: + - pip install poetry poetry-dynamic-versioning -qq + - poetry config experimental.new-installer false + - poetry install + - poetry version + - poetry run docker-autotag --help + depends_on: + - fetch + environment: + PY_COLORS: 1 + image: python:3.6 + name: python36-pytest +- commands: + - pip install poetry poetry-dynamic-versioning -qq + - poetry config experimental.new-installer false + - poetry install + - poetry version + - poetry run docker-autotag --help + depends_on: + - fetch + environment: + PY_COLORS: 1 + image: python:3.7 + name: python37-pytest +- commands: + - pip install poetry poetry-dynamic-versioning -qq + - poetry config experimental.new-installer false + - poetry install + - poetry version + - poetry run docker-autotag --help + depends_on: + - fetch + environment: + PY_COLORS: 1 + image: python:3.8 + name: python38-pytest +- commands: + - pip install poetry poetry-dynamic-versioning -qq + - poetry config experimental.new-installer false + - poetry install + - poetry version + - poetry run docker-autotag --help + depends_on: + - fetch + environment: + PY_COLORS: 1 + image: python:3.9 + name: python39-pytest +trigger: + ref: + - refs/heads/main + - refs/tags/** + - refs/pull/** --- +depends_on: +- test kind: pipeline name: security - platform: - os: linux arch: amd64 - + os: linux steps: -- name: bandit - image: python:3.9 - commands: +- commands: - git fetch -tq - pip install poetry poetry-dynamic-versioning -qq - poetry config experimental.new-installer false @@ -129,51 +113,45 @@ steps: - poetry run bandit -r ./dockerautotag -x ./dockerautotag/test environment: PY_COLORS: 1 - + image: python:3.9 + name: bandit trigger: ref: - refs/heads/main - refs/tags/** - refs/pull/** - -depends_on: -- test - --- +depends_on: +- security kind: pipeline name: build-package - platform: - os: linux arch: amd64 - + os: linux steps: -- name: build - image: python:3.9 - commands: +- commands: - git fetch -tq - pip install poetry poetry-dynamic-versioning -qq - poetry build - -- name: checksum - image: alpine - commands: + image: python:3.9 + name: build +- commands: - cd dist/ && sha256sum * > ../sha256sum.txt - -- name: changelog-generate - image: thegeeklab/git-chglog - commands: + image: alpine + name: checksum +- 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: + - git-chglog --no-color --no-emoji -o CHANGELOG.md ${DRONE_TAG:---next-tag unreleased + unreleased} + image: thegeeklab/git-chglog + name: changelog-generate +- commands: - prettier CHANGELOG.md - prettier -w CHANGELOG.md - -- name: publish-github - image: plugins/github-release + image: thegeeklab/alpine-tools + name: changelog-format +- image: plugins/github-release + name: publish-github settings: api_key: from_secret: github_token @@ -186,10 +164,7 @@ steps: when: ref: - refs/tags/** - -- name: publish-pypi - image: python:3.9 - commands: +- commands: - git fetch -tq - pip install poetry poetry-dynamic-versioning -qq - poetry publish -n @@ -198,37 +173,35 @@ steps: from_secret: pypi_password POETRY_HTTP_BASIC_PYPI_USERNAME: from_secret: pypi_username + image: python:3.9 + name: publish-pypi when: ref: - refs/tags/** - trigger: ref: - refs/heads/main - refs/tags/** - refs/pull/** - +--- depends_on: - security - ---- kind: pipeline name: build-container-amd64 - platform: - os: linux arch: amd64 - + os: linux steps: -- name: build - image: python:3.9 - commands: +- commands: - git fetch -tq - pip install poetry poetry-dynamic-versioning -qq - poetry build - -- name: dryrun + image: python:3.9 + name: build +- depends_on: + - build image: thegeeklab/drone-docker:19 + name: dryrun settings: dockerfile: docker/Dockerfile.amd64 dry_run: true @@ -240,11 +213,10 @@ steps: when: ref: - refs/pull/** - depends_on: - - build - -- name: publish-dockerhub +- depends_on: + - dryrun image: thegeeklab/drone-docker:19 + name: publish-dockerhub settings: auto_tag: true auto_tag_suffix: amd64 @@ -258,11 +230,10 @@ steps: ref: - refs/heads/main - refs/tags/** - depends_on: +- depends_on: - dryrun - -- name: publish-quay image: thegeeklab/drone-docker:19 + name: publish-quay settings: auto_tag: true auto_tag_suffix: amd64 @@ -277,36 +248,30 @@ steps: ref: - refs/heads/main - refs/tags/** - depends_on: - - dryrun - trigger: ref: - refs/heads/main - refs/tags/** - refs/pull/** - +--- depends_on: - security - ---- kind: pipeline name: build-container-arm64 - platform: - os: linux arch: arm64 - + os: linux steps: -- name: build - image: python:3.9 - commands: +- commands: - git fetch -tq - pip install poetry poetry-dynamic-versioning -qq - poetry build - -- name: dryrun + image: python:3.9 + name: build +- depends_on: + - build image: thegeeklab/drone-docker:19 + name: dryrun settings: dockerfile: docker/Dockerfile.arm64 dry_run: true @@ -318,11 +283,10 @@ steps: when: ref: - refs/pull/** - depends_on: - - build - -- name: publish-dockerhub +- depends_on: + - dryrun image: thegeeklab/drone-docker:19 + name: publish-dockerhub settings: auto_tag: true auto_tag_suffix: arm64 @@ -336,11 +300,10 @@ steps: ref: - refs/heads/main - refs/tags/** - depends_on: +- depends_on: - dryrun - -- name: publish-quay image: thegeeklab/drone-docker:19 + name: publish-quay settings: auto_tag: true auto_tag_suffix: arm64 @@ -355,39 +318,34 @@ steps: ref: - refs/heads/main - refs/tags/** - depends_on: - - dryrun - trigger: ref: - refs/heads/main - refs/tags/** - refs/pull/** - +--- depends_on: - security - ---- kind: pipeline name: build-container-arm - platform: - os: linux arch: arm - + os: linux steps: -- name: build - image: python:3.9-alpine - commands: - - apk add -Uq --no-cache build-base openssl-dev libffi-dev musl-dev python3-dev git cargo +- commands: + - apk add -Uq --no-cache build-base openssl-dev libffi-dev musl-dev python3-dev + git cargo - git fetch -tq - pip install poetry poetry-dynamic-versioning -qq - poetry build environment: CARGO_NET_GIT_FETCH_WITH_CLI: true - -- name: dryrun + image: python:3.9-alpine + name: build +- depends_on: + - build image: thegeeklab/drone-docker:19 + name: dryrun settings: dockerfile: docker/Dockerfile.arm dry_run: true @@ -399,11 +357,10 @@ steps: when: ref: - refs/pull/** - depends_on: - - build - -- name: publish-dockerhub +- depends_on: + - dryrun image: thegeeklab/drone-docker:19 + name: publish-dockerhub settings: auto_tag: true auto_tag_suffix: arm @@ -417,11 +374,10 @@ steps: ref: - refs/heads/main - refs/tags/** - depends_on: +- depends_on: - dryrun - -- name: publish-quay image: thegeeklab/drone-docker:19 + name: publish-quay settings: auto_tag: true auto_tag_suffix: arm @@ -436,29 +392,25 @@ steps: ref: - refs/heads/main - refs/tags/** - depends_on: - - dryrun - trigger: ref: - refs/heads/main - refs/tags/** - refs/pull/** - -depends_on: -- security - --- +depends_on: +- build-package +- build-container-amd64 +- build-container-arm64 +- build-container-arm kind: pipeline name: notifications - platform: - os: linux arch: amd64 - + os: linux steps: -- name: manifest-dockerhub - image: plugins/manifest +- image: plugins/manifest + name: manifest-dockerhub settings: auto_tag: true ignore_missing: true @@ -470,9 +422,8 @@ steps: when: status: - success - -- name: manifest-quay - image: plugins/manifest +- image: plugins/manifest + name: manifest-quay settings: auto_tag: true ignore_missing: true @@ -484,11 +435,7 @@ steps: when: status: - success - -- name: pushrm-dockerhub - pull: always - image: chko/docker-pushrm:1 - environment: +- environment: DOCKER_PASS: from_secret: docker_password DOCKER_USER: @@ -496,24 +443,25 @@ steps: PUSHRM_FILE: README.md PUSHRM_SHORT: Create docker tags from a given version string PUSHRM_TARGET: thegeeklab/${DRONE_REPO_NAME} + image: chko/docker-pushrm:1 + name: pushrm-dockerhub + pull: always when: status: - success - -- name: pushrm-quay - pull: always - image: chko/docker-pushrm:1 - environment: +- environment: APIKEY__QUAY_IO: from_secret: quay_token PUSHRM_FILE: README.md PUSHRM_TARGET: quay.io/thegeeklab/${DRONE_REPO_NAME} + image: chko/docker-pushrm:1 + name: pushrm-quay + pull: always when: status: - success - -- name: matrix - image: plugins/matrix +- image: plugins/matrix + name: matrix settings: homeserver: from_secret: matrix_homeserver @@ -521,14 +469,15 @@ steps: 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 }}" + 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 - trigger: ref: - refs/heads/main @@ -536,15 +485,8 @@ trigger: status: - success - failure - -depends_on: -- build-package -- build-container-amd64 -- build-container-arm64 -- build-container-arm - --- kind: signature -hmac: ad96c3cb18d43b6185a48622700f06eff625aa16f31d06e1c65e649907699a9a +hmac: d4ac321270a199e12b7bd47a15f38bfbfcb301fc394440a079bb5fe6962948e3 ...