Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
5860c29
update feelpp-env.yml and Dockerfile-debian-13 for improved build pro…
prudhomm Aug 13, 2025
64f3b29
remove unnecessary package from Dockerfile-debian installation
prudhomm Aug 13, 2025
b2ac30c
remove --force-yes option from apt-get install commands in Dockerfile…
prudhomm Aug 13, 2025
09272f4
fix: correct package name from libmongoclient-dev to libmongo-client-…
prudhomm Aug 13, 2025
f08093c
fix: remove unnecessary doxygen-latex package from Dockerfile-debian
prudhomm Aug 13, 2025
1cd2029
fix: update APT sources configuration to use local mirror for Debian
prudhomm Aug 13, 2025
b832997
fix: update mkimg.sh to improve argument parsing and error handling
prudhomm Aug 13, 2025
7dfdce3
fix: exclude Debian 13 from OpenMPI layer inclusion in mkimg.sh
prudhomm Aug 13, 2025
ba1b1be
fix: reorganize package installation in Dockerfile-debian and add mis…
prudhomm Aug 14, 2025
4c5f506
fix: revert ARG DEBIAN_MAIN_MIRROR to original value in Dockerfile-de…
prudhomm Aug 14, 2025
4a7abc4
fix: update feelpp-env.yml for Ubuntu 24.04 and Fedora 42 support
prudhomm Aug 14, 2025
d06e317
fix: correct platform specifications for Ubuntu 22.04 and Debian 12 i…
prudhomm Aug 14, 2025
75b0d2e
fix: update Dockerfile-fedora to ensure OpenMPI module loads correctl…
prudhomm Aug 15, 2025
fe0c62f
fix: add missing 'tree' package to Dockerfile-fedora installation
prudhomm Aug 15, 2025
9490dcc
fix: add missing 'lsb_release' and 'pugixml-devel' packages to Docker…
prudhomm Aug 15, 2025
eccab3b
fix: update Dockerfile-fedora to enhance OpenMPI setup and include ad…
prudhomm Aug 16, 2025
282b17d
fix: correct OpenMPI module loading command in Dockerfile-fedora
prudhomm Aug 16, 2025
057b461
fix: reorganize OpenMPI environment variables and improve module load…
prudhomm Aug 17, 2025
a545f66
fix: modify ARCH and DISTRIBUTION variables in Dockerfile-fedora for …
prudhomm Aug 17, 2025
068ca6e
fix: remove DISTRIBUTION and ARCH variables from Dockerfile-fedora fo…
prudhomm Aug 17, 2025
c444fa0
fix: add rsync to package installation in Dockerfile-fedora for enhan…
prudhomm Aug 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 39 additions & 54 deletions .github/workflows/feelpp-env.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:
dist:
description: 'Distribution codename'
required: true
default: 'jammy'
default: 'noble'
type: string
flavor:
description: 'Flavor of the distribution'
Expand All @@ -22,7 +22,7 @@ on:
version:
description: 'Version of the distribution'
required: true
default: '22.04'
default: '24.04'
type: string
dockerfile:
description: 'Dockerfile to use'
Expand All @@ -35,8 +35,6 @@ on:
default: 'linux/amd64,linux/arm64'
type: string



jobs:

activate:
Expand All @@ -48,74 +46,67 @@ jobs:
steps:
- run: echo ok go


