Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
0081215
Add container with clang and gcc
AndyMender Dec 1, 2025
e6aab0c
Add Github Actions workflow to build the base Docker image
AndyMender Dec 1, 2025
0750e7d
Switch back to ubuntu-latest for run base
AndyMender Dec 1, 2025
12e3154
Add explicit checkout step
AndyMender Dec 1, 2025
8eb9dd3
Explicitly pass the default GITHUB_TOKEN
AndyMender Dec 1, 2025
077e928
Change property for github token
AndyMender Dec 1, 2025
9f31504
Add auth step
AndyMender Dec 1, 2025
323d494
Rename docker iamge - common to whole namespace
AndyMender Dec 1, 2025
1be0de6
Add raylib instlal to the Docker image
AndyMender Dec 1, 2025
73238fe
Rename docker image - common to whole namespace
AndyMender Dec 1, 2025
ef8ff28
Fix raylib install RUN call
AndyMender Dec 1, 2025
cb3fccb
Set up Docker to build raylib from source
AndyMender Dec 1, 2025
96d55d1
Add .dockerignore to make Dockerfile fully standalone
AndyMender Dec 1, 2025
83bc534
Add stub for main project build
AndyMender Dec 1, 2025
e7d18b5
Set container.image in project-build
AndyMender Dec 1, 2025
ab934aa
Fix indentation
AndyMender Dec 1, 2025
3fd642a
Set up first build for clang-19
AndyMender Dec 1, 2025
267f28c
Explicitly install libc++ libs for clang
AndyMender Dec 1, 2025
14225d2
Reduce number of clang versions to 1
AndyMender Dec 1, 2025
3d0d1ca
Try to install more clang-20 packages
AndyMender Dec 1, 2025
f5b17b6
Add more clang 20 packages
AndyMender Dec 1, 2025
09e0fce
Set project build to depend on Docker build workflow
AndyMender Dec 1, 2025
e799e35
Fix llvm toolchain installation via script
AndyMender Dec 1, 2025
d140788
Run project build only after the docker build is completed
AndyMender Dec 1, 2025
d84dd91
Fix workflow run dependencies
AndyMender Dec 1, 2025
9044d87
Remove condition check from project-build
AndyMender Dec 1, 2025
d3a0e56
Remove double-quotes in project-build dep
AndyMender Dec 1, 2025
f711129
Temp restore alternative triggers for testing
AndyMender Dec 1, 2025
73e4be1
Try to install all llvm 20 packages
AndyMender Dec 1, 2025
d71623e
Install newer cmake
AndyMender Dec 1, 2025
448677a
Skip license on cmake installation
AndyMender Dec 1, 2025
4468abf
Fix cmake prefix setup
AndyMender Dec 1, 2025
ef94817
Create missing opt cmake dir
AndyMender Dec 1, 2025
761d69b
Install cmake after llvm
AndyMender Dec 1, 2025
0f13adb
Install cmake as the last step
AndyMender Dec 1, 2025
c52b0ec
Build raylib with older cmake first
AndyMender Dec 1, 2025
caf0738
Auto-confirm apt-get purge
AndyMender Dec 1, 2025
f891640
Only build with latest clang 22
AndyMender Dec 1, 2025
309686d
Revert to clang versions available on ubuntu 24.04
AndyMender Dec 1, 2025
50160a8
Use correct llvm package names
AndyMender Dec 1, 2025
64f99e1
Build project for clang 20
AndyMender Dec 1, 2025
4e61d32
Install the actual cimpoiler packages
AndyMender Dec 1, 2025
b0a0873
Try older clang versions
AndyMender Dec 1, 2025
6f930f6
Try to install libc++ ABI libs
AndyMender Dec 1, 2025
8b31e3f
Install full chain only for clang 19
AndyMender Dec 1, 2025
d99ca45
Add possibly missing stdc++ package
AndyMender Dec 1, 2025
0f85725
Revert "Add possibly missing stdc++ package"
AndyMender Dec 1, 2025
012a6be
Fallback to the default clang 19
AndyMender Dec 1, 2025
db5401b
Revert "Fallback to the default clang 19"
AndyMender Dec 1, 2025
27d9945
Install libxc++ packages for clang 19
AndyMender Dec 1, 2025
dca03b7
Add extra build deps for the project
AndyMender Dec 1, 2025
032c483
Install C++ gcc compiler packages
AndyMender Dec 1, 2025
38d2555
Remove -dev package for clang19 c++ - conflict witth unwind
AndyMender Dec 2, 2025
fbd6f83
Switch back to clang 20
AndyMender Dec 2, 2025
645a113
Set up main project builds as multi-job matrix
AndyMender Dec 2, 2025
7bec300
Run main project build only after container build
AndyMender Dec 2, 2025
75f03de
Run builds only on container and source changes
AndyMender Dec 2, 2025
1bb1990
Pass raylib version to Docker from workflow
AndyMender Dec 2, 2025
80f441c
Remove last TODOs
AndyMender Dec 2, 2025
e2087db
Remove old travis CI YAML
AndyMender Dec 2, 2025
1a87d8c
Update README
AndyMender Dec 2, 2025
d892a5c
Fix README
AndyMender Dec 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# This is a standalone Dockerfile for deps, nothing from the project needed
*
!Dockerfile
48 changes: 48 additions & 0 deletions .github/workflows/docker-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Docker build

