diff --git a/.drone.yml b/.drone.yml index a5ec00d..0cf281d 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 ./dockertidy 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,119 +23,107 @@ steps: - poetry run flake8 ./dockertidy environment: PY_COLORS: 1 - + image: python:3.9 + name: flake8 trigger: ref: - refs/heads/main - refs/tags/** - refs/pull/** - --- +depends_on: +- lint kind: pipeline name: test - platform: - os: linux arch: amd64 - + os: linux steps: -- name: fetch - image: python:3.9 - commands: +- commands: - git fetch -tq - -- name: python36-pytest + image: python:3.9 + name: fetch +- commands: + - pip install poetry poetry-dynamic-versioning -qq + - poetry config experimental.new-installer false + - poetry install + - poetry run pytest dockertidy --cov=dockertidy --cov-append --no-cov-on-fail + - poetry version + - poetry run docker-tidy --help + depends_on: + - fetch + environment: + PY_COLORS: 1 image: python:3.6 - commands: + name: python36-pytest +- commands: - pip install poetry poetry-dynamic-versioning -qq - poetry config experimental.new-installer false - poetry install - poetry run pytest dockertidy --cov=dockertidy --cov-append --no-cov-on-fail - poetry version - poetry run docker-tidy --help - environment: - PY_COLORS: 1 depends_on: - fetch - -- name: python37-pytest + environment: + PY_COLORS: 1 image: python:3.7 - commands: + name: python37-pytest +- commands: - pip install poetry poetry-dynamic-versioning -qq - poetry config experimental.new-installer false - poetry install - poetry run pytest dockertidy --cov=dockertidy --cov-append --no-cov-on-fail - poetry version - poetry run docker-tidy --help - environment: - PY_COLORS: 1 depends_on: - fetch - -- name: python38-pytest + environment: + PY_COLORS: 1 image: python:3.8 - commands: + name: python38-pytest +- commands: - pip install poetry poetry-dynamic-versioning -qq - poetry config experimental.new-installer false - poetry install - poetry run pytest dockertidy --cov=dockertidy --cov-append --no-cov-on-fail - poetry version - poetry run docker-tidy --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 run pytest dockertidy --cov=dockertidy --cov-append --no-cov-on-fail - - poetry version - - poetry run docker-tidy --help environment: PY_COLORS: 1 - depends_on: - - fetch - -- name: codecov image: python:3.9 - commands: + name: python39-pytest +- commands: - pip install codecov -qq - codecov --required -X gcov - environment: - CODECOV_TOKEN: - from_secret: codecov_token - PY_COLORS: 1 depends_on: - python36-pytest - python37-pytest - python38-pytest - python39-pytest - + environment: + CODECOV_TOKEN: + from_secret: codecov_token + PY_COLORS: 1 + image: python:3.9 + name: codecov trigger: ref: - refs/heads/main - refs/tags/** - refs/pull/** - -depends_on: -- lint - --- +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 @@ -148,51 +131,45 @@ steps: - poetry run bandit -r ./dockertidy -x ./dockertidy/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 @@ -205,10 +182,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 @@ -217,37 +191,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 @@ -259,11 +231,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 @@ -277,11 +248,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 @@ -296,36 +266,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 @@ -337,11 +301,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 @@ -355,11 +318,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 @@ -374,39 +336,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 @@ -418,11 +375,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 @@ -436,11 +392,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 @@ -455,77 +410,66 @@ 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: docs - -platform: - os: linux - arch: amd64 - concurrency: limit: 1 - +depends_on: +- build-package +- build-container-amd64 +- build-container-arm64 +- build-container-arm +kind: pipeline +name: docs +platform: + arch: amd64 + os: linux steps: -- name: assets - image: thegeeklab/alpine-tools - commands: +- commands: - make doc - -- name: markdownlint - image: thegeeklab/markdownlint-cli - commands: + image: thegeeklab/alpine-tools + name: assets +- commands: - markdownlint 'docs/content/**/*.md' 'README.md' 'CONTRIBUTING.md' - -- name: spellcheck - image: node:lts-alpine - commands: + image: thegeeklab/markdownlint-cli + name: markdownlint +- commands: - npm install -g spellchecker-cli - - spellchecker --files 'docs/content/**/*.md' 'README.md' 'CONTRIBUTING.md' -d .dictionary -p spell indefinite-article syntax-urls --no-suggestions + - spellchecker --files 'docs/content/**/*.md' 'README.md' 'CONTRIBUTING.md' -d .dictionary + -p spell indefinite-article syntax-urls --no-suggestions environment: FORCE_COLOR: true NPM_CONFIG_LOGLEVEL: error - -- name: testbuild - image: thegeeklab/hugo:0.83.1 - commands: + image: node:lts-alpine + name: spellcheck +- commands: - hugo -s docs/ -b http://localhost/ - -- name: link-validation - image: thegeeklab/link-validator - commands: + image: thegeeklab/hugo:0.83.1 + name: testbuild +- commands: - link-validator -ro environment: LINK_VALIDATOR_BASE_DIR: docs/public - -- name: build - image: thegeeklab/hugo:0.83.1 - commands: + image: thegeeklab/link-validator + name: link-validation +- commands: - hugo -s docs/ - -- name: beautify - image: node:lts-alpine - commands: + image: thegeeklab/hugo:0.83.1 + name: build +- commands: - npm install -g js-beautify - html-beautify -r -f 'docs/public/**/*.html' environment: FORCE_COLOR: true NPM_CONFIG_LOGLEVEL: error - -- name: publish - image: plugins/s3-sync + image: node:lts-alpine + name: beautify +- image: plugins/s3-sync + name: publish settings: access_key: from_secret: s3_access_key @@ -542,30 +486,22 @@ steps: ref: - refs/heads/main - refs/tags/** - trigger: ref: - refs/heads/main - refs/tags/** - refs/pull/** - -depends_on: -- build-package -- build-container-amd64 -- build-container-arm64 -- build-container-arm - --- +depends_on: +- docs 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 @@ -577,9 +513,8 @@ steps: when: status: - success - -- name: manifest-quay - image: plugins/manifest +- image: plugins/manifest + name: manifest-quay settings: auto_tag: true ignore_missing: true @@ -591,11 +526,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: @@ -603,24 +534,25 @@ steps: PUSHRM_FILE: README.md PUSHRM_SHORT: Keep docker hosts tidy 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 @@ -628,14 +560,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 @@ -643,12 +576,8 @@ trigger: status: - success - failure - -depends_on: -- docs - --- kind: signature -hmac: 0ceda00e37bf11614697e5f502d9cc78a8f04ba77a7862566ee6e5ecc5fc9c89 +hmac: 4ff81da3abd0a070d654cd23a42d7c19dfd6854a0b1c23b7a7042cd99c87c662 ...