Initial role for building OpenWRT images
[noc.git] / ansible / roles / openwrt-image / tasks / main.yml
1 - include: 00-fetch.yml
2   when: openwrt_imgbuilder_tarball is not defined
3
4 - name: Create temporary build directory
5   command: mktemp -d openwrt-{{ ansible_hostname }}.XXXXXX
6   register: tmpdir
7
8 - set_fact:
9     openwrt_imgbuilder_dir:   "{{ tmpdir.stdout }}"
10     openwrt_imgbuilder_files: "{{ tmpdir.stdout }}/files"
11
12 - name: Create the directory for slipstreamed files
13   file:
14     path: "{{ openwrt_imgbuilder_files }}"
15     state: directory
16
17
18 - block:
19 #    - unarchive:
20 #        copy: False
21 #        src:  "{{ download_dir }}/{{ openwrt_tarball_name }}"
22 #        dest: "{{ openwrt_imgbuilder_dir }}"
23
24     - name: Decompress the OpenWrt image builder
25       command: >-
26         tar -xf  "{{ download_dir }}/{{ openwrt_tarball_name }}"
27             -C   "{{ openwrt_imgbuilder_dir     }}"
28
29 #    - include: 02-prepare.yml
30
31     - name: Create the output directory for built images
32       file:
33         path: "{{ openwrt_output_dir }}"
34         state: directory
35
36     - name: Build the OpenWrt image
37       shell: >-
38         make -C {{ openwrt_imgbuilder_dir }}/{{ openwrt_tarball_basename }} image
39
40           FILES="{{ openwrt_imgbuilder_files }}"
41           
42           PACKAGES="
43             {% for x in openwrt_packages_remove %}-{{x}} {% endfor %}
44             {% for x in openwrt_packages_add    %} {{x}} {% endfor %}
45             {% for x in openwrt_packages_extra  %} {{x}} {% endfor %}
46           "
47           BIN_DIR="{{ openwrt_output_dir }}"
48           
49           {% if openwrt_extra_name is defined %}
50           EXTRA_IMAGE_NAME="{{ openwrt_extra_name }}"
51           {% endif %}
52
53
54   always:
55     - name: Delete the temporary build directory
56       file:
57         path: "{{ openwrt_imgbuilder_dir }}"
58         state: absent