aboutsummaryrefslogtreecommitdiff
path: root/ldcg-python-openxla/ansible/roles/xla/tasks/test.yml
diff options
context:
space:
mode:
Diffstat (limited to 'ldcg-python-openxla/ansible/roles/xla/tasks/test.yml')
-rw-r--r--ldcg-python-openxla/ansible/roles/xla/tasks/test.yml138
1 files changed, 138 insertions, 0 deletions
diff --git a/ldcg-python-openxla/ansible/roles/xla/tasks/test.yml b/ldcg-python-openxla/ansible/roles/xla/tasks/test.yml
new file mode 100644
index 0000000000..43bc86ccef
--- /dev/null
+++ b/ldcg-python-openxla/ansible/roles/xla/tasks/test.yml
@@ -0,0 +1,138 @@
+---
+- name: Reset checkout to clean state # noqa command-instead-of-module
+ ansible.builtin.shell:
+ cmd: "git clean -dfx; git reset --hard"
+ chdir: "{{ xla_build_dir }}/"
+ when: openxla_version == 'git'
+
+- name: Configure default OpenXLA settings
+ ansible.builtin.template:
+ src: "tf_configure.bazelrc"
+ dest: "{{ xla_build_dir }}/.tf_configure.bazelrc"
+ mode: 0400
+ force: true
+
+- name: (Python {{ py_ver }}) copy upper constraints
+ local_action:
+ module: ansible.builtin.template
+ src: "upper-constraints.txt"
+ dest: "{{ build_dir }}/configs/ldcg-python-openxla/upper-constraints.txt"
+ mode: 0644 # needs to be readable in container as well
+ force: true
+
+- name: (Python {{ py_ver }}) build Python versioned container
+ community.docker.docker_image:
+ name: "xla-multipython-py{{ py_ver }}-{{ image_prefix }}"
+ build:
+ path: "{{ build_dir }}/configs/ldcg-python-openxla/"
+ args:
+ tag_prefix: "{{ image_prefix }}"
+ py_major_minor_version: "{{ py_ver }}"
+ source: build
+ force_source: true
+
+- name: (Python {{ py_ver }}) start build container
+ community.docker.docker_container:
+ name: "xla-py{{ py_ver }}"
+ image: "xla-multipython-py{{ py_ver }}-{{ image_prefix }}"
+ state: started
+ restart: true
+ volumes:
+ - "{{ xla_build_dir }}:/tf/xla"
+ - "{{ build_dir }}/bazel-cache:/tf/bazel-cache"
+ detach: true
+ user: buildslave
+ working_dir: "/tf/xla"
+ network_mode: host
+ etc_hosts:
+ ldcg-aarch64-02: 172.17.0.1
+ command: "sleep infinity"
+ timeout: 6000
+
+- name: (Python {{ py_ver }}) create buildslave bazel cache dir
+ community.docker.docker_container_exec:
+ container: "xla-py{{ py_ver }}"
+ command: |
+ install -d -m0777 .cache/bazel/_bazel_buildslave
+ chdir: "/home/buildslave/"
+
+- name: (Python {{ py_ver }}) create link for bazel cache
+ community.docker.docker_container_exec:
+ container: "xla-py{{ py_ver }}"
+ command: |
+ ln -sf /tf/bazel-cache bazel/_bazel_buildslave/cache
+ chdir: "/home/buildslave/.cache/"
+
+- name: (Python {{ py_ver }}) create link for bazelisk cache
+ community.docker.docker_container_exec:
+ container: "xla-py{{ py_ver }}"
+ command: |
+ ln -sf /tf/bazel-cache bazelisk
+ chdir: "/home/buildslave/.cache/"
+
+- name: (Python {{ py_ver }}) create link for pip cache
+ community.docker.docker_container_exec:
+ container: "xla-py{{ py_ver }}"
+ command: |
+ ln -sf /tf/cache pip
+ chdir: "/home/buildslave/.cache/"
+
+- name: (Python {{ py_ver }}) collect list of installed Python packages for build
+ community.docker.docker_container_exec:
+ container: "xla-py{{ py_ver }}"
+ command: "/usr/local/bin/python3 -m pip list -v"
+ chdir: "/tf/xla"
+ register: pip_list_output
+
+- name: Show list of installed Python packages for build
+ ansible.builtin.debug:
+ var: pip_list_output.stdout
+
+- name: (Python {{ py_ver }}) build OpenXLA {{ openxla_version }}
+ community.docker.docker_container_exec:
+ container: "xla-py{{ py_ver }}"
+ command: "bazel build -- //xla/..."
+ chdir: "/tf/xla"
+
+- name: (Python {{ py_ver }}) create script to run tests
+ ansible.builtin.template:
+ src: "run-tests.sh.j2"
+ dest: "{{ xla_build_dir }}/run-tests.sh"
+ mode: 0755
+ force: true
+
+- name: (Python {{ py_ver }}) run OpenXLA {{ openxla_version }} tests
+ community.docker.docker_container_exec:
+ container: "xla-py{{ py_ver }}"
+ command: "bash run-tests.sh"
+ chdir: "/tf/xla"
+ register: test_output
+ ignore_errors: true
+
+- name: (Python {{ py_ver }}) Extract number of tests run
+ ansible.builtin.set_fact:
+ ut_tests_line: "{{ test_output.stdout | regex_search('^Executed [0-9]+ out of [0-9]+ tests: [0-9]+ tests pass.*', multiline=True) }}"
+
+- name: (Python {{ py_ver }}) Show number of tests run
+ ansible.builtin.debug:
+ var: ut_tests_line
+
+- name: (Python {{ py_ver }}) Extract failed tests
+ ansible.builtin.set_fact:
+ tests_failed: "{{ test_output.stderr | regex_findall('FAIL: .*', multiline=True) }}"
+ tests_flaky: "{{ test_output.stdout | regex_findall('.*FLAKY.*', multiline=True) }}"
+
+- name: (Python {{ py_ver }}) Show which tests are flaky
+ ansible.builtin.debug:
+ var: tests_flaky
+
+- name: (Python {{ py_ver }}) Show which tests failed
+ ansible.builtin.debug:
+ var: tests_failed
+
+- name: (Python {{ py_ver }}) stop build container
+ community.docker.docker_container:
+ name: "xla-py{{ py_ver }}"
+ image: "xla-multipython-py{{ py_ver }}-{{ image_prefix }}"
+ state: absent
+ timeout: 6000