From 649665154b43834a2d8a47aa27afb71644d66ae3 Mon Sep 17 00:00:00 2001 From: Robert Kaussow Date: Tue, 20 Aug 2019 12:19:46 +0200 Subject: [PATCH] add starlark drone config --- .drone.star | 104 ++++++++++++++++++++++++++++++++++++ .drone.yml | 150 +++++++++++++++++++++++++++++----------------------- 2 files changed, 187 insertions(+), 67 deletions(-) create mode 100644 .drone.star diff --git a/.drone.star b/.drone.star new file mode 100644 index 0000000..f375f85 --- /dev/null +++ b/.drone.star @@ -0,0 +1,104 @@ +def pipeline_build(): + step_build = { + 'image': 'xoxys/rpmbuild', + 'name': 'build', + 'environment': { + 'CUPSRELEASE': '${DRONE_TAG##v}' + }, + 'commands': [ + '[ -z "$CUPSRELEASE" ] && CUPSRELEASE=2.2.10', + 'wget https://github.com/apple/cups/releases/download/v$CUPSRELEASE/cups-$CUPSRELEASE-source.tar.gz', + 'mkdir ./rpms', + 'rpmbuild -ta --define "_rpmdir $(pwd)/rpms" --without libusb1 cups-$CUPSRELEASE-source.tar.gz' + ] + } + + step_checksum = { + 'name': 'checksum', + 'image': 'alpine', + 'commands': [ + 'apk add --no-cache coreutils', + 'sha256sum -b rpms/x86_64/* > sha256sum.txt' + ] + } + + step_sign = { + 'name': 'gpgsign', + 'image': 'plugins/gpgsign:1', + 'pull': 'always', + 'settings': { + 'key': { 'from_secret': 'gpgsign_key' }, + 'passphrase': { 'from_secret': 'gpgsign_passphrase' }, + 'detach_sign': True, + 'files': [ + 'rpms/x86_64/*' + ] + }, + 'when': { + 'ref': { + 'exclude': ['refs/pull/**'], + }, + }, + } + + step_publish = { + 'name': 'publish', + 'image': 'plugins/gitea-release', + 'settings': { + 'base_url': 'https://gitea.rknet.org', + 'api_key': { 'from_secret': 'gitea_token' }, + 'files': [ + 'rpms/x86_64/*', + 'sha256sum.txt' + ], + 'title': '${DRONE_TAG}' + }, + 'when': { + 'ref': ['refs/tags/**'], + } + } + + return { + 'kind': 'pipeline', + 'name': 'build', + 'steps': [ + step_build, + step_checksum, + step_sign, + step_publish + ] + } + + +def pipeline_notify(deps=[]): + step_matrix = { + 'name': 'matrix', + 'image': 'plugins/matrix', + 'settings': { + 'homeserver': 'https://matrix.rknet.org', + 'roomid': 'MtidqQXWWAtQcByBhH:rknet.org', + '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' }, + } + } + + return { + 'kind': 'pipeline', + 'name': 'notifications', + 'steps': [ + step_matrix, + ], + 'depends_on': deps, + 'trigger': { + 'ref': ['refs/heads/master', 'refs/tags/**'], + 'status': [ 'success', 'failure' ], + }, + } + + +def main(): + return [ + pipeline_build(), + pipeline_notify(deps=[pipeline_build().get('name')]) + ] diff --git a/.drone.yml b/.drone.yml index 99dd80a..d78f30a 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,75 +1,91 @@ --- kind: pipeline -name: default +name: build + +platform: + os: linux + arch: amd64 steps: - - name: build - image: xoxys/rpmbuild - pull: always - environment: - CUPSRELEASE: "${DRONE_TAG##v}" - commands: - - '[ -z "$CUPSRELEASE" ] && CUPSRELEASE=2.2.10' - - wget https://github.com/apple/cups/releases/download/v$CUPSRELEASE/cups-$CUPSRELEASE-source.tar.gz - - mkdir ./rpms - - rpmbuild -ta --define "_rpmdir $(pwd)/rpms" --without libusb1 cups-$CUPSRELEASE-source.tar.gz - when: - event: - - push - - tag +- name: build + image: xoxys/rpmbuild + commands: + - "[ -z \"$CUPSRELEASE\" ] && CUPSRELEASE=2.2.10" + - wget https://github.com/apple/cups/releases/download/v$CUPSRELEASE/cups-$CUPSRELEASE-source.tar.gz + - mkdir ./rpms + - "rpmbuild -ta --define \"_rpmdir $(pwd)/rpms\" --without libusb1 cups-$CUPSRELEASE-source.tar.gz" + environment: + CUPSRELEASE: "${DRONE_TAG##v}" + +- name: checksum + image: alpine + commands: + - apk add --no-cache coreutils + - "sha256sum -b rpms/x86_64/* > sha256sum.txt" + +- name: gpgsign + pull: always + image: plugins/gpgsign:1 + settings: + detach_sign: true + files: + - "rpms/x86_64/*" + key: + from_secret: gpgsign_key + passphrase: + from_secret: gpgsign_passphrase + when: + ref: + exclude: + - "refs/pull/**" - - name: checksum - image: alpine - pull: always - commands: - - apk add --no-cache coreutils - - sha256sum -b rpms/x86_64/* > sha256sum.txt - when: - event: - - push - - tag +- name: publish + image: plugins/gitea-release + settings: + api_key: + from_secret: gitea_token + base_url: https://gitea.rknet.org + files: + - "rpms/x86_64/*" + - sha256sum.txt + title: "${DRONE_TAG}" + when: + ref: + - "refs/tags/**" + +--- +kind: pipeline +name: notifications - - name: gpgsign - image: plugins/gpgsign:1 - pull: always - settings: - key: - from_secret: gpgsign_key - passphrase: - from_secret: gpgsign_passphrase - detach_sign: true - files: - - rpms/x86_64/* - when: - event: - - push - - tag +platform: + os: linux + arch: amd64 - - name: publish - image: plugins/gitea-release - settings: - base_url: https://gitea.rknet.org - api_key: - from_secret: gitea_token - files: - - rpms/x86_64/* - - sha256sum.txt - title: "${DRONE_TAG}" - when: - event: - - tag +steps: +- name: matrix + image: plugins/matrix + settings: + homeserver: https://matrix.rknet.org + password: + from_secret: matrix_password + roomid: MtidqQXWWAtQcByBhH:rknet.org + template: "Status: **{{ build.status }}**
Build: [{{ repo.Owner }}/{{ repo.Name }}]({{ build.link }}) ({{ build.branch }}) by {{ build.author }}
Message: {{ build.message }}" + username: + from_secret: matrix_username + +trigger: + ref: + - refs/heads/master + - "refs/tags/**" + status: + - success + - failure + +depends_on: +- build + +--- +kind: signature +hmac: 1ded387fbbaa7f8c65b0d80499e0c3bac52839f76e8a5530a5ca2ffd3032c02a - - name: notify - image: plugins/matrix - settings: - homeserver: https://matrix.rknet.org - roomid: MtidqQXWWAtQcByBhH:rknet.org - 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 - when: - status: - - success - - failure +...