2017-08-16 04:42:18 +03:00
---
- name : Get Version from checkout if not provided
shell : "git describe --long | 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
2017-08-30 20:40:18 +03:00
- 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
- name : Copy logos for inclusion in sdist
synchronize :
src : "../../awx-logos/awx/ui/client/assets"
dest : "../awx/ui/client/"
delegate_to : localhost
when : awx_official
2017-08-16 04:42:18 +03:00
- name : Set sdist file name
set_fact :
awx_sdist_file : "awx-{{ awx_version }}.tar.gz"
- name : AWX Distribution
debug :
msg : "{{ awx_sdist_file }}"
2017-09-01 05:21:25 +03:00
- name : Stat distribution file
stat :
path : "../dist/{{ awx_sdist_file }}"
delegate_to : localhost
register : sdist
2017-08-30 20:40:18 +03:00
- name : Clean distribution
shell : make clean
args :
chdir : ..
2017-09-01 05:21:25 +03:00
ignore_errors : yes
when : not sdist.stat.exists
2017-08-30 20:40:18 +03:00
delegate_to : localhost
2017-09-11 01:54:21 +03:00
- name : Build sdist builder image
docker_image :
path : "image_build/files"
dockerfile : Dockerfile.sdist
name : awx_sdist_builder
tag : "{{ awx_version }}"
force : true
2017-08-16 04:42:18 +03:00
- name : Build AWX distribution
2017-09-11 01:54:21 +03:00
docker_container :
image : "awx_sdist_builder:{{ awx_version }}"
name : awx_sdist_builder
state : started
detach : false
volumes :
2017-09-11 22:05:29 +03:00
- ../:/awx:Z
2017-08-16 04:42:18 +03:00
- 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 Makefile
copy :
src : ../Makefile
dest : "{{ docker_base_path }}/Makefile"
delegate_to : localhost
- name : Build base web image
docker_image :
path : "{{ docker_base_path }}"
dockerfile : Dockerfile
name : "{{ awx_web_image }}"
tag : "{{ awx_version }}"
delegate_to : localhost
- name : Build base task image
docker_image :
path : "{{ docker_base_path }}"
dockerfile : Dockerfile.task
name : "{{ awx_task_image }}"
tag : "{{ awx_version }}"
pull : no
delegate_to : localhost
2017-09-08 00:21:28 +03:00
2017-08-16 04:42:18 +03:00
- name : Clean docker base directory
file :
path : "{{ docker_base_path }}"
state : absent
when : cleanup_docker_base|default(True)
2017-09-01 05:21:25 +03:00
delegate_to : localhost