project-config/playbooks/service-types/promote.yaml

57 lines
2.0 KiB
YAML

# This is a variant of https://opendev.org/opendev/base-jobs/src/branch/master/playbooks/docs/promote.yaml
# It uses upload-afs-syncronize instead of upload-afs-roots to add content
# but not delete. It is also simplified for repository
# openstack/service-types-authority.
- hosts: localhost
tasks:
- name: Check execution context
when: "zuul.branch is not defined"
fail:
msg: "This playbook must be run in a branch-based pipeline (e.g., 'promote')."
- name: Download docs archive
include_role:
name: download-artifact
vars:
# download_artifact_job: provided by zuul job
download_artifact_api: "https://zuul.opendev.org/api/tenant/{{ zuul.tenant }}"
download_artifact_type:
- docs_archive
- docs_pdf
download_artifact_pipeline: gate
- name: Create working directory
file:
path: "{{ zuul.executor.work_root }}/docs"
state: directory
- name: Extract docs archive
vars:
findme:
- "{{ zuul.executor.work_root }}/docs-html.tar.bz2"
- "{{ zuul.executor.work_root }}/docs-html.tar.gz"
unarchive:
src: "{{ lookup('first_found', findme) }}"
dest: "{{ zuul.executor.work_root }}/docs"
- name: Set target directory if master
when: "zuul.branch == 'master'"
set_fact:
target_dir: "/afs/.openstack.org/project/{{ publish_site }}/"
- name: Set target directory if not master
when: "zuul.branch != 'master'"
fail:
msg: "This jobs should be only run on master branch."
- name: Get an AFS token
include_role:
name: create-afs-token
- name: Create publication directory
file:
path: "{{ target_dir }}"
state: directory
- name: Upload to AFS
include_role:
name: upload-afs-synchronize
vars:
afs_source: "{{ zuul.executor.work_root }}/docs/"
afs_target: "{{ target_dir }}"
- name: Destroy AFS token
include_role:
name: destroy-afs-token