Skip to content

Commit 5f6a96e

Browse files
authored
ci(fresh-install): add findutils to arch/tumbleweed distro legs (#135)
* ci(fresh-install): add findutils to arch/tumbleweed distro legs quick_install.sh (fetched from xlings main) locates the extracted xlings dir with `find`. On opensuse/tumbleweed:latest, which ships without findutils, the install died with: bash: line 148: find: command not found exit code 127 before mcpp ever ran. The arch leg lacked an explicit findutils too and only passed because the base image bundles it. List findutils explicitly on both legs (matching fedora/debian/ubuntu) and add a matrix note so the hard `find` dependency isn't dropped again. Failing run: https://github.com/mcpp-community/mcpp/actions/runs/27796803895 * ci(fresh-install): drop redundant GITHUB_PATH append in container leg The findutils fix unmasked a second, tumbleweed-only failure at the start of "Configure mcpp": OCI runtime exec failed: exec: "sh": executable file not found in $PATH exit code 127 opensuse/tumbleweed's image declares no PATH in its config. Appending a single dir to $GITHUB_PATH makes the runner exec every later step's `sh` with only that dir on PATH, so /usr/bin/sh becomes unfindable. The setup/install steps passed only because they ran before the append. Every container-matrix step already does `export PATH="$HOME/.xlings/subos/current/bin:$PATH"` in its own script, so the GITHUB_PATH append was redundant — and the sole cause of the corruption. Drop it. (The bare linux-fresh leg keeps its GITHUB_PATH: its later steps call mcpp directly without re-exporting.)
1 parent 5003873 commit 5f6a96e

1 file changed

Lines changed: 15 additions & 3 deletions

File tree

.github/workflows/ci-fresh-install.yml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,16 +136,22 @@ jobs:
136136
strategy:
137137
fail-fast: false
138138
matrix:
139+
# findutils (find) is mandatory on every leg: quick_install.sh
140+
# locates the extracted xlings dir with `find`, so a missing find
141+
# fails the install with exit 127 *before* mcpp ever runs. Minimal
142+
# images (opensuse/tumbleweed) ship without it; arch's base merely
143+
# bundles it by luck. List it explicitly everywhere — don't rely on
144+
# the base image.
139145
include:
140146
- distro: fedora-latest
141147
image: fedora:latest
142148
setup: dnf -y install curl bash tar gzip xz git findutils binutils file glibc-langpack-en
143149
- distro: arch
144150
image: archlinux:latest
145-
setup: pacman -Sy --noconfirm curl bash tar gzip xz git binutils file
151+
setup: pacman -Sy --noconfirm curl bash tar gzip xz git findutils binutils file
146152
- distro: tumbleweed
147153
image: opensuse/tumbleweed:latest
148-
setup: zypper -n install curl bash tar gzip xz git binutils file
154+
setup: zypper -n install curl bash tar gzip xz git findutils binutils file
149155
- distro: debian-testing
150156
image: debian:testing
151157
setup: apt-get update && apt-get -y install curl bash tar gzip xz-utils git ca-certificates binutils findutils file
@@ -167,7 +173,13 @@ jobs:
167173
- name: Install xlings + mcpp
168174
run: |
169175
curl -fsSL https://raw.githubusercontent.com/openxlings/xlings/main/tools/other/quick_install.sh | bash -s v0.4.38
170-
echo "$HOME/.xlings/subos/current/bin" >> "$GITHUB_PATH"
176+
# Deliberately NOT writing to $GITHUB_PATH here. On container
177+
# images that declare no PATH in their config (opensuse/
178+
# tumbleweed), appending a single dir to GITHUB_PATH makes the
179+
# runner exec later steps' `sh` with only that dir on PATH —
180+
# `sh` (in /usr/bin) vanishes and the next step dies with
181+
# `exec: "sh": ... not found` / exit 127. Each step below already
182+
# exports PATH itself, so the append is redundant anyway.
171183
172184
- name: Configure mcpp
173185
run: |

0 commit comments

Comments
 (0)