Skip to content

Commit 413bb82

Browse files
committed
Add Fedora 38 container
1 parent 4c3d230 commit 413bb82

File tree

2 files changed

+78
-12
lines changed

2 files changed

+78
-12
lines changed

.github/workflows/continuous-integration-workflow.yml

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,23 @@ on:
66
pull_request:
77
branches:
88
- master
9-
schedule:
10-
- cron: '0 1 * * FRI'
119

1210
jobs:
1311
CI:
1412
strategy:
1513
matrix:
1614
config:
17-
- {tag: 'ubuntu18.04', dockerfile: 'docker/ubuntu18.04.dockerfile'}
18-
- {tag: 'ubuntu18.04_devcontainer', dockerfile: 'docker/ubuntu18.04_devcontainer.dockerfile'}
19-
- {tag: 'ubuntu20.04', dockerfile: 'docker/ubuntu20.04.dockerfile'}
20-
- {tag: 'ubuntu20.04_devcontainer', dockerfile: 'docker/ubuntu20.04_devcontainer.dockerfile'}
21-
- {tag: 'centos7', dockerfile: 'docker/centos7.dockerfile'}
22-
- {tag: 'rockylinux8', dockerfile: 'docker/rockylinux8.dockerfile'}
23-
- {tag: 'fedora34_mingw', dockerfile: 'docker/fedora34_mingw.dockerfile'}
24-
- {tag: 'fedora35_mingw', dockerfile: 'docker/fedora35_mingw.dockerfile'}
15+
- {tag: 'fedora38_mingw', dockerfile: 'docker/fedora38_mingw.dockerfile'}
2516
runs-on: ubuntu-latest
2617
steps:
2718
- uses: actions/checkout@master
2819
- name: Log in to Docker Hub
29-
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
20+
uses: docker/login-action@v3
3021
with:
3122
username: ${{ secrets.DOCKER_USERNAME }}
3223
password: ${{ secrets.DOCKER_PASSWORD }}
3324
- name: Build Docker images
34-
uses: docker/build-push-action@v3
25+
uses: docker/build-push-action@v5
3526
with:
3627
tags: lammps/buildenv:${{ matrix.config.tag }}
3728
file: ${{ matrix.config.dockerfile }}

docker/fedora38_mingw.dockerfile

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
FROM fedora:38
2+
3+
RUN dnf -y update && \
4+
dnf -y install vim-enhanced git file make cmake patch which file Lmod \
5+
ninja-build clang clang-tools-extra libomp-devel libubsan libasan libtsan \
6+
diffutils dos2unix findutils rsync python-devel libjpeg-devel libpng-devel \
7+
ccache gcc-c++ gcc-gfortran gdb valgrind eigen3-devel openblas-devel \
8+
openmpi-devel mpich-devel fftw-devel voro++-devel gsl-devel hdf5-devel \
9+
netcdf-devel netcdf-cxx-devel netcdf-mpich-devel netcdf-openmpi-devel \
10+
readline-devel python3-pyyaml python3-Cython \
11+
mingw-filesystem-base mingw32-nsis mingw-binutils-generic \
12+
mingw32-filesystem mingw32-pkg-config \
13+
mingw64-filesystem mingw64-pkg-config \
14+
mingw32-crt mingw32-headers mingw32-binutils \
15+
mingw64-crt mingw64-headers mingw64-binutils \
16+
mingw32-cpp mingw32-gcc mingw32-gcc-gfortran mingw32-gcc-c++ \
17+
mingw64-cpp mingw64-gcc mingw64-gcc-gfortran mingw64-gcc-c++ \
18+
mingw32-libgomp mingw64-libgomp \
19+
mingw32-winpthreads mingw64-winpthreads \
20+
mingw32-eigen3 mingw64-eigen3 \
21+
mingw32-fftw mingw64-fftw \
22+
mingw32-libjpeg-turbo mingw64-libjpeg-turbo \
23+
mingw32-libpng mingw64-libpng \
24+
mingw32-python3 mingw64-python3 \
25+
mingw32-python3-numpy mingw64-python3-numpy \
26+
mingw32-python3-pyyaml mingw64-python3-pyyaml \
27+
mingw32-python3-setuptools mingw64-python3-setuptools \
28+
mingw32-readline mingw64-readline \
29+
mingw32-termcap mingw64-termcap \
30+
mingw32-zlib mingw64-zlib \
31+
mingw32-zstd mingw64-zstd \
32+
enchant python3-virtualenv doxygen latexmk \
33+
texlive-latex-fonts texlive-pslatex texlive-collection-latexrecommended \
34+
texlive-latex texlive-latexconfig doxygen-latex texlive-collection-latex \
35+
texlive-latex-bin texlive-lualatex-math texlive-fncychap texlive-tabulary \
36+
texlive-framed texlive-wrapfig texlive-upquote texlive-capt-of texlive-pict2e \
37+
texlive-needspace texlive-titlesec texlive-anysize texlive-dvipng texlive-xindy \
38+
blas-devel lapack-devel libyaml-devel openkim-models kim-api-devel \
39+
zstd libzstd-devel yaml-cpp-devel && \
40+
dnf clean all
41+
42+
# install NSIS EnVar plugin
43+
RUN curl -L -o EnVar_plugin.zip https://nsis.sourceforge.io/mediawiki/images/7/7f/EnVar_plugin.zip && \
44+
unzip -d /usr/share/nsis EnVar_plugin.zip && \
45+
rm EnVar_plugin.zip
46+
47+
ENV PLUMED_VERSION=2.8.2
48+
49+
RUN source /usr/share/lmod/lmod/init/profile && \
50+
module purge && \
51+
module load mpi && \
52+
mkdir plumed && \
53+
cd plumed && \
54+
curl -L -o plumed.tar.gz https://github.com/plumed/plumed2/releases/download/v${PLUMED_VERSION}/plumed-src-${PLUMED_VERSION}.tgz && \
55+
tar -xzf plumed.tar.gz && \
56+
cd plumed-${PLUMED_VERSION} && \
57+
./configure --disable-doc --prefix=/usr && \
58+
make -j 4 && \
59+
make install && \
60+
mv -v /usr/lib64/pkgconfig/plumed* /usr/share/pkgconfig/ && \
61+
cd ../../ && \
62+
rm -rvf plumed
63+
64+
# restrict OpenMPI to shared memory comm by default
65+
ENV OMPI_MCA_btl="tcp,self"
66+
# do not warn about unused components as this messes up testing
67+
ENV OMPI_MCA_btl_base_warn_component_unused="0"
68+
69+
# create missing termcap pkgconfig files
70+
COPY termcap_i686.pc /usr/i686-w64-mingw32/sys-root/mingw/lib/pkgconfig/termcap.pc
71+
COPY termcap_x86_64.pc /usr/x86_64-w64-mingw32/sys-root/mingw/lib/pkgconfig/termcap.pc
72+
73+
COPY entrypoint.sh /entrypoint.sh
74+
ENTRYPOINT ["/entrypoint.sh"]
75+
CMD ["/bin/bash"]

0 commit comments

Comments
 (0)