openafs-deb-package-build: sign created debs

This is step 1 in promoting the openafs deb packages to the
openstack-ci PPA.  It should grab the debs from the gate build and
sign the .changes file with our key.

This is intentionally not uploading yet as we just want to test the
secret import and signing path before we add the key and permissions
to the upstream PPA.

Change-Id: Idd91818093588113b84c1d91b4895df589aa7912
This commit is contained in:
Ian Wienand 2022-05-04 13:37:49 +10:00
parent 8f228941cf
commit 58cb728310
4 changed files with 275 additions and 1 deletions

View File

@ -0,0 +1,51 @@
- hosts: all
tasks:
- name: Install PPA private key
include_role:
name: add-gpgkey
- name: Download source package artifacts
include_role:
name: download-artifact
vars:
download_artifact_api: "https://zuul.opendev.org/api/tenant/{{ zuul.tenant }}"
download_artifact_type: deb.tar.gz
download_artifact_pipeline: gate
download_artifact_job: openafs-deb-package-build
download_artifact_directory: '{{ ansible_user_dir }}'
- name: Extract sources
unarchive:
src: '{{ ansible_user_dir }}/openafs-debs.tar.gz'
dest: '{{ ansible_user_dir }}'
remote_src: yes
- name: Find changes files
find:
paths: '{{ ansible_user_dir }}/openafs'
patterns: '*.changes'
register: _changes_files
- name: Install dependencies
package:
name:
- devscripts
- dput
become: yes
- name: Sign changes file
shell: |
debsign -k "{{ gpg_key.key_id }}" -S --debs-dir "{{ zuul.executor.work_root }}" "{{ item }}"
loop: "{{ _changes_files.files | map(attribute='path') | list }}"
- name: Setup dput config
copy:
dest: '{{ ansible_user_dir }}/.dput.cf'
content: |
[ppa-openafs]
fqdn = ppa.launchpad.net
method = ftp
incoming = ~openstack-ci-core/ubuntu/openafs
login = anonymous

View File

@ -1383,11 +1383,23 @@
name: openafs-deb-package-build
description: |
Push deb builds
provides: openafs-deb-packages
run: playbooks/openafs-deb-package-build/run.yaml
files:
files: &deb-files
- playbooks/openafs-deb-package-build
- roles/openafs-deb-package-build
- job:
name: openafs-deb-package-build-promote
requires: openafs-deb-packages
description: |
Publish the openafs RPM packages
run: playbooks/openafs-deb-package-build/publish.yaml
files: *deb-files
secrets:
- secret: openstack_ci_ppa_upload_key
name: gpg_key
- job:
name: openstack-zuul-jobs-linters
parent: tox

View File

@ -74,6 +74,7 @@
- roles/build-wheel-cache
gate:
jobs:
- openafs-deb-package-build
- openafs-rpm-package-build-centos-7-x86
- openafs-rpm-package-build-centos-8-stream-x86
- openafs-rpm-package-build-centos-8-stream-arm64
@ -83,3 +84,4 @@
promote:
jobs:
- openafs-rpm-package-build-promote
- openafs-deb-package-build-promote

209
zuul.d/secrets.yaml Normal file
View File