all_images:
if: ${{ github.event_name == 'push' && !contains(github.event.head_commit.message, 'all skip') }}
strategy:
fail-fast: true
max-parallel: 4
matrix:
include:
- {service: feelpp-env, dist: focal, flavor: ubuntu, version: "20.04", tag: ubuntu-20.04, experimental: false, platforms: "linux/amd64", dockerfile: Dockerfile }
- {service: feelpp-env, dist: mantic, flavor: ubuntu, version: "23.10", tag: ubuntu-23.10, experimental: false, platforms: "linux/amd64", dockerfile: Dockerfile }
- {service: feelpp-env, dist: jammy, flavor: ubuntu, version: "22.04", tag: ubuntu-22.04, experimental: false, platforms: "linux/amd64,linux/arm64", dockerfile: Dockerfile }
- {service: feelpp-env, dist: noble, flavor: ubuntu, version: "24.04", tag: ubuntu-24.04, experimental: true, platforms: "linux/amd64,linux/arm64", dockerfile: Dockerfile }
# - {service: feelpp-env, dist: buster, flavor: debian, version: 10, tag: debian-10, experimental: false, platforms: "linux/amd64,linux/arm64", dockerfile: Dockerfile }
# - {service: feelpp-env, dist: bullseye, flavor: debian, version: "11", tag: debian-11, experimental: false, platforms: "linux/amd64,linux/arm64", dockerfile: Dockerfile }
- {service: feelpp-env, dist: bookworm, flavor: debian, version: "12", tag: debian-12, experimental: false, platforms: "linux/amd64,linux/arm64", dockerfile: Dockerfile }
- {service: feelpp-env, dist: debian-testing, flavor: debian, version: "testing", tag: debian-testing, experimental: true, platforms: "linux/amd64", dockerfile: Dockerfile }
- {service: feelpp-env, dist: debian-sid, flavor: debian, version: "sid", tag: debian-sid, experimental: true, platforms: "linux/amd64,linux/arm64", dockerfile: Dockerfile }
- {service: feelpp-env, dist: fedora-39, flavor: fedora, version: "39", tag: fedora-39, experimental: false, platforms: "linux/amd64", dockerfile: Dockerfile }
# - {service: feelpp-env, dist: focal, flavor: ubuntu, version: "20.04", tag: ubuntu-20.04, experimental: false, platforms: "linux/amd64", dockerfile: Dockerfile }
# - {service: feelpp-env, dist: mantic, flavor: ubuntu, version: "23.10", tag: ubuntu-23.10, experimental: false, platforms: "linux/amd64", dockerfile: Dockerfile }
- {service: feelpp-env, dist: jammy, flavor: ubuntu, version: "22.04", tag: ubuntu-22.04, experimental: false, platforms: "linux/amd64", dockerfile: Dockerfile }
- {service: feelpp-env, dist: noble, flavor: ubuntu, version: "24.04", tag: ubuntu-24.04, experimental: true, platforms: "linux/amd64,linux/arm64", dockerfile: Dockerfile }
# - {service: feelpp-env, dist: buster, flavor: debian, version: "10", tag: debian-10, experimental: false, platforms: "linux/amd64,linux/arm64", dockerfile: Dockerfile }
# - {service: feelpp-env, dist: bullseye, flavor: debian, version: "11", tag: debian-11, experimental: false, platforms: "linux/amd64,linux/arm64", dockerfile: Dockerfile }
- {service: feelpp-env, dist: bookworm, flavor: debian, version: "12", tag: debian-12, experimental: false, platforms: "linux/amd64", dockerfile: Dockerfile }
- {service: feelpp-env, dist: trixie, flavor: debian, version: "13", tag: debian-13, experimental: false, platforms: "linux/amd64,linux/arm64", dockerfile: Dockerfile }
- {service: feelpp-env, dist: debian-testing, flavor: debian, version: "testing", tag: debian-testing, experimental: true, platforms: "linux/amd64", dockerfile: Dockerfile }
- {service: feelpp-env, dist: debian-sid, flavor: debian, version: "sid", tag: debian-sid, experimental: true, platforms: "linux/amd64,linux/arm64", dockerfile: Dockerfile }
- {service: feelpp-env, dist: fedora-42, flavor: fedora, version: "42", tag: fedora-42, experimental: false, platforms: "linux/amd64", dockerfile: Dockerfile }
runs-on: self-docker
needs: activate
name: ${{ matrix.flavor }}-${{ matrix.version }}
continue-on-error: ${{ matrix.experimental }}

