--- - name: "📦 Normalise the install contract for '{{ plugin_name }}'" vars: wp_plugin_catalog: "{{ lookup('config', application_id, 'addons.' ~ plugin_name ~ '.update.catalog') }}" ansible.builtin.set_fact: wp_plugin_required: "{{ lookup('config', application_id, 'addons.' ~ plugin_name ~ '.required') | bool }}" wp_plugin_pinned: "{{ wp_plugin_catalog == 'github-releases' }}" wp_plugin_pinned_version: >- {{ (lookup('config', application_id, 'addons.' ~ plugin_name ~ '.version') | regex_replace('^v', '')) if wp_plugin_catalog == 'github-releases' else '' }} wp_plugin_source: >- {{ ( 'https://github.com/' ~ lookup('config', application_id, 'addons.' ~ plugin_name ~ '.update.upstream_id') ~ '/releases/download/' ~ lookup('config', application_id, 'addons.' ~ plugin_name ~ '.version') ~ '/' ~ plugin_name ~ '.zip' ) if wp_plugin_catalog == 'github-releases' else plugin_name }} changed_when: false - name: "📦 Install and activate WordPress plugin '{{ plugin_name }}'" ansible.builtin.shell: cmd: > WP_PLUGIN={{ plugin_name | quote }} WP_SOURCE={{ wp_plugin_source | trim | quote }} WP_PINNED_VERSION={{ wp_plugin_pinned_version | trim | quote }} WP_REQUIRED={{ wp_plugin_required | bool | string | lower | quote }} WP_NETWORK={{ WORDPRESS_MULTISITE_ENABLED | bool | string | lower | quote }} WP_CONTAINER={{ WORDPRESS_CONTAINER_ADDRESS }} WP_USER={{ WORDPRESS_USER | quote }} WP_PATH={{ WORDPRESS_DOCKER_HTML_PATH | quote }} bash -s stdin: "{{ lookup('file', 'shell/install_plugin.sh') }}" register: wp_plugin_install changed_when: "'infinito-changed' in wp_plugin_install.stdout"