mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-09 12:17:13 +00:00
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>
49 lines
1.5 KiB
YAML
49 lines
1.5 KiB
YAML
name: "📥 Test: Install Package Manager"
|
|
|
|
on:
|
|
workflow_call:
|
|
|
|
permissions:
|
|
actions: write
|
|
contents: read
|
|
packages: read
|
|
|
|
jobs:
|
|
test-install-pkgmgr:
|
|
name: 📦 PKGMGR
|
|
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 INFINITO_VENV_DIR from default.env
|
|
run: |
|
|
venv_dir="$(awk -F= '/^INFINITO_VENV_DIR=/{print $2; exit}' default.env)"
|
|
test -n "${venv_dir}" || { echo "INFINITO_VENV_DIR not found in default.env" >&2; exit 1; }
|
|
echo "INFINITO_VENV_DIR=${venv_dir}" >> "$GITHUB_ENV"
|
|
|
|
- name: Install & test in pkgmgr virgin container
|
|
run: |
|
|
docker run --rm \
|
|
-w "/root/" \
|
|
-e NIX_CONFIG="${NIX_CONFIG}" \
|
|
-e INFINITO_VENV_DIR="${INFINITO_VENV_DIR}" \
|
|
-v "$(pwd):/root/Repositories/github.com/kevinveenbirkenbach/infinito-nexus" \
|
|
"ghcr.io/kevinveenbirkenbach/pkgmgr-${{ matrix.distro }}:stable" \
|
|
bash -lc '
|
|
set -euo pipefail
|
|
make -C "/root/Repositories/github.com/kevinveenbirkenbach/infinito-nexus" install-system-python
|
|
pkgmgr install infinito --clone-mode shallow --no-verification
|
|
source "${INFINITO_VENV_DIR}/bin/activate"
|
|
infinito --help
|
|
'
|