f2bc6bb699
For some reason (unknown really for us) triggering webhook with http basic auth using Ansible's uri module started recently failing when it is run on some operating systems, like e.g. Ubuntu Noble. Let's switch to use curl command directly to trigger that webhook instead. Change-Id: Idbf643ea27220504ac9e37eaf9f18930d2fc08ab
46 lines
1.7 KiB
YAML
46 lines
1.7 KiB
YAML
- name: Check for webhook id
|
|
fail:
|
|
msg: You must define the webhook id. Get this from the webhook info page on RTD
|
|
when: rtd_webhook_id is not defined
|
|
|
|
- name: Check for an authentication type
|
|
fail:
|
|
msg: Must set either rtd_credentials.username or rtd_credentials.integration_token
|
|
when: (rtd_credentials.username is not defined) and (rtd_credentials.integration_token is not defined)
|
|
|
|
- name: Upload to RTD
|
|
when: rtd_credentials.username is defined
|
|
block:
|
|
- name: Require password
|
|
fail:
|
|
msg: password is required when using rtd_credentials.username
|
|
when: rtd_credentials.password is not defined
|
|
|
|
- name: Trigger readthedocs build webhook via authentication
|
|
# NOTE(ianw): 2024-11-08 the URI module fails here in mysterious
|
|
# -- seeminly platform dependent -- ways; see
|
|
# https://github.com/readthedocs/readthedocs.org/issues/11753
|
|
# We call curl directly to work around this
|
|
ansible.builtin.command: >-
|
|
curl
|
|
-X POST
|
|
-u {{ rtd_credentials.username }}:{{ rtd_credentials.password }}
|
|
'https://readthedocs.org/api/v2/webhook/{{ rtd_project_name }}/{{ rtd_webhook_id }}/'
|
|
# avoid logging any credentials
|
|
no_log: true
|
|
|
|
- name: Trigger RTD docs
|
|
when: rtd_credentials.integration_token is defined and
|
|
rtd_credentials.username is not defined
|
|
block:
|
|
- name: Trigger readthedocs build webhook via token
|
|
uri:
|
|
method: POST
|
|
url: 'https://readthedocs.org/api/v2/webhook/{{ rtd_project_name }}/{{ rtd_webhook_id }}/'
|
|
body_format: form-urlencoded
|
|
body:
|
|
token: '{{ rtd_credentials.integration_token }}'
|
|
follow_redirects: all
|
|
# avoid logging any credentials
|
|
no_log: true
|