steps:
- uses: actions/checkout@v2.3.4
- uses: actions/checkout@v5
with:
# lfs: true
token: ${{ secrets.CR_PAT }}
submodules: recursive
- name: generate
run: |
bash mkimg.sh -f ${{ matrix.flavor }}:${{ matrix.version }} -t feelpp/${{ matrix.service }}:${{ matrix.tag }} --
echo "context=feelpp-env/$(bash mkimg.sh -f ${{ matrix.flavor }}:${{ matrix.version }} -t feelpp/${{ matrix.service }}:${{ matrix.tag }} --)" >> $GITHUB_OUTPUT
ls -lrt
dir="$(bash mkimg.sh -f ${{ matrix.flavor }}:${{ matrix.version }} -t feelpp/${{ matrix.service }}:${{ matrix.tag }})"
echo "context=feelpp-env/${dir}" >> "$GITHUB_OUTPUT"
ls -lrt
id: generate
working-directory: feelpp-env
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Login to GitHub Container Registry
uses: docker/login-action@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.CR_PAT }}
-
name: Build ${{ matrix.service }}:${{ matrix.tag }}
uses: docker/build-push-action@v3
- name: Build ${{ matrix.service }}:${{ matrix.tag }}
uses: docker/build-push-action@v6
with:
context: ./${{ steps.generate.outputs.context }}
tags: ghcr.io/feelpp/${{ matrix.service }}:${{ matrix.tag }}
file: ./${{ steps.generate.outputs.context }}/${{ matrix.dockerfile }}
push: ${{ github.event_name != 'pull_request' }}
platforms: ${{ matrix.platforms }}
-
name: Trigger build runner:${{ matrix.tag }}
- name: Trigger build runner:${{ matrix.tag }}
uses: peter-evans/repository-dispatch@v2
with:
token: ${{ secrets.CR_PAT }}
repository: feelpp/runners
event-type: runner-update-baseimage
client-payload: '{"flavor":"${{ matrix.flavor }}","version":"${{ matrix.version }}"}'


one_image:
if: ${{ github.event_name == 'workflow_dispatch' }}
runs-on: self-docker
Expand All @@ -125,42 +116,36 @@ jobs:
tag: ${{ inputs.flavor }}-${{ inputs.version }}
service: feelpp-env
steps:
- uses: actions/checkout@v2.3.4
- uses: actions/checkout@v5
with:
# lfs: true
token: ${{ secrets.CR_PAT }}
submodules: recursive
- name: generate
run: |
bash mkimg.sh -f ${{ inputs.flavor }}:${{ inputs.version }} -t feelpp/${{ env.service }}:${{ env.tag }} --
echo "context=feelpp-env/$(bash mkimg.sh -f ${{ inputs.flavor }}:${{ inputs.version }} -t feelpp/${{ env.service }}:${{ env.tag }} --)" >> $GITHUB_OUTPUT
ls -lrt
dir="$(bash mkimg.sh -f ${{ inputs.flavor }}:${{ inputs.version }} -t feelpp/${{ env.service }}:${{ env.tag }})"
echo "context=feelpp-env/${dir}" >> "$GITHUB_OUTPUT"
ls -lrt
id: generate
working-directory: feelpp-env
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Login to GitHub Container Registry
uses: docker/login-action@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.CR_PAT }}
-
name: Build ${{ env.service }}:${{ env.tag }}
uses: docker/build-push-action@v3
- name: Build ${{ env.service }}:${{ env.tag }}
uses: docker/build-push-action@v6
with:
context: ./${{ steps.generate.outputs.context }}
tags: ghcr.io/feelpp/${{ env.service }}:${{ env.tag }}
file: ./${{ steps.generate.outputs.context }}/${{ inputs.dockerfile }}
push: ${{ github.event_name != 'pull_request' }}
platforms: ${{ inputs.platforms }}
-
name: Trigger build runner:${{ env.tag }}
- name: Trigger build runner:${{ env.tag }}
uses: peter-evans/repository-dispatch@v2
with:
token: ${{ secrets.CR_PAT }}
Expand Down
44 changes: 30 additions & 14 deletions feelpp-env/Dockerfile-debian
Original file line number Diff line number Diff line change
@@ -1,12 +1,21 @@
RUN if test -f /etc/apt/sources.list; then sed -i 's/http:\/\/deb.debian.org\/debian\//http:\/\/miroir.univ-lorraine.fr\/debian\//' /etc/apt/sources.list; fi
RUN if test -f /etc/apt/sources.list; then sed -i 's/http:\/\/security.debian.org\/debian-security\//http:\/\/miroir.univ-lorraine.fr\/debian-security\//' /etc/apt/sources.list; fi


