diff --git a/playbooks/openafs-deb-package-build/publish.yaml b/playbooks/openafs-deb-package-build/publish.yaml new file mode 100644 index 00000000..4031f4d7 --- /dev/null +++ b/playbooks/openafs-deb-package-build/publish.yaml @@ -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 + diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index e5123a21..4ac5c259 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -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 diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index 3d0daec0..44912ff4 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -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 diff --git a/zuul.d/secrets.yaml b/zuul.d/secrets.yaml new file mode 100644 index 00000000..2c7c3c5b --- /dev/null +++ b/zuul.d/secrets.yaml @@ -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 + - 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