Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 4dba34a

Browse files
committedJun 16, 2025·
Add PPC Ubuntu Docker image and use it on CI
1 parent 4c7da95 commit 4dba34a

File tree

2 files changed

+74
-0
lines changed

2 files changed

+74
-0
lines changed
 

‎.github/workflows/docker.yml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
on:
2+
push:
3+
branches:
4+
- master
5+
paths:
6+
- 'docker/**'
7+
pull_request:
8+
paths:
9+
- 'docker/**'
10+
11+
env:
12+
IMAGE: ghcr.io/learning-process/ppc-ci:latest
13+
14+
jobs:
15+
build-and-push:
16+
name: Build & Push Docker Image
17+
runs-on: ubuntu-latest
18+
19+
steps:
20+
- name: Check out code
21+
uses: actions/checkout@v3
22+
23+
- name: Set up QEMU
24+
uses: docker/setup-qemu-action@v2
25+
with:
26+
platforms: linux/amd64,linux/arm64
27+
28+
- name: Set up Docker Buildx
29+
uses: docker/setup-buildx-action@v2
30+
31+
- name: Log in to GHCR
32+
uses: docker/login-action@v2
33+
with:
34+
registry: ghcr.io
35+
username: ${{ github.actor }}
36+
password: ${{ secrets.GITHUB_TOKEN }}
37+
38+
- name: Build and push multi-arch image
39+
uses: docker/build-push-action@v4
40+
with:
41+
context: .
42+
file: ./docker/ubuntu.Dockerfile
43+
platforms: linux/amd64,linux/arm64
44+
push: true
45+
tags: ghcr.io/learning-process/ppc-ubuntu:latest

‎docker/ubuntu.Dockerfile

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
FROM ubuntu:24.04
2+
3+
ENV DEBIAN_FRONTEND=noninteractive
4+
5+
RUN apt-get update && apt-get install -y --no-install-recommends \
6+
build-essential \
7+
ca-certificates curl wget gnupg lsb-release software-properties-common \
8+
python3 python3-pip \
9+
ninja-build cmake make \
10+
ccache \
11+
valgrind \
12+
libmpich-dev mpich \
13+
openmpi-bin openmpi-common libopenmpi-dev \
14+
libomp-dev \
15+
gcc-14 g++-14 \
16+
gcovr \
17+
&& rm -rf /var/lib/apt/lists/*
18+
19+
RUN wget -q https://apt.llvm.org/llvm.sh \
20+
&& chmod +x llvm.sh \
21+
&& ./llvm.sh 20 all \
22+
&& rm llvm.sh \
23+
&& apt-get clean
24+
25+
SHELL ["/bin/bash", "-eo", "pipefail", "-c"]
26+
27+
ENV CC=gcc-14 CXX=g++-14
28+
29+
CMD ["bash"]

0 commit comments

Comments
 (0)
Please sign in to comment.