mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-07 05:42:50 +00:00
* test(yarn): add Alpine Linux support via apk Install nodejs and yarn via apk on Alpine, sharing the functional test block with the existing non-Alpine (pre-built binary) path. Extracts the test block into tests.yml to avoid duplication. Fixes #4270 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(yarn): skip Node.js runtime warnings in stderr processing Node.js 24 emits DeprecationWarning lines to stderr (e.g. for url.parse()) that are not JSON, causing _process_yarn_error to fail with "Unexpected stderr output from Yarn". Skip lines starting with "(node:" before attempting JSON parsing. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * test(yarn): add changelog fragment for #11943 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(yarn): only JSON-parse lines starting with '{' in stderr Node.js 24 emits multi-line DeprecationWarnings to stderr (e.g. the hint line "(Use `node --trace-deprecation ...`") that are not JSON and were tripping the "Unexpected stderr output from Yarn" failure. Yarn's structured output always starts with '{', so skip any line that doesn't. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * test(yarn): install sqlite on Alpine to fix nodejs 22 symbol error On Alpine 3.21 nodejs 22 requires SQLite session extension symbols (sqlite3session_*) that are not present in sqlite-libs; installing the full sqlite package provides them. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * test(yarn): refresh apk cache and upgrade sqlite-libs before installing nodejs The CI Alpine container may have a stale sqlite-libs that lacks the session extension symbols (sqlite3session_*) required by nodejs 22+. Force a cache refresh and upgrade sqlite-libs to the latest revision. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(yarn): warn on non-JSON stderr lines instead of silently skipping Non-JSON lines in stderr (e.g. Node.js runtime DeprecationWarnings) are surfaced to the user via module.warn() rather than being silently ignored, since their content and meaning are not known in advance. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * prefix yarn output line * Update changelogs/fragments/11943-yarn-nodejs-runtime-warnings.yml Co-authored-by: Felix Fontein <felix@fontein.de> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: Felix Fontein <felix@fontein.de>
29 lines
1.4 KiB
YAML
29 lines
1.4 KiB
YAML
---
|
|
####################################################################
|
|
# WARNING: These are designed specifically for Ansible tests #
|
|
# and should not be used as examples of how to write Ansible roles #
|
|
####################################################################
|
|
|
|
# Yarn package manager integration tests
|
|
# Copyright (c) 2018 David Gunter, <david.gunter@tivix.com>
|
|
# 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
|
|
|
|
# ============================================================
|
|
|
|
- include_tasks: run_alpine.yml
|
|
when: ansible_facts.os_family == 'Alpine'
|
|
|
|
- include_tasks: run.yml
|
|
vars:
|
|
nodejs_version: '{{ item.node_version }}'
|
|
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: 16.20.2, yarn_version: 1.22.22} # oldest node version with macOS arm64 support
|
|
when:
|
|
- not (ansible_facts.os_family == 'Alpine')
|