@ -0,0 +1,209 @@
- secret:
name: openstack_ci_ppa_upload_key
data:
key_id: CF7A900F4857AA77622506D16392578763F14B1E
public: |
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
kIaVzk8A9eFwHnnts+K/QTSnCfhFuw==
=bzhj
-----END PGP PUBLIC KEY BLOCK-----
private: !encrypted/pkcs1-oaep
- eszJkgbTWuvULBrlbtb1DbleADZkvIY2fB507vw2virhYGR7e8sAVpS8wDOPG3hYPIBqo
vyDAGu3qFpudeLNVu+D3dsi13Mmz9kUMF3GkCMAbeeEaW+4AsNt3RcuGpXC+0yBULGYuR
loBAaxhakxoLo4LQUwp4jP+7GkzuFVweHGNgiG34/xeMpeV4m7vwQxbGK0pWQuPuMnHD2
WaCKaFQI5mer5hjwom1Ci9s5ucnu+2SWFhHnSo8J9UTxh8y7kn2M3f2ZT8Hq7TIXmvZ3H
s0H196aaQ44r/z3tL/HWGcWNzsOnY4fCfq4wXPEYNJJutCjpAwdWKVcBBYjYv7lxS6two
9ulx+lpo1lqYPB3oc/e8A86ULsl+YkDg+NI8oyQICa3afzXhgTXcQsm1fscdl3nshj8Zk
7Y/H+zLa4L/FPUdaFetpcxYWXMfnIX9AS8C1n8uai2BvUOCGGxFpamCXcu7r5sDDTafnS
OoqCzikxvvnriZyt2OnAk5PClQzlUGI+CRQN4m4pD9y1TmWPjOYkIeLaD8FXU/oWCflv2
giiTT+1ySK/MAaIkXrw7gDVAHk+dkxPuMoNQSBMHiNP1wmT25m0tgHzJ/Sdrdp5Lr7V80
s243eZHgksRQu1lfIocUI+CI4kFlyAhDoVPX8FY/oU3/Za2611va0VyXzjt55I=
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- W1HNOssgLMoh2gPkUBvM6E7JalETM9mwBGDhzu+2VyoSx1Q3hfiikAA7uZ7Hj2MnH5hiS
zrMXwFG4SkZkw8poGfKV/4lNFmUzlEOgbwPjjYx7uKXJxvaZm4Sub9r3AKr7YQ/bH0Fn/
n+QWb+Jb6iF+OQscXgWwvjz43LFe68+d82hOKpzJDusHo+5eLknvsbiaPv6V+cFPerlEe
UwTWY7V68kvW/h9qKCIxaro+/6kN+s5kyj7+vHYR5HEtX7ao1GnLb9gD9O1k+rMVyAVO/
urHrIp+edGL2rCNmul5mxD+/8n2BLNvoB0FvRAaGqIW3tlN4drimMErEz84ns7y3NYe01
ekt/P9nP3fR6uyqQFdl8TPfi1165eIntNVV5gnwZe8Wn2Fbg2dMiD3mG2Js0NqjIaXErG
70+r6VND90Yw8LTvKvqCD3oB97zTGp8YoGOg9w3AwctvIxXQETQoeSUiB+AYobvZ7ExLp
4hNG4PRHIupFg+hJ3qljgAW4oeURRafG9qkdO5ywsici+xfsYO8kgMoWmROT0BKsczD2P
gFwRpfynFxXyZTzoNMIgpkKPP1o//N13SbFFtxPvxeSls950JFU57Ho0yfZhFb+eAe/Kr
3UjLxo5QNnIHtA6TRN23BaBlF9Th90C+DALx8SclHzdAE0qkk2lNPGAXyJ1uRI=
- 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
- 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
- Uh/0OIiQR8Nz1Zn0xjC/LS2raXM40Pv3u3Ts5rwpNpuf7Odfkj9xzgW4tMNWGzKEj/azV
y1tco6CK6T1dOFrWziJzi712VCM8x7vKmVRWQ9mewg4yUE2up112lHjzm0bmRCUfpq4NE
GE5xi1mBOEWQAGg3m7MGH/sYmzXTmlmNIqERiehBZmUkDAg1b6t46wC7Daq6ciH4eI59o
dGnBrFqoJVnoh2iD10fiFJFOMfnwaN2GcJ7RZY616Indx6dNQKbtXadUd5zTOabwJtILT
T6FQ54ic9AfTOJ7pHB1ytctNKrmbNj/tVwHXT9vs6ks6oERHmJ9nskuujLjt4yKt19ZjO
U1CrIW857wtzZcwd5P9RpWn7+qFhSHKCnso90xRvZ2qUKhyR6lDXsO/oGUPSkzU9E180A
zslR93egW7fR4dcNSPWMll8a3ToqFLcbXyuPjANUcLudltOJ8tPxqMevDoP1oNNXEKEsQ
qN5Qpve4qd3r0YIwgAtB1MBvA5AgrYyruXw7wZgoa4vC3k5iI1DVcBcpA/WhYsY0Uu2uq
BiKCcHAPy7LTFfU6qehBTQ8bMJG8Qk29uWJs46NApF54OanGr8VBfA9pxLZ8RUvJvWOmk
MAvVv37vpiNflZMPldtzxK/BhyrrY02c1UJCbYaEbJJKQoELnuBqJ+WEbJynjg=
- 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
- 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