aboutsummaryrefslogtreecommitdiff
path: root/ldcg-python-manylinux-tensorflow/ansible/roles/tensorflow_io_in_container/tasks/dual-abi-build.yml
blob: 162b05b239a2a06a0faa28a2e4b7cc4402620a5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
---
- name: Create build scripts directory
  ansible.builtin.file:
    path: "{{ build_dir }}/scripts"
    state: directory
    mode: "755"

- name: Create build scripts from templates
  ansible.builtin.template:
    src: "{{ item.name }}"
    dest: "{{ build_dir }}/scripts/{{ item.target }}"
    mode: "755"
    force: true
  loop:
    - { name: 'build_tfio_binaries.sh.j2', target: 'build_tfio_binaries.sh' }
    - { name: 'audit_tfio_wheels.sh.j2', target: 'audit_tfio_wheels.sh' }

- name: Start TensorFlow IO build container
  community.docker.docker_container:
    name: "tfio-multipython"
    image: "linaro/tensorflow-arm64-build:{{ image_prefix }}-multipython"
    pull: true
    state: started
    restart: true
    volumes:
      - "{{ build_dir }}:/tmp/workspace"
    detach: true
    user: buildslave
    working_dir: "/tmp/workspace"
    network_mode: host
    command: "sleep infinity"
    timeout: 600

- name: Create initial build venv
  ansible.builtin.include_tasks:
    file: virtualenv.yml

- name: Build TensorFlow IO {{ tensorflow_io_version }} for {{ py_ver }}  # noqa no-changed-when
  community.docker.docker_container_exec:
    container: "tfio-multipython"
    command: /bin/bash -c /tmp/workspace/scripts/build_tfio_binaries.sh
    chdir: "/tmp/workspace"

- name: Go through each Python version
  ansible.builtin.include_tasks:
    file: build_wheel.yml
  loop: "{{ tfio_ver.value.python_versions }}"
  loop_control:
    loop_var: python_version

- name: Copy un-audited wheels into place
  community.docker.docker_container_exec:
    container: "tfio-multipython"
    command: bash -c "cp /tmp/workspace/io-{{ tensorflow_io_version }}/dist/tensorflow*.whl /tmp/workspace/wheels/"
  when: not run_audit

- name: Stop build container
  community.docker.docker_container:
    name: "tfio-multipython"
    image: "linaro/tensorflow-arm64-build:{{ image_prefix }}-multipython"
    state: absent
    timeout: 600

- name: Audit TensorFlow IO wheels in manylinux2014_aarch64 container
  when: run_audit
  block:
    - name: Start TensorFlow IO manylinux2014 audit container
      community.docker.docker_container:
        name: "tfio-audit"
        image: "quay.io/pypa/manylinux2014_aarch64"
        pull: true
        state: started
        restart: true
        volumes:
          - "{{ build_dir }}:/tmp/workspace"
        detach: true
        working_dir: "/tmp/workspace"
        network_mode: host
        command: "sleep infinity"
        timeout: 600

    - name: Audit TensorFlow IO wheels
      community.docker.docker_container_exec:
        container: "tfio-audit"
        command: /bin/bash -c /tmp/workspace/scripts/audit_tfio_wheels.sh
        chdir: "/tmp/workspace/io-{{ tensorflow_io_version }}"

    - name: Stop audit container
      community.docker.docker_container:
        name: "tfio-audit"
        image: "quay.io/pypa/manylinux2014_aarch64"
        state: absent
        timeout: 600