Skip to content

Commit a45e2a8

Browse files
authored
Merge pull request #5838 from tjhei/clang-tidy
add separate nightly deal.II master Docker script with clang
2 parents d255676 + 42c4b9b commit a45e2a8

File tree

4 files changed

+93
-0
lines changed

4 files changed

+93
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: build-dealii-master-clang
2+
3+
on:
4+
workflow_dispatch:
5+
schedule:
6+
# * is a special character in YAML so you have to quote this string
7+
# trigger at 1:30 am every day
8+
- cron: '30 1 * * *'
9+
10+
concurrency:
11+
group: build-dealii-master-clang
12+
13+
permissions:
14+
contents: read
15+
packages: write
16+
17+
jobs:
18+
build-clang-master:
19+
runs-on: ubuntu-latest
20+
if: github.repository == 'geodynamics/aspect'
21+
steps:
22+
- name: Checkout code
23+
uses: actions/checkout@v4
24+
25+
- name: Set up Docker Buildx
26+
uses: docker/setup-buildx-action@v3
27+
28+
- name: Login to DockerHub
29+
uses: docker/login-action@v3
30+
with:
31+
username: ${{ secrets.DOCKER_HUB_USERNAME }}
32+
password: ${{ secrets.DOCKER_HUB_LOGIN }}
33+
34+
- name: Build and push Docker image for main
35+
uses: docker/build-push-action@v5
36+
with:
37+
context: ./contrib/docker/tester-clang
38+
cache-from: type=registry,ref=ubuntu:24.04
39+
cache-to: type=inline
40+
push: true
41+
tags: geodynamics/aspect-tester:noble-dealii-master-clang
+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
FROM ubuntu:24.04
2+
3+
LABEL maintainer <[email protected]>
4+
5+
RUN DEBIAN_FRONTEND=noninteractive apt update && apt upgrade -yq && \
6+
DEBIAN_FRONTEND=noninteractive apt install -yq --no-install-recommends \
7+
build-essential ca-certificates file gcc g++ \
8+
gfortran git libblas-dev liblapack-dev libopenmpi-dev \
9+
lsb-release ninja-build numdiff openmpi-bin \
10+
openmpi-common wget zlib1g-dev \
11+
clang-tidy clang cmake libp4est-dev libsundials-dev \
12+
mpi-default-dev trilinos-all-dev zlib1g-dev libhdf5-dev libhdf5-mpi-dev
13+
14+
COPY local.cfg /opt/
15+
16+
# Install deal.II with clang using candi:
17+
18+
RUN cd /opt && \
19+
git clone https://github.com/dealii/candi && \
20+
cd candi && \
21+
mv /opt/local.cfg . && \
22+
CXX=clang++ CC=clang ./candi.sh -p /opt -j2 && \
23+
rm -rf /opt/tmp
24+
25+
# Set environment variables for this image to be used
26+
# by Github Actions
27+
ENV PATH="/opt/astyle-2.04:$PATH"
28+
ENV DEAL_II_DIR /opt/deal.II-master
29+
ENV OMPI_MCA_btl_base_warn_component_unused=0
30+
ENV OMPI_MCA_mpi_yield_when_idle=1
31+
ENV OMPI_MCA_rmaps_base_oversubscribe=1
32+
ENV OMPI_ALLOW_RUN_AS_ROOT=1
33+
ENV OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
34+
35+
WORKDIR /opt

contrib/docker/tester-clang/build.sh

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/bin/bash
2+
3+
# This script generates a docker image for the ASPECT tester.
4+
5+
docker build -t geodynamics/aspect-tester:noble-dealii-master-clang .

contrib/docker/tester-clang/local.cfg

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Compile with debug checks, but also with optimizations to make tests run fast
2+
USE_DEAL_II_CMAKE_MPI_COMPILER=OFF
3+
BUILD_EXAMPLES=OFF
4+
5+
DEAL_II_VERSION=master
6+
7+
USE_64_BIT_INDICES=ON
8+
9+
DEAL_II_CONFOPTS="-DDEAL_II_WITH_COMPLEX_VALUES=OFF -DCMAKE_BUILD_TYPE='DebugRelease' -DDEAL_II_CXX_FLAGS_DEBUG='-O3 -g0' -DDEAL_II_COMPONENT_EXAMPLES=OFF"
10+
11+
# only compile deal.II, the rest of the dependencies are installed using apt
12+
PACKAGES="astyle dealii"

0 commit comments

Comments
 (0)