From 9b9d8eac093959cc8362863ee4dee39d5d73348d Mon Sep 17 00:00:00 2001 From: Matt Clay Date: Fri, 27 Feb 2026 09:55:29 -0800 Subject: [PATCH] Update tests to pass on macOS arm64 (#11544) --- tests/integration/targets/android_sdk/tasks/setup.yml | 4 +++- tests/integration/targets/launchd/tasks/setup.yml | 5 +++++ tests/integration/targets/npm/tasks/main.yml | 9 +++++---- tests/integration/targets/npm/tasks/setup.yml | 8 ++++++-- tests/integration/targets/yarn/tasks/main.yml | 8 +++++--- tests/integration/targets/yarn/tasks/run.yml | 10 +++++++--- 6 files changed, 31 insertions(+), 13 deletions(-) diff --git a/tests/integration/targets/android_sdk/tasks/setup.yml b/tests/integration/targets/android_sdk/tasks/setup.yml index 2580e1b71f..ad0ddad392 100644 --- a/tests/integration/targets/android_sdk/tasks/setup.yml +++ b/tests/integration/targets/android_sdk/tasks/setup.yml @@ -52,9 +52,11 @@ - name: Symlink java become: true file: - src: "/usr/local/opt/openjdk@17/libexec/openjdk.jdk" + src: "{{ brew_prefix }}/opt/openjdk@17/libexec/openjdk.jdk" dest: "/Library/Java/JavaVirtualMachines/openjdk-17.jdk" state: link + vars: + brew_prefix: "{{ lookup('pipe', 'brew --prefix') }}" when: - ansible_facts.os_family == 'Darwin' diff --git a/tests/integration/targets/launchd/tasks/setup.yml b/tests/integration/targets/launchd/tasks/setup.yml index bd7134cc07..cde43ea37d 100644 --- a/tests/integration/targets/launchd/tasks/setup.yml +++ b/tests/integration/targets/launchd/tasks/setup.yml @@ -9,6 +9,11 @@ dest: "{{ launchd_plist_location }}" become: true +- name: ensure target directory exists + file: + path: /usr/local/sbin + state: directory + - name: install the test daemon script copy: src: ansible_test_service.py diff --git a/tests/integration/targets/npm/tasks/main.yml b/tests/integration/targets/npm/tasks/main.yml index 47fdfe875b..bf63e8fbbe 100644 --- a/tests/integration/targets/npm/tasks/main.yml +++ b/tests/integration/targets/npm/tasks/main.yml @@ -25,8 +25,9 @@ - include_tasks: run.yml vars: nodejs_version: '{{ item }}' - nodejs_path: 'node-v{{ nodejs_version }}-{{ ansible_facts.system|lower }}-x{{ ansible_facts.userspace_bits }}' + nodejs_path: 'node-v{{ nodejs_version }}-{{ ansible_facts.system|lower }}-{{ nodejs_arch }}' + nodejs_arch: '{{ "x64" if ansible_architecture == "x86_64" else "arm64" if ansible_architecture in ("arm64", "aarch64") else ansible_architecture }}' + nodejs_ext: '{{ ".tar.xz" if ansible_system == "Linux" else ".tar.gz" }}' + nodejs_download: 'https://nodejs.org/dist/v{{ nodejs_version }}/{{ nodejs_path }}{{ nodejs_ext }}' with_items: - - 7.10.1 # provides npm 4.2.0 (last npm < 5 released) - - 8.0.0 # provides npm 5.0.0 - - 8.2.0 # provides npm 5.3.0 (output change with this version) + - 16.20.2 # oldest node version with macOS arm64 support diff --git a/tests/integration/targets/npm/tasks/setup.yml b/tests/integration/targets/npm/tasks/setup.yml index bad927915b..0916e9b41f 100644 --- a/tests/integration/targets/npm/tasks/setup.yml +++ b/tests/integration/targets/npm/tasks/setup.yml @@ -3,9 +3,13 @@ # GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) # SPDX-License-Identifier: GPL-3.0-or-later -- name: 'Download NPM' +- name: Show Node.js Download URL + debug: + var: nodejs_download + +- name: Download Node.js unarchive: - src: 'https://ansible-ci-files.s3.amazonaws.com/test/integration/targets/npm/{{ nodejs_path }}.tar.gz' + src: '{{ nodejs_download }}' dest: '{{ remote_tmp_dir }}' remote_src: true creates: '{{ remote_tmp_dir }}/{{ nodejs_path }}.tar.gz' diff --git a/tests/integration/targets/yarn/tasks/main.yml b/tests/integration/targets/yarn/tasks/main.yml index 28895a1b36..df6cc50411 100644 --- a/tests/integration/targets/yarn/tasks/main.yml +++ b/tests/integration/targets/yarn/tasks/main.yml @@ -14,10 +14,12 @@ - include_tasks: run.yml vars: nodejs_version: '{{ item.node_version }}' - nodejs_path: 'node-v{{ nodejs_version }}-{{ ansible_facts.system|lower }}-x{{ ansible_facts.userspace_bits }}' + nodejs_path: 'node-v{{ nodejs_version }}-{{ ansible_facts.system|lower }}-{{ nodejs_arch }}' + nodejs_arch: '{{ "x64" if ansible_architecture == "x86_64" else "arm64" if ansible_architecture in ("arm64", "aarch64") else ansible_architecture }}' + nodejs_ext: '{{ ".tar.xz" if ansible_system == "Linux" else ".tar.gz" }}' + nodejs_download: 'https://nodejs.org/dist/v{{ nodejs_version }}/{{ nodejs_path }}{{ nodejs_ext }}' yarn_version: '{{ item.yarn_version }}' with_items: - - {node_version: 4.8.0, yarn_version: 1.6.0} # Lowest compatible nodejs version - - {node_version: 8.0.0, yarn_version: 1.6.0} + - {node_version: 16.20.2, yarn_version: 1.22.22} # oldest node version with macOS arm64 support when: - not (ansible_facts.os_family == 'Alpine') # TODO diff --git a/tests/integration/targets/yarn/tasks/run.yml b/tests/integration/targets/yarn/tasks/run.yml index 7f257c643d..21857b6a3e 100644 --- a/tests/integration/targets/yarn/tasks/run.yml +++ b/tests/integration/targets/yarn/tasks/run.yml @@ -8,16 +8,20 @@ path: /usr/local/lib/nodejs state: directory -- name: 'Download Nodejs' +- name: Show Node.js Download URL + debug: + var: nodejs_download + +- name: Download Node.js unarchive: - src: 'https://ansible-ci-files.s3.amazonaws.com/test/integration/targets/yarn/{{ nodejs_path }}.tar.gz' + src: '{{ nodejs_download }}' dest: '{{ remote_tmp_dir }}' remote_src: true creates: '{{ remote_tmp_dir }}/{{ nodejs_path }}.tar.gz' - name: 'Download Yarn' unarchive: - src: 'https://ansible-ci-files.s3.amazonaws.com/test/integration/targets/yarn/yarn-v{{yarn_version}}.tar.gz' + src: 'https://github.com/yarnpkg/yarn/releases/download/v{{yarn_version}}/yarn-v{{yarn_version}}.tar.gz' dest: '{{ remote_tmp_dir }}' remote_src: true creates: '{{ remote_tmp_dir }}/yarn-v{{yarn_version}}_pkg.tar.gz'