mhuin fa9cb2f468 upload-pypi: add option to register packages
When uploading packages to a devPI instance, the role fails if
the packages are not registered first. Since this is not required
on PyPI, this adds the "pypi_register_first" option to the role
so that users can choose to do so.

Change-Id: I2b50362e485175d51840e49ffc09a734b44ec85d
2019-01-08 07:49:43 +00:00

58 lines
1.8 KiB
YAML

- name: Create .pypirc configuration file tempfile
tempfile:
state: file
register: _pypirc_tmp
- name: Create .pypirc configuration file
template:
dest: "{{ _pypirc_tmp.path }}"
mode: 0400
src: .pypirc.j2
- name: Find wheels to upload
find:
paths: "{{ pypi_path }}"
patterns: "*.whl"
register: found_wheels
- name: Report no wheels to be uploaded
debug:
msg: "Found no wheels to upload: {{found_wheels.msg}}"
when: found_wheels.files == []
- name: Register packages on the PyPI server (via wheels)
command: "{{ pypi_twine_executable }} register --config-file {{ _pypirc_tmp.path }} --repository {{ pypi_repository }} {{ item.path }}"
with_items: "{{ found_wheels.files }}"
when: pypi_register_first
- name: Upload wheel with twine before tarballs
command: "{{ pypi_twine_executable }} upload --config-file {{ _pypirc_tmp.path }} -r {{ pypi_repository }} {{ item.path }}"
with_items: "{{ found_wheels.files }}"
- name: Find tarballs to upload
find:
paths: "{{ pypi_path }}"
patterns: "*.tar.gz"
register: found_tarballs
- name: Report no tarballs to be uploaded
debug:
msg: "Found no tarballs to upload: {{found_tarballs.msg}}"
when: found_tarballs.files == []
- name: Register packages on the PyPI server (via tarballs)
command: "{{ pypi_twine_executable }} register --config-file {{ _pypirc_tmp.path }} --repository {{ pypi_repository }} {{ item.path }}"
with_items: "{{ found_tarballs.files }}"
when:
- pypi_register_first
- found_wheels.files == []
- name: Upload tarballs with twine
command: "{{ pypi_twine_executable }} upload --config-file {{ _pypirc_tmp.path }} -r {{ pypi_repository }} {{ item.path }}"
with_items: "{{ found_tarballs.files }}"
- name: Delete .pypirc configuration file
file:
path: "{{ _pypirc_tmp.path }}"
state: absent