|
1 |
| -# Docker images for CI workflows in C++ projects |
| 1 | +# Docker Images for C++ CI Workflows |
2 | 2 |
|
3 |
| -This repository provides two images for use in GitHub CI workflows in C++ |
4 |
| -projects. |
| 3 | +This repository provides two Docker images optimized for use in GitHub Actions |
| 4 | +CI workflows targeting C++ projects. |
5 | 5 |
|
6 |
| -1. [ghcr.io/mattkretz/cplusplus-ci/base](https://github.com/users/mattkretz/packages/container/package/cplusplus-ci%2Fbase) |
7 |
| - This container is based on Ubuntu 24.04 with several useful packages |
8 |
| - installed via APT: |
| 6 | +## Available Images |
9 | 7 |
|
10 |
| - - `make` and `ninja` |
11 |
| - - `cmake` |
12 |
| - - GCC 13 and 14 with `-m32` and `-mx32` support |
13 |
| - - `gcc`/`g++` defaults to GCC 14 |
14 |
| - - Clang 20 and 21 (trunk) |
| 8 | +### 1. [`ghcr.io/mattkretz/cplusplus-ci/base`](https://github.com/users/mattkretz/packages/container/package/cplusplus-ci%2Fbase) |
15 | 9 |
|
16 |
| - You can thus set your `CXX` environment variable to either one of: |
| 10 | +A base image built on **Ubuntu 24.04**, with several useful packages installed |
| 11 | +via APT: |
17 | 12 |
|
18 |
| - - `g++-13` |
19 |
| - - `g++-14` |
20 |
| - - `clang++-20` |
21 |
| - - `clang++-21` |
| 13 | +- `make` and `ninja` |
| 14 | +- `cmake` |
| 15 | +- GCC 13 and 14 with `-m32` and `-mx32` support |
| 16 | +- Default `gcc`/`g++` → **GCC 14** |
| 17 | +- Clang 20 and 21 (trunk) |
22 | 18 |
|
23 |
| -2. [ghcr.io/mattkretz/cplusplus-ci/latest](https://github.com/users/mattkretz/packages/container/package/cplusplus-ci%2Flatest) |
24 |
| - This container builds upon the base image. In addition, GCC 15 and GCC |
25 |
| - master are installed in `/opt/gcc-15` and `/opt/gcc-master`, respectively. |
26 |
| - GCC is compiled from Git (`releases/gcc-15` and `master` branches). Both |
27 |
| - installations support `-m32` and `-mx32` builds. |
| 19 | +You can set the `CXX` environment variable to: |
28 | 20 |
|
29 |
| - In this image `gcc`/`g++` defaults to GCC 15. |
| 21 | +- `g++-13` |
| 22 | +- `g++-14` |
| 23 | +- `clang++-20` |
| 24 | +- `clang++-21` |
30 | 25 |
|
31 |
| - In addition to the above, you can set your `CXX` environment variable to: |
| 26 | +--- |
32 | 27 |
|
33 |
| - - `g++-15` |
34 |
| - - `g++-master` (or `g++-trunk`) |
| 28 | +### 2. [`ghcr.io/mattkretz/cplusplus-ci/latest`](https://github.com/users/mattkretz/packages/container/package/cplusplus-ci%2Flatest) |
35 | 29 |
|
36 |
| -## Example GitHub CI workflow |
| 30 | +This image builds on the `base` image and adds: |
37 | 31 |
|
38 |
| -``` |
| 32 | +- **GCC 15** and **GCC master**, compiled from the upstream `releases/gcc-15` |
| 33 | + and `master` branches |
| 34 | +- Installed in: |
| 35 | + - `/opt/gcc-15` |
| 36 | + - `/opt/gcc-master` |
| 37 | +- Supports `-m32` and `-mx32` builds |
| 38 | +- Default `gcc`/`g++` → **GCC 15** |
| 39 | + |
| 40 | +You can additionally set the `CXX` environment variable to: |
| 41 | + |
| 42 | +- `g++-15` |
| 43 | +- `g++-master` *(alias: `g++-trunk`)* |
| 44 | + |
| 45 | +--- |
| 46 | + |
| 47 | +## Example GitHub CI Workflow |
| 48 | + |
| 49 | +```yaml |
39 | 50 | name: Clang
|
40 | 51 |
|
41 | 52 | on:
|
|
0 commit comments