on:
pull_request:
branches:
- 'main'
paths:
- 'Dockerfile'

push:
branches:
- 'main'
paths:
- 'Dockerfile'

env:
RAYLIB_VERSION: '4.2.0'

jobs:
docker_build:
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
steps:
# NOTE: Required step!
- name: Do repository checkout
uses: actions/checkout@v5

# NOTE: Required step!
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ github.token }}

- name: Build docker image
uses: docker/build-push-action@v6
with:
context: .
file: Dockerfile
push: true
build-args: |
RAYLIB_VERSION=${{ env.RAYLIB_VERSION }}
tags: |
ghcr.io/andymender/raylib_base:latest
ghcr.io/andymender/raylib_base:${{ env.RAYLIB_VERSION }}
38 changes: 38 additions & 0 deletions .github/workflows/project-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Project build

on:
pull_request:
branches:
- 'main'
paths:
- 'src/**'

push:
branches:
- 'main'
paths:
- 'src/**'

jobs:
project_build:
runs-on: ubuntu-latest
container:
image: ghcr.io/andymender/raylib_base:latest
permissions:
packages: read
contents: read
strategy:
matrix:
compilers:
- 'CC=clang-20 CXX=clang++-20'
- 'CC=gcc-12 CXX=g++-12'
- 'CC=gcc-13 CXX=g++-13'
- 'CC=gcc-14 CXX=g++-14'
steps:
# NOTE: Required step!
- name: Do repository checkout
uses: actions/checkout@v5
- name: Build project
run: |
echo "Starting build..."
${{ matrix.compilers }} cmake -S . -B build
65 changes: 0 additions & 65 deletions .travis.yml

This file was deleted.

41 changes: 41 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
FROM ubuntu:24.04

ARG RAYLIB_VERSION

# Install basic dependencies
RUN apt-get update && apt-get install -y \
cmake \
git \
libgoogle-glog-dev \
libunwind-dev \
libsqlite3-dev

# Install selected gcc versions
RUN apt-get update && apt-get install -y \
gcc-12 g++-12 \
gcc-13 g++-13 \
gcc-14 g++-14

# Install selected clang versions
RUN apt-get update && apt-get install -y \
llvm-20 clang-20 libc++abi-20-dev libc++abi1-20 libc++1-20

# Build raylib from source
RUN apt-get update && apt-get install -y \
build-essential \
libasound2-dev \
libx11-dev \
libxrandr-dev \
libxi-dev \
libgl1-mesa-dev \
libglu1-mesa-dev \
libxcursor-dev \
libxinerama-dev \
libwayland-dev \
libxkbcommon-dev

RUN git clone --depth 1 --branch ${RAYLIB_VERSION} https://github.com/raysan5/raylib.git raylib && \
cd raylib && \
cmake -S . -B build -DBUILD_SHARED_LIBS=ON && \
cd build && \
make install && ldconfig
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ A set of simple games in C17/C++17 (enforced by cmake) using the [raylib](https:

# Build
## CI/CD
Covered in the `.travis.yml` Travis CI YAML config
Covered in [github actions workflows](./.github/workflows/).

## Manual
```shell
Expand Down