Distro CI containers: check out with plain git, not actions/checkout
Build PCM package / build (push) Successful in 6s
tests / ubuntu-latest · py3.11 (push) Failing after 40s
tests / ubuntu-latest · py3.13 (push) Failing after 41s
tests / archlinux:latest (push) Failing after 26s
tests / debian:12 (push) Failing after 46s
tests / fedora:latest (push) Failing after 41s
tests / ubuntu:24.04 (push) Successful in 1m18s
tests / NixOS (FHS wrapper from docs/NIXOS.md) (push) Has been skipped
tests / macos-latest · py3.11 (push) Has been cancelled
tests / macos-latest · py3.13 (push) Has been cancelled
tests / windows-latest · py3.11 (push) Has been cancelled
tests / windows-latest · py3.13 (push) Has been cancelled

act_runner injects no node runtime into job containers the way
GitHub's runners do, so the JS checkout action dies in plain distro
images with 'node: executable file not found in $PATH'. A git
init/fetch/checkout needs only git, which each distro setup step now
installs before checkout runs.
This commit is contained in:
2026-07-23 17:32:35 +07:00
parent dfba5561bb
commit f68c14b01c
+19 -5
View File
@@ -57,36 +57,50 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
include: include:
# git in every list: the checkout below is plain git because
# actions/checkout is a JS action and act_runner (unlike
# GitHub's runners) injects no node into job containers -
# plain distro images crash it with "node: executable file
# not found in $PATH".
- distro: debian:12 - distro: debian:12
setup: > setup: >
apt-get update -qq && apt-get install -y -qq apt-get update -qq && apt-get install -y -qq
curl ca-certificates curl ca-certificates git
libglib2.0-0 libgl1 libegl1 libopengl0 libfontconfig1 libglib2.0-0 libgl1 libegl1 libopengl0 libfontconfig1
libfreetype6 libdbus-1-3 libxkbcommon0 libzstd1 libxcb1 libfreetype6 libdbus-1-3 libxkbcommon0 libzstd1 libxcb1
libx11-6 libxext6 libxrender1 libsm6 libice6 libx11-6 libxext6 libxrender1 libsm6 libice6
- distro: ubuntu:24.04 - distro: ubuntu:24.04
setup: > setup: >
apt-get update -qq && apt-get install -y -qq apt-get update -qq && apt-get install -y -qq
curl ca-certificates curl ca-certificates git
libglib2.0-0 libgl1 libegl1 libopengl0 libfontconfig1 libglib2.0-0 libgl1 libegl1 libopengl0 libfontconfig1
libfreetype6 libdbus-1-3 libxkbcommon0 libzstd1 libxcb1 libfreetype6 libdbus-1-3 libxkbcommon0 libzstd1 libxcb1
libx11-6 libxext6 libxrender1 libsm6 libice6 libx11-6 libxext6 libxrender1 libsm6 libice6
- distro: fedora:latest - distro: fedora:latest
setup: > setup: >
dnf install -y -q dnf install -y -q
git-core
glib2 mesa-libGL mesa-libEGL libglvnd-opengl fontconfig glib2 mesa-libGL mesa-libEGL libglvnd-opengl fontconfig
freetype dbus-libs libxkbcommon libzstd libxcb libX11 freetype dbus-libs libxkbcommon libzstd libxcb libX11
libXext libXrender libSM libICE libXext libXrender libSM libICE
- distro: archlinux:latest - distro: archlinux:latest
setup: > setup: >
pacman -Syu --noconfirm --needed pacman -Syu --noconfirm --needed
curl glib2 libglvnd fontconfig freetype2 dbus curl git
glib2 libglvnd fontconfig freetype2 dbus
libxkbcommon zstd libxcb libx11 libxext libxrender libxkbcommon zstd libxcb libx11 libxext libxrender
libsm libice libsm libice
steps: steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 - name: Distro Qt runtime libraries + git
- name: Distro Qt runtime libraries
run: ${{ matrix.setup }} run: ${{ matrix.setup }}
# Plain-git checkout: works in any container with git alone.
# (A private repo would need ${{ github.token }} on the URL.)
- name: Checkout
run: |
git init -q .
git remote add origin "${{ github.server_url }}/${{ github.repository }}.git"
git fetch -q --depth 50 origin "${{ github.ref }}"
git checkout -q "${{ github.sha }}"
- name: Install uv - name: Install uv
run: | run: |
curl -LsSf https://astral.sh/uv/install.sh | sh curl -LsSf https://astral.sh/uv/install.sh | sh