From 3abce0822e6b6db0152a73b08c6c97adfd0ba8d0 Mon Sep 17 00:00:00 2001 From: Robert Kaussow Date: Sat, 11 Apr 2020 19:28:56 +0200 Subject: [PATCH] prepare pypi release --- .drone.jsonnet | 370 +++++++++++++++++++++++-------------------- .drone.yml | 85 +++++++--- CHANGELOG.md | 0 gitbatch/__init__.py | 2 +- 4 files changed, 261 insertions(+), 196 deletions(-) create mode 100644 CHANGELOG.md diff --git a/.drone.jsonnet b/.drone.jsonnet index ba0e9b6..f9f1220 100644 --- a/.drone.jsonnet +++ b/.drone.jsonnet @@ -1,239 +1,271 @@ -local PythonVersion(pyversion="3.5") = { - name: "python" + std.strReplace(pyversion, '.', '') + "-pytest", - image: "python:" + pyversion, - pull: "always", - environment: { - PY_COLORS: 1 - }, - commands: [ - "pip install -r dev-requirements.txt -qq", - "pip install -qq .", - "git-batch --help", - ], - depends_on: [ - "clone", - ], +local PythonVersion(pyversion='3.5') = { + name: 'python' + std.strReplace(pyversion, '.', '') + '-pytest', + image: 'python:' + pyversion, + pull: 'always', + environment: { + PY_COLORS: 1, + }, + commands: [ + 'pip install -r dev-requirements.txt -qq', + 'pip install -qq .', + 'git-batch --help', + ], + depends_on: [ + 'clone', + ], }; local PipelineLint = { - kind: "pipeline", - name: "lint", - platform: { - os: "linux", - arch: "amd64", - }, - steps: [ - { - name: "flake8", - image: "python:3.8", - pull: "always", - environment: { - PY_COLORS: 1 - }, - commands: [ - "pip install -r dev-requirements.txt -qq", - "pip install -qq .", - "flake8 ./gitbatch", - ], - }, - ], - trigger: { - ref: ["refs/heads/master", "refs/tags/**", "refs/pull/**"], + kind: 'pipeline', + name: 'lint', + platform: { + os: 'linux', + arch: 'amd64', + }, + steps: [ + { + name: 'flake8', + image: 'python:3.8', + pull: 'always', + environment: { + PY_COLORS: 1, + }, + commands: [ + 'pip install -r dev-requirements.txt -qq', + 'pip install -qq .', + 'flake8 ./gitbatch', + ], }, + ], + trigger: { + ref: ['refs/heads/master', 'refs/tags/**', 'refs/pull/**'], + }, }; local PipelineTest = { - kind: "pipeline", - name: "test", - platform: { - os: "linux", - arch: "amd64", - }, - steps: [ - PythonVersion(pyversion="3.5"), - PythonVersion(pyversion="3.6"), - PythonVersion(pyversion="3.7"), - PythonVersion(pyversion="3.8"), - ], - trigger: { - ref: ["refs/heads/master", "refs/tags/**", "refs/pull/**"], - }, - depends_on: [ - "lint", - ], + kind: 'pipeline', + name: 'test', + platform: { + os: 'linux', + arch: 'amd64', + }, + steps: [ + PythonVersion(pyversion='3.5'), + PythonVersion(pyversion='3.6'), + PythonVersion(pyversion='3.7'), + PythonVersion(pyversion='3.8'), + ], + trigger: { + ref: ['refs/heads/master', 'refs/tags/**', 'refs/pull/**'], + }, + depends_on: [ + 'lint', + ], }; local PipelineSecurity = { - kind: "pipeline", - name: "security", - platform: { - os: "linux", - arch: "amd64", + kind: 'pipeline', + name: 'security', + platform: { + os: 'linux', + arch: 'amd64', + }, + steps: [ + { + name: 'bandit', + image: 'python:3.8', + pull: 'always', + environment: { + PY_COLORS: 1, + }, + commands: [ + 'pip install -r dev-requirements.txt -qq', + 'pip install -qq .', + 'bandit -r ./gitbatch -x ./gitbatch/tests', + ], }, - steps: [ - { - name: "bandit", - image: "python:3.8", - pull: "always", - environment: { - PY_COLORS: 1 - }, - commands: [ - "pip install -r dev-requirements.txt -qq", - "pip install -qq .", - "bandit -r ./gitbatch -x ./gitbatch/tests", - ], - }, - ], - depends_on: [ - "test", - ], - trigger: { - ref: ["refs/heads/master", "refs/tags/**", "refs/pull/**"], + ], + depends_on: [ + 'test', + ], + trigger: { + ref: ['refs/heads/master', 'refs/tags/**', 'refs/pull/**'], + }, +}; + +local PipelineBuildPackage = { + kind: 'pipeline', + name: 'build-package', + platform: { + os: 'linux', + arch: 'amd64', + }, + steps: [ + { + name: 'build', + image: 'python:3.8', + commands: [ + 'python setup.py sdist bdist_wheel', + ], + }, + { + name: 'checksum', + image: 'alpine', + commands: [ + 'cd dist/ && sha256sum * > ../sha256sum.txt', + ], }, + { + name: 'publish-github', + image: 'plugins/github-release', + settings: { + overwrite: true, + api_key: { from_secret: 'github_token' }, + files: ['dist/*', 'sha256sum.txt'], + title: '${DRONE_TAG}', + note: 'CHANGELOG.md', + }, + when: { + ref: ['refs/tags/**'], + }, + }, + { + name: 'publish-pypi', + image: 'plugins/pypi', + settings: { + username: { from_secret: 'pypi_username' }, + password: { from_secret: 'pypi_password' }, + repository: 'https://upload.pypi.org/legacy/', + skip_build: true, + }, + when: { + ref: ['refs/tags/**'], + }, + }, + ], + depends_on: [ + 'security', + ], + trigger: { + ref: ['refs/heads/master', 'refs/tags/**', 'refs/pull/**'], + }, }; -local PipelineBuildContainer(arch="amd64") = { - kind: "pipeline", - name: "build-container-" + arch, +local PipelineBuildContainer(arch='amd64') = { + kind: 'pipeline', + name: 'build-container-' + arch, platform: { - os: "linux", + os: 'linux', arch: arch, }, steps: [ { - name: "build", - image: "python:3.8", - pull: "always", + name: 'build', + image: 'python:3.8', + pull: 'always', commands: [ - "python setup.py bdist_wheel", - ] + 'python setup.py bdist_wheel', + ], }, { - name: "dryrun", - image: "plugins/docker:18-linux-" + arch, - pull: "always", + name: 'dryrun', + image: 'plugins/docker:18-linux-' + arch, + pull: 'always', settings: { dry_run: true, - dockerfile: "Dockerfile", - repo: "xoxys/git-batch", - username: { "from_secret": "docker_username" }, - password: { "from_secret": "docker_password" }, + dockerfile: 'Dockerfile', + repo: 'xoxys/git-batch', + username: { from_secret: 'docker_username' }, + password: { from_secret: 'docker_password' }, }, when: { - ref: ["refs/pull/**"], + ref: ['refs/pull/**'], }, }, { - name: "publish", - image: "plugins/docker:18-linux-" + arch, - pull: "always", + name: 'publish', + image: 'plugins/docker:18-linux-' + arch, + pull: 'always', settings: { auto_tag: true, auto_tag_suffix: arch, - dockerfile: "Dockerfile", - repo: "xoxys/git-batch", - username: { "from_secret": "docker_username" }, - password: { "from_secret": "docker_password" }, + dockerfile: 'Dockerfile', + repo: 'xoxys/git-batch', + username: { from_secret: 'docker_username' }, + password: { from_secret: 'docker_password' }, }, when: { - ref: ["refs/heads/master", "refs/tags/**"], + ref: ['refs/heads/master', 'refs/tags/**'], }, }, ], depends_on: [ - "security", + 'security', ], trigger: { - ref: ["refs/heads/master", "refs/tags/**", "refs/pull/**"], + ref: ['refs/heads/master', 'refs/tags/**', 'refs/pull/**'], }, }; local PipelineNotifications = { - kind: "pipeline", - name: "notifications", + kind: 'pipeline', + name: 'notifications', platform: { - os: "linux", - arch: "amd64", + os: 'linux', + arch: 'amd64', }, steps: [ { - image: "plugins/manifest", - name: "manifest", - pull: "always", + image: 'plugins/manifest', + name: 'manifest', settings: { ignore_missing: true, auto_tag: true, - username: { from_secret: "docker_username" }, - password: { from_secret: "docker_password" }, - spec: "manifest.tmpl", - }, - when: { - ref: [ - 'refs/heads/master', - 'refs/tags/**', - ], + username: { from_secret: 'docker_username' }, + password: { from_secret: 'docker_password' }, + spec: 'manifest.tmpl', }, }, { - name: "readme", - image: "sheogorath/readme-to-dockerhub", - pull: "always", + name: 'readme', + image: 'sheogorath/readme-to-dockerhub', environment: { - DOCKERHUB_USERNAME: { from_secret: "docker_username" }, - DOCKERHUB_PASSWORD: { from_secret: "docker_password" }, - DOCKERHUB_REPO_PREFIX: "xoxys", - DOCKERHUB_REPO_NAME: "git-batch", - README_PATH: "README.md", - SHORT_DESCRIPTION: "git-batch" - }, - when: { - ref: [ - 'refs/heads/master', - 'refs/tags/**', - ], + DOCKERHUB_USERNAME: { from_secret: 'docker_username' }, + DOCKERHUB_PASSWORD: { from_secret: 'docker_password' }, + DOCKERHUB_REPO_PREFIX: 'xoxys', + DOCKERHUB_REPO_NAME: 'git-batch', + README_PATH: 'README.md', + SHORT_DESCRIPTION: 'git-batch - Automate cloning a single branch from a repo list', }, }, { - name: "microbadger", - image: "plugins/webhook", - pull: "always", + name: 'matrix', + image: 'plugins/matrix', settings: { - urls: { from_secret: "microbadger_url" }, - }, - }, - { - name: "matrix", - image: "plugins/matrix", - settings: { - template: "Status: **{{ build.status }}**
Build: [{{ repo.Owner }}/{{ repo.Name }}]({{ build.link }}) ({{ build.branch }}) by {{ build.author }}
Message: {{ build.message }}", - roomid: { "from_secret": "matrix_roomid" }, - homeserver: { "from_secret": "matrix_homeserver" }, - username: { "from_secret": "matrix_username" }, - password: { "from_secret": "matrix_password" }, - }, - when: { - status: [ "success", "failure" ], + homeserver: { from_secret: 'matrix_homeserver' }, + 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' }, + password: { from_secret: 'matrix_password' }, }, }, ], depends_on: [ - "build-container-amd64", - "build-container-arm64", - "build-container-arm" + 'docs', ], trigger: { - ref: ["refs/heads/master", "refs/tags/**"], - status: [ "success", "failure" ], + ref: ['refs/heads/master', 'refs/tags/**'], + status: ['success', 'failure'], }, }; [ - PipelineLint, - PipelineTest, - PipelineSecurity, - PipelineBuildContainer(arch="amd64"), - PipelineBuildContainer(arch="arm64"), - PipelineBuildContainer(arch="arm"), - PipelineNotifications, + PipelineLint, + PipelineTest, + PipelineSecurity, + PipelineBuildPackage, + PipelineBuildContainer(arch='amd64'), + PipelineBuildContainer(arch='arm64'), + PipelineBuildContainer(arch='arm'), + PipelineNotifications, ] diff --git a/.drone.yml b/.drone.yml index f662521..554b535 100644 --- a/.drone.yml +++ b/.drone.yml @@ -117,6 +117,62 @@ trigger: depends_on: - test +--- +kind: pipeline +name: build-package + +platform: + os: linux + arch: amd64 + +steps: +- name: build + image: python:3.8 + commands: + - python setup.py sdist bdist_wheel + +- name: checksum + image: alpine + commands: + - cd dist/ && sha256sum * > ../sha256sum.txt + +- name: publish-github + image: plugins/github-release + settings: + api_key: + from_secret: github_token + files: + - dist/* + - sha256sum.txt + note: CHANGELOG.md + overwrite: true + title: ${DRONE_TAG} + when: + ref: + - refs/tags/** + +- name: publish-pypi + image: plugins/pypi + settings: + password: + from_secret: pypi_password + repository: https://upload.pypi.org/legacy/ + skip_build: true + username: + from_secret: pypi_username + when: + ref: + - refs/tags/** + +trigger: + ref: + - refs/heads/master + - refs/tags/** + - refs/pull/** + +depends_on: +- security + --- kind: pipeline name: build-container-amd64 @@ -295,7 +351,6 @@ platform: steps: - name: manifest - pull: always image: plugins/manifest settings: auto_tag: true @@ -305,13 +360,8 @@ steps: spec: manifest.tmpl username: from_secret: docker_username - when: - ref: - - refs/heads/master - - refs/tags/** - name: readme - pull: always image: sheogorath/readme-to-dockerhub environment: DOCKERHUB_PASSWORD: @@ -321,18 +371,7 @@ steps: DOCKERHUB_USERNAME: from_secret: docker_username README_PATH: README.md - SHORT_DESCRIPTION: git-batch - when: - ref: - - refs/heads/master - - refs/tags/** - -- name: microbadger - pull: always - image: plugins/webhook - settings: - urls: - from_secret: microbadger_url + SHORT_DESCRIPTION: git-batch - Automate cloning a single branch from a repo list - name: matrix image: plugins/matrix @@ -346,10 +385,6 @@ steps: 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: @@ -360,12 +395,10 @@ trigger: - failure depends_on: -- build-container-amd64 -- build-container-arm64 -- build-container-arm +- docs --- kind: signature -hmac: b0b80a9e961c9d56a25b583c0e5404b09039a725be5e635670d7c2ef346add5e +hmac: 3e6e5bc16fce1351d01113283724c7642644fa7be4726e77879986a08395080b ... diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..e69de29 diff --git a/gitbatch/__init__.py b/gitbatch/__init__.py index 7bc2316..3ce08c9 100644 --- a/gitbatch/__init__.py +++ b/gitbatch/__init__.py @@ -2,7 +2,7 @@ __author__ = "Robert Kaussow" __project__ = "git-batch" -__version__ = "0.1.0" +__version__ = "0.2.0" __license__ = "MIT" __maintainer__ = "Robert Kaussow" __email__ = "mail@geeklabor.de"