Skip to content

Commit e3829cb

Browse files
committed
Split into base and latest images/workflows
ChangeLog: * .github/workflows/build-base.yml: New file. * .github/workflows/build-ci-docker.yml: Renamed to build-latest.yml. * Dockerfile -> Dockerfile.base. * Dockerfile.latest: New file.
1 parent 7bd9857 commit e3829cb

File tree

4 files changed

+75
-25
lines changed

4 files changed

+75
-25
lines changed

.github/workflows/build-ci-docker.yml renamed to .github/workflows/build-base.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Copyright © 2025 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH
33
# Matthias Kretz <m.kretz@gsi.de>
44

5-
name: Build and Push C++ CI Docker Image
5+
name: Build Base Image
66

77
on:
88
workflow_dispatch: # Allows manual trigger via GitHub UI
@@ -33,6 +33,6 @@ jobs:
3333
uses: docker/build-push-action@v5
3434
with:
3535
context: .
36+
file: Dockerfile.base
3637
push: true
37-
tags: ghcr.io/${{ github.actor }}/cplusplus-ci:latest
38-
38+
tags: ghcr.io/${{ github.repository }}/base

.github/workflows/build-latest.yml

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# SPDX-License-Identifier: GPL-3.0-or-later
2+
# Copyright © 2025 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH
3+
# Matthias Kretz <m.kretz@gsi.de>
4+
5+
name: Build Latest Image
6+
7+
on:
8+
workflow_dispatch: # Allows manual trigger via GitHub UI
9+
10+
permissions:
11+
contents: read
12+
packages: write # Required to push to GHCR
13+
14+
jobs:
15+
build-and-push:
16+
runs-on: ubuntu-latest
17+
18+
steps:
19+
- name: Checkout repository
20+
uses: actions/checkout@v4
21+
22+
- name: Set up Docker Buildx
23+
uses: docker/setup-buildx-action@v3
24+
25+
- name: Log in to GHCR
26+
uses: docker/login-action@v3
27+
with:
28+
registry: ghcr.io
29+
username: ${{ github.actor }}
30+
password: ${{ secrets.GITHUB_TOKEN }}
31+
32+
- name: Build and push Docker image
33+
uses: docker/build-push-action@v5
34+
with:
35+
context: .
36+
file: Dockerfile.latest
37+
push: true
38+
tags: ghcr.io/${{ github.repository }}/latest
39+

Dockerfile renamed to Dockerfile.base

+2-22
Original file line numberDiff line numberDiff line change
@@ -36,28 +36,8 @@ RUN dpkg --add-architecture i386 && \
3636
chmod +x llvm.sh && \
3737
./llvm.sh 20 && \
3838
./llvm.sh 21 && \
39-
rm llvm.sh
40-
41-
# GCC 15
42-
RUN mkdir -p /root/gcc-15/obj && \
43-
cd /root/gcc-15 && \
44-
curl -L https://github.com/gcc-mirror/gcc/archive/releases/gcc-15.tar.gz \
45-
| tar -xz --strip-components=1 && \
46-
cd /root/gcc-15/obj && ../configure --enable-languages=c,c++,lto --prefix=/opt/gcc-15 --disable-checking --disable-bootstrap && \
47-
make -j3 && \
48-
make -j3 install && \
49-
update-alternatives --install /usr/bin/gcc gcc /opt/gcc-15/bin/gcc 150 --slave /usr/bin/g++ g++ /opt/gcc-15/bin/g++ && \
50-
cd /root && rm -rf gcc-15
51-
52-
# GCC master
53-
RUN mkdir -p /root/gcc-master/obj && \
54-
cd /root/gcc-master && \
55-
curl -L https://github.com/gcc-mirror/gcc/archive/master.tar.gz \
56-
| tar -xz --strip-components=1 && \
57-
cd /root/gcc-master/obj && ../configure --enable-languages=c,c++,lto --prefix=/opt/gcc-master --disable-checking --disable-bootstrap && \
58-
make -j3 && \
59-
make -j3 install && \
60-
cd /root && rm -rf gcc-master
39+
rm llvm.sh && \
40+
apt-get clean
6141

6242
CMD ["/bin/bash"]
6343

Dockerfile.latest

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# SPDX-License-Identifier: GPL-3.0-or-later
2+
# Copyright © 2025 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH
3+
# Matthias Kretz <m.kretz@gsi.de>
4+
5+
FROM ghcr.io/mattkretz/cplusplus-ci/base
6+
7+
ENV DEBIAN_FRONTEND=noninteractive
8+
9+
# GCC 15
10+
RUN mkdir -p /root/gcc-15/obj && \
11+
cd /root/gcc-15 && \
12+
curl -L https://github.com/gcc-mirror/gcc/archive/releases/gcc-15.tar.gz \
13+
| tar -xz --strip-components=1 && \
14+
cd /root/gcc-15/obj && ../configure --enable-languages=c,c++,lto --prefix=/opt/gcc-15 --disable-checking --disable-bootstrap && \
15+
make -j3 && \
16+
make -j3 install-strip && \
17+
update-alternatives --install /usr/bin/gcc gcc /opt/gcc-15/bin/gcc 150 --slave /usr/bin/g++ g++ /opt/gcc-15/bin/g++ && \
18+
cd /root && rm -rf gcc-15
19+
20+
# GCC master
21+
RUN mkdir -p /root/gcc-master/obj && \
22+
cd /root/gcc-master && \
23+
curl -L https://github.com/gcc-mirror/gcc/archive/master.tar.gz \
24+
| tar -xz --strip-components=1 && \
25+
cd /root/gcc-master/obj && ../configure --enable-languages=c,c++,lto --prefix=/opt/gcc-master --disable-checking --disable-bootstrap && \
26+
make -j3 && \
27+
make -j3 install-strip && \
28+
cd /root && rm -rf gcc-master
29+
30+
CMD ["/bin/bash"]
31+

0 commit comments

Comments
 (0)