ARG DEBIAN_MAIN_MIRROR=ftp.fr.debian.org # override with --build-arg if needed
#ARG DEBIAN_MAIN_MIRROR=miroir.univ-lorraine.fr
RUN set -e; \
. /etc/os-release || true; \
case "${ID}:${VERSION_CODENAME}" in \
debian:bookworm|debian:trixie|debian:sid|debian:testing) \
f=/etc/apt/sources.list.d/debian.sources; \
echo "Switching main archive to http://${DEBIAN_MAIN_MIRROR}/debian (keeping security) in ${f}"; \
sed -i "0,/^URIs:\s*http:\/\/deb\.debian\.org\/debian/s//URIs: http:\/\/${DEBIAN_MAIN_MIRROR}\/debian/" "$f"; \
apt-get -qq update; \
;; \
*) echo "Leaving APT sources untouched (ID=${ID} CODENAME=${VERSION_CODENAME}).";; \
esac


RUN apt-get -qq update && \
apt-get -y --force-yes install \
software-properties-common gnupg \
apt-get -y install \
gnupg \
ca-certificates-java default-jre-headless \
quilt debhelper dh-python

Expand All @@ -19,7 +28,7 @@ ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Paris
RUN apt-get -y install tzdata
RUN apt-get -qq update && \
apt-get -y --force-yes install \
apt-get -y install \
quilt debhelper \
tree ne \
cmake \
Expand All @@ -33,7 +42,7 @@ RUN apt-get -qq update && \
libmetis-dev libscotch-dev \
libeigen3-dev \
petsc-dev \
slepc-dev \
slepc-dev \
libhdf5-openmpi-dev \
libnlopt-dev \
libgsl-dev \
Expand All @@ -42,28 +51,35 @@ RUN apt-get -qq update && \
libxml2-dev libpugixml-dev \
libgmsh-dev gmsh \
bison flex \
doxygen doxygen-latex \
doxygen \
transfig imagemagick \
libtbb-dev \
libann-dev libglpk-dev \
libbz2-dev libzip-dev \
libbson-dev \
libmongoc-dev \
libmongoclient-dev \
libmongo-client-dev \
python3-pymongo \
ruby-progressbar \
ruby-tilt \
asciidoctor ruby-asciidoctor-pdf \
libglew-dev \
python3-h5py python3-sympy python3-mpi4py python3-numpy python3-petsc4py-real python3-slepc4py-real python3-venv \
rsync \
gdb\
&& apt-get autoremove \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

RUN apt-get -qq update && \
apt-get -y --no-install-recommends -o APT::Install-Suggests=false install \
ruby-progressbar \
ruby-tilt \
asciidoctor ruby-asciidoctor-pdf \
docker.io jsonlint \
man jq curl ruby ruby-dev \
gdb\
&& apt-get autoremove \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*


ENV FEELPP_DEP_INSTALL_PREFIX /usr/local


Expand Down
Empty file added feelpp-env/Dockerfile-debian-13
Empty file.
Loading
Loading