Skip to content

Commit 565a4b4

Browse files
committed
Add PPC Ubuntu Docker image and use it on CI
1 parent 4c7da95 commit 565a4b4

File tree

2 files changed

+74
-0
lines changed

2 files changed

+74
-0
lines changed

.github/workflows/docker.yml

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

docker/ubuntu.Dockerfile

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
FROM ubuntu:24.04
2+
3+
ENV DEBIAN_FRONTEND=noninteractive
4+
5+
RUN set -e \
6+
&& apt-get update \
7+
&& apt-get install -y --no-install-recommends \
8+
build-essential \
9+
ca-certificates curl wget gnupg lsb-release software-properties-common \
10+
python3 python3-pip \
11+
ninja-build cmake make \
12+
ccache \
13+
valgrind \
14+
libmpich-dev mpich \
15+
openmpi-bin openmpi-common libopenmpi-dev \
16+
libomp-dev \
17+
gcc-14 g++-14 \
18+
gcovr \
19+
&& 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+
&& rm -rf /var/lib/apt/lists/*
25+
26+
ENV CC=gcc-14 CXX=g++-14
27+
28+
CMD ["bash"]

0 commit comments

Comments
 (0)