Files
computer-playbook/.github/workflows/test-install-make.yml
T
kevinveenbirkenbachandClaude Opus 4.7 00c4246c3a refactor(env): introduce INFINITO_VENV_DIR SPOT, fix dev image build
Adds INFINITO_VENV_DIR=/opt/venvs/infinito to default.env (registered
in passthrough's STATIC_KEYS so make dotenv propagates it to .env) and
threads it through the build chain: compose.yml forwards it as a build
arg; scripts/image/push.sh asserts and --build-args it; the Dockerfile
declares the matching ARG/ENV and derives PYTHON/PIP/PATH from the
variable. scripts/meta/env/python.sh now prefers the value when set
before its fallback discovery so the SPOT is effective in env
resolution.

Fixes the dev image build regression where 'infinito --version' in
scripts/docker/entry.sh exited 127. Root cause: the Dockerfile RUN
SHELL uses bash -lc, which sources /etc/profile and resets PATH to
the Debian default, dropping ${INFINITO_VENV_DIR}/bin from it. The
fix invokes the script via its absolute path "${INFINITO_VENV_DIR}/bin/infinito"
so the post-install version check no longer depends on a PATH that
the login-shell init has just clobbered.

scripts/lint/wrapper.sh's existing PATH-reset note now references the
variable instead of the literal path. test-install-make.yml and
test-install-pkgmgr.yml read INFINITO_VENV_DIR from default.env up
front, pass it into their pkgmgr containers, and source the venv
activate script via the variable.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-28 22:12:19 +02:00

52 lines
1.5 KiB
YAML

name: "📥 Test: Install Make"
on:
workflow_call:
permissions:
actions: write
contents: read
packages: read
jobs:
test-install-make:
name: 🛠️ Makefile
runs-on: ubuntu-latest
timeout-minutes: 15
env:
NIX_CONFIG: |
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
strategy:
fail-fast: false
matrix:
distro: [arch, debian, ubuntu, fedora, centos]
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Resolve paths from default.env
run: |
for key in INFINITO_SRC_DIR INFINITO_VENV_DIR; do
value="$(awk -F= -v k="^${key}=" '$0 ~ k {print $2; exit}' default.env)"
test -n "${value}" || { echo "${key} not found in default.env" >&2; exit 1; }
echo "${key}=${value}" >> "$GITHUB_ENV"
done
- name: Install & test in pkgmgr virgin container
run: |
docker run --rm \
-e NIX_CONFIG="${NIX_CONFIG}" \
-e INFINITO_SRC_DIR="${INFINITO_SRC_DIR}" \
-e INFINITO_VENV_DIR="${INFINITO_VENV_DIR}" \
-v "$(pwd):${INFINITO_SRC_DIR}" \
-w "${INFINITO_SRC_DIR}" \
"ghcr.io/kevinveenbirkenbach/pkgmgr-${{ matrix.distro }}-virgin:stable" \
bash -lc '
set -euo pipefail
make install
make setup
source "${INFINITO_VENV_DIR}/bin/activate"
infinito --help
'