@@ -52,18 +52,15 @@ jobs:
5252 fail-fast : true
5353 max-parallel : 4
5454 matrix :
55+ # Auto-generated from: feelpp-env/factory.sh matrix --format yaml
56+ # To update: cd feelpp-env && ./factory.sh matrix --format yaml
5557 include :
56- # - {service: feelpp-env, dist: focal, flavor: ubuntu, version: "20.04", tag: ubuntu-20.04, experimental: false, platforms: "linux/amd64", dockerfile: Dockerfile }
57- # - {service: feelpp-env, dist: mantic, flavor: ubuntu, version: "23.10", tag: ubuntu-23.10, experimental: false, platforms: "linux/amd64", dockerfile: Dockerfile }
58- - {service: feelpp-env, dist: jammy, flavor: ubuntu, version: "22.04", tag: ubuntu-22.04, experimental: false, platforms: "linux/amd64", dockerfile: Dockerfile }
59- - {service: feelpp-env, dist: noble, flavor: ubuntu, version: "24.04", tag: ubuntu-24.04, experimental: true, platforms: "linux/amd64,linux/arm64", dockerfile: Dockerfile }
60- # - {service: feelpp-env, dist: buster, flavor: debian, version: "10", tag: debian-10, experimental: false, platforms: "linux/amd64,linux/arm64", dockerfile: Dockerfile }
61- # - {service: feelpp-env, dist: bullseye, flavor: debian, version: "11", tag: debian-11, experimental: false, platforms: "linux/amd64,linux/arm64", dockerfile: Dockerfile }
62- - {service: feelpp-env, dist: bookworm, flavor: debian, version: "12", tag: debian-12, experimental: false, platforms: "linux/amd64", dockerfile: Dockerfile }
63- - {service: feelpp-env, dist: trixie, flavor: debian, version: "13", tag: debian-13, experimental: false, platforms: "linux/amd64,linux/arm64", dockerfile: Dockerfile }
64- - {service: feelpp-env, dist: debian-testing, flavor: debian, version: "testing", tag: debian-testing, experimental: true, platforms: "linux/amd64", dockerfile: Dockerfile }
65- - {service: feelpp-env, dist: debian-sid, flavor: debian, version: "sid", tag: debian-sid, experimental: true, platforms: "linux/amd64,linux/arm64", dockerfile: Dockerfile }
66- - {service: feelpp-env, dist: fedora-42, flavor: fedora, version: "42", tag: fedora-42, experimental: false, platforms: "linux/amd64", dockerfile: Dockerfile }
58+ - {service: feelpp-env, dist: trixie, flavor: debian, version: "13", tag: debian-13, experimental: false, platforms: "linux/amd64,linux/arm64", dockerfile: Dockerfile}
59+ - {service: feelpp-env, dist: testing, flavor: debian, version: "testing", tag: debian-testing, experimental: true, platforms: "linux/amd64", dockerfile: Dockerfile}
60+ - {service: feelpp-env, dist: sid, flavor: debian, version: "sid", tag: debian-sid, experimental: true, platforms: "linux/amd64,linux/arm64", dockerfile: Dockerfile}
61+ - {service: feelpp-env, dist: noble, flavor: ubuntu, version: "24.04", tag: ubuntu-24.04, experimental: false, platforms: "linux/amd64,linux/arm64", dockerfile: Dockerfile}
62+ - {service: feelpp-env, dist: oracular, flavor: ubuntu, version: "26.04", tag: ubuntu-26.04, experimental: true, platforms: "linux/amd64,linux/arm64", dockerfile: Dockerfile}
63+ - {service: feelpp-env, dist: fedora-42, flavor: fedora, version: "42", tag: fedora-42, experimental: false, platforms: "linux/amd64", dockerfile: Dockerfile}
6764 runs-on : self-docker
6865 needs : activate
6966 name : ${{ matrix.flavor }}-${{ matrix.version }}
7471 with :
7572 token : ${{ secrets.CR_PAT }}
7673 submodules : recursive
74+ - name : Setup Python factory
75+ run : |
76+ if [ -f "feelpp-env/factory.sh" ]; then
77+ echo "Setting up Python factory environment..."
78+ curl -LsSf https://astral.sh/uv/install.sh | sh
79+ export PATH="$HOME/.local/bin:$PATH"
80+ cd feelpp-env
81+ uv venv .venv
82+ source .venv/bin/activate
83+ uv pip install -q pyyaml jinja2 click rich pydantic
84+ ./factory.sh validate || echo "Validation skipped"
85+ fi
7786 - name : generate
7887 run : |
79- dir="$(bash mkimg.sh -f ${{ matrix.flavor }}:${{ matrix.version }} -t feelpp/${{ matrix.service }}:${{ matrix.tag }})"
88+ # Try Python factory first, fallback to bash script
89+ if [ -x "./factory.sh" ] && [ -d "config" ]; then
90+ echo "Using Python factory..."
91+ ./factory.sh generate --dist ${{ matrix.flavor }}:${{ matrix.version }}
92+ dir="${{ matrix.flavor }}-${{ matrix.version }}-clang++"
93+ else
94+ echo "Using bash mkimg.sh..."
95+ dir="$(bash mkimg.sh -f ${{ matrix.flavor }}:${{ matrix.version }} -t feelpp/${{ matrix.service }}:${{ matrix.tag }})"
96+ fi
8097 echo "context=feelpp-env/${dir}" >> "$GITHUB_OUTPUT"
8198 ls -lrt
8299 id : generate
@@ -120,9 +137,29 @@ jobs:
120137 with :
121138 token : ${{ secrets.CR_PAT }}
122139 submodules : recursive
140+ - name : Setup Python factory
141+ run : |
142+ if [ -f "feelpp-env/factory.sh" ]; then
143+ echo "Setting up Python factory environment..."
144+ curl -LsSf https://astral.sh/uv/install.sh | sh
145+ export PATH="$HOME/.local/bin:$PATH"
146+ cd feelpp-env
147+ uv venv .venv
148+ source .venv/bin/activate
149+ uv pip install -q pyyaml jinja2 click rich pydantic
150+ ./factory.sh validate || echo "Validation skipped"
151+ fi
123152 - name : generate
124153 run : |
125- dir="$(bash mkimg.sh -f ${{ inputs.flavor }}:${{ inputs.version }} -t feelpp/${{ env.service }}:${{ env.tag }})"
154+ # Try Python factory first, fallback to bash script
155+ if [ -x "./factory.sh" ] && [ -d "config" ]; then
156+ echo "Using Python factory..."
157+ ./factory.sh generate --dist ${{ inputs.flavor }}:${{ inputs.version }}
158+ dir="${{ inputs.flavor }}-${{ inputs.version }}-clang++"
159+ else
160+ echo "Using bash mkimg.sh..."
161+ dir="$(bash mkimg.sh -f ${{ inputs.flavor }}:${{ inputs.version }} -t feelpp/${{ env.service }}:${{ env.tag }})"
162+ fi
126163 echo "context=feelpp-env/${dir}" >> "$GITHUB_OUTPUT"
127164 ls -lrt
128165 id : generate
0 commit comments