--- - name: Get Version from checkout if not provided shell: "git describe --long --first-parent | sed 's/\\-g.*//' | sed 's/\\-/\\./'" delegate_to: localhost register: awx_version_command when: awx_version is not defined - name: Set global version if not provided set_fact: awx_version: "{{ awx_version_command.stdout }}" when: awx_version is not defined - name: Verify awx-logos directory exists for official install stat: path: "../../awx-logos" delegate_to: localhost register: logosdir failed_when: logosdir.stat.isdir is not defined or not logosdir.stat.isdir when: awx_official|default(false)|bool - name: Copy logos for inclusion in sdist copy: src: "../../awx-logos/awx/ui/client/assets" dest: "../awx/ui/client/" delegate_to: localhost when: awx_official|default(false)|bool - name: Set sdist file name set_fact: awx_sdist_file: "awx-{{ awx_version }}.tar.gz" - name: AWX Distribution debug: msg: "{{ awx_sdist_file }}" - name: Stat distribution file stat: path: "../dist/{{ awx_sdist_file }}" delegate_to: localhost register: sdist - name: Clean distribution shell: make clean args: chdir: .. ignore_errors: yes when: not sdist.stat.exists delegate_to: localhost - name: Build sdist builder image docker_image: buildargs: http_proxy: "{{ http_proxy | default('') }}" https_proxy: "{{ https_proxy | default('') }}" no_proxy: "{{ no_proxy | default('') }}" path: "image_build/files" dockerfile: Dockerfile.sdist name: awx_sdist_builder tag: "{{ awx_version }}" force: true delegate_to: localhost when: use_container_for_build|default(true)|bool - name: Build AWX distribution using container docker_container: env: http_proxy: "{{ http_proxy | default('') }}" https_proxy: "{{ https_proxy | default('') }}" no_proxy: "{{ no_proxy | default('') }}" image: "awx_sdist_builder:{{ awx_version }}" name: awx_sdist_builder state: started detach: false volumes: - ../:/awx:Z delegate_to: localhost when: use_container_for_build|default(true)|bool - name: Build AWX distribution locally shell: make sdist args: chdir: .. delegate_to: localhost when: not use_container_for_build|default(true)|bool - name: Set docker build base path set_fact: docker_base_path: "{{ awx_local_base_config_path|default('/tmp') }}/docker-image" - name: Set awx_web image name set_fact: awx_web_image: "{{ awx_web_image|default('awx_web') }}" - name: Set awx_task image name set_fact: awx_task_image: "{{ awx_task_image|default('awx_task') }}" - name: Ensure directory exists file: path: "{{ docker_base_path }}" state: directory delegate_to: localhost - name: Stage sdist copy: src: "../dist/{{ awx_sdist_file }}" dest: "{{ docker_base_path }}/{{ awx_sdist_file }}" delegate_to: localhost - name: Template web Dockerfile template: src: Dockerfile.j2 dest: "{{ docker_base_path }}/Dockerfile" delegate_to: localhost - name: Template task Dockerfile template: src: Dockerfile.task.j2 dest: "{{ docker_base_path }}/Dockerfile.task" delegate_to: localhost - name: Stage launch_awx copy: src: launch_awx.sh dest: "{{ docker_base_path }}/launch_awx.sh" mode: '0700' delegate_to: localhost - name: Stage launch_awx_task copy: src: launch_awx_task.sh dest: "{{ docker_base_path }}/launch_awx_task.sh" mode: '0700' delegate_to: localhost - name: Stage nginx.conf copy: src: nginx.conf dest: "{{ docker_base_path }}/nginx.conf" delegate_to: localhost - name: Stage supervisor.conf copy: src: supervisor.conf dest: "{{ docker_base_path }}/supervisor.conf" delegate_to: localhost - name: Stage supervisor_task.conf copy: src: supervisor_task.conf dest: "{{ docker_base_path }}/supervisor_task.conf" delegate_to: localhost - name: Stage settings.py copy: src: settings.py dest: "{{ docker_base_path }}/settings.py" delegate_to: localhost - name: Stage requirements copy: src: ../requirements/ dest: "{{ docker_base_path }}/requirements" delegate_to: localhost - name: Stage config watcher copy: src: ../tools/scripts/config-watcher dest: "{{ docker_base_path }}/config-watcher" delegate_to: localhost - name: Stage Makefile copy: src: ../Makefile dest: "{{ docker_base_path }}/Makefile" delegate_to: localhost - name: Stage ansible repo copy: src: 'ansible.repo' dest: '{{ docker_base_path }}/ansible.repo' delegate_to: localhost - name: Stage ansible repo key copy: src: 'RPM-GPG-KEY-ansible-release' dest: '{{ docker_base_path }}/RPM-GPG-KEY-ansible-release' delegate_to: localhost - name: Build base web image docker_image: buildargs: http_proxy: "{{ http_proxy | default('') }}" https_proxy: "{{ https_proxy | default('') }}" no_proxy: "{{ no_proxy | default('') }}" path: "{{ docker_base_path }}" dockerfile: Dockerfile name: "{{ awx_web_image }}" tag: "{{ awx_version }}" delegate_to: localhost - name: Build base task image docker_image: buildargs: http_proxy: "{{ http_proxy | default('') }}" https_proxy: "{{ https_proxy | default('') }}" no_proxy: "{{ no_proxy | default('') }}" path: "{{ docker_base_path }}" dockerfile: Dockerfile.task name: "{{ awx_task_image }}" tag: "{{ awx_version }}" pull: no delegate_to: localhost - name: Clean docker base directory file: path: "{{ docker_base_path }}" state: absent when: cleanup_docker_base|default(True) delegate_to: localhost