1
0
forked from docs/doc-exports
doc-exports/playbooks/propose_update.yaml
Artem Goncharov dfe3039259
switch to git apply of the generated patch (#12)
switch to git apply of the generated patch

In comparison to a regular diff we have binary files already in patch. It is also created with the purpose to be shared (by email). Try applying it instead.

Reviewed-by: OpenTelekomCloud Bot <None>
2022-05-10 11:01:59 +00:00

105 lines
3.5 KiB
YAML

---
- hosts: localhost
vars:
vault_addr: "{{ zuul_vault_addr }}"
vault_secret_dest: "{{ zuul.executor.work_root }}/.approle-secret"
vault_token_dest: "{{ zuul.executor.work_root }}/.approle-token"
github_token_dest: "{{ zuul.executor.work_root }}/.github"
github_token_lease: "{{ zuul.executor.work_root }}/.github_lease"
roles:
# Get the Vault token from prepared secret-id
- role: create-vault-approle-token
vault_role_id: "{{ zuul_vault.vault_role_id }}"
vault_wrapping_token_id: "{{ lookup('file', vault_secret_dest) }}"
tasks:
- name: Fetch organization tokens
no_log: true
check_mode: false
ansible.builtin.uri:
url: "{{ vault_addr }}/v1/{{ zuul_vault.vault_token_path }}"
headers:
"X-Vault-Token": "{{ lookup('file', vault_token_dest) }}"
method: "POST"
body:
org_name: "opentelekomcloud-docs"
body_format: "json"
register: "org_token"
- name: Write GitHub token into the destination
no_log: true
copy:
content: "{{ org_token.json.data.token }}"
dest: "{{ github_token_dest }}"
mode: "0400"
when:
- "vault_token_dest is defined"
- "org_token is defined"
- "org_token.json is defined"
- "org_token.json.data is defined"
- "org_token.json.data.token is defined"
- name: Save token lease
no_log: true
copy:
content: "{{ org_token.json.lease_id }}"
dest: "{{ github_token_lease }}"
mode: "0400"
when:
- "vault_token_dest is defined"
- "org_token is defined"
- "org_token.json is defined"
- hosts: all
vars:
github_token_dest: "{{ zuul.executor.work_root }}/.github"
github_token: "{{ lookup('file', github_token_dest) }}"
vault_addr: "{{ zuul_vault_addr }}"
vault_token_file: "{{ zuul.executor.work_root }}/.approle-token"
github_token_lease: "{{ zuul.executor.work_root }}/.github_lease"
environment:
GITHUB_TOKEN: "{{ github_token }}"
tasks:
- name: Attempt to gracefully apply patch
block:
- name: Read project docs configuration
include_vars: "{{ docs_update_data_file }}"
- name: Configure git user name
command: "git config --global user.name 'OpenTelekomCloud Proposal Bot'"
- name: Configure git user email
command: "git config --global user.email 52695153+otcbot@users.noreply.github.com"
- name: Process patch
include_role:
name: "apply_doc_patch"
vars:
doc_label: "{{ doc.label }}"
apply_doc_patch_repository: "{{ doc.repository }}"
apply_doc_patch_diff_patch_file: "{{ ansible_user_dir }}/{{ doc.label }}.diff.patch"
apply_doc_patch_git_patch_file: "{{ ansible_user_dir }}/{{ doc.label }}.git.patch"
apply_doc_patch_target_location: "{{ doc.project_location }}"
loop: "{{ docs }}"
loop_control:
loop_var: "doc"
label: "{{ doc.label }}"
always:
- name: Revoke GitHub token lease
check_mode: false
no_log: true
delegate_to: localhost
uri:
url: "{{ vault_addr }}/v1/sys/leases/revoke"
headers:
"X-Vault-Token": "{{ lookup('file', vault_token_file) }}"
method: "PUT"
body:
lease_id: "{{ lookup('file', github_token_lease) }}"
body_format: "json"
status_code: 204