Skip to content

Commit

Permalink
Beginnings of a CI, Linux: unit tests on push and smoketests on PRs.
Browse files Browse the repository at this point in the history
  • Loading branch information
Rotonen committed Jul 16, 2023
1 parent 0bb824c commit 9cfa9a4
Show file tree
Hide file tree
Showing 7 changed files with 344 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .github/dependabot.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/.github/workflows"
schedule:
interval: "monthly"
60 changes: 60 additions & 0 deletions .github/workflows/pr-smoketest-debian.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: Debian
on:
pull_request:
merge_group:

jobs:
test:
name: Smoketest Debian
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
debian:
# Bullseye is the oldest Debian with a new enough glm
- "bullseye" # 11
- "bookworm" # 12
- "trixie" # 13
compiler:
- g++
- clang
container: debian:${{ matrix.debian }}-slim
steps:
- name: Install Dependencies
env:
DEBIAN_FRONTEND: noninteractive
run: |
apt-get -qq update
apt-get -qq upgrade -y
apt-get -qq install -y --no-install-recommends \
ca-certificates \
git \
${{ matrix.compiler }} \
libboost-dev \
libboost-filesystem-dev \
libboost-locale-dev \
libboost-regex-dev \
libboost-system-dev \
libcairo2-dev \
libglew-dev \
libglm-dev \
libsdl2-dev \
libsdl2-image-dev \
libsdl2-mixer-dev \
libsdl2-ttf-dev \
libvorbis-dev \
make
- name: Checkout Anura
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
submodules: true

- name: Build Anura
env:
CXX: ${{ matrix.compiler }}
# Number of cores * 3
run: make -j "$(($(getconf _NPROCESSORS_ONLN) * 3))"

- name: Run Unit Tests
run: ./anura --tests
58 changes: 58 additions & 0 deletions .github/workflows/pr-smoketest-fedora.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Fedora
on:
pull_request:
merge_group:

jobs:
test:
name: Smoketest Fedora
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
fedora:
# 32 is the oldest Fedora with a new enough glm
- "32"
- "33"
- "34"
- "35"
- "36"
- "37"
- "38"
- "39"
compiler:
- g++
- clang
container: fedora:${{ matrix.fedora }}
steps:
- name: Install Dependencies
run: |
dnf -y update
dnf -y install \
git \
${{ matrix.compiler }} \
make \
which \
SDL2-devel \
boost-devel \
glm-devel \
glew-devel \
cairo-devel \
SDL2_ttf-devel \
SDL2_image-devel \
SDL2_mixer-devel \
libvorbis-devel
- name: Checkout Anura
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
submodules: true

- name: Build Anura
env:
CXX: ${{ matrix.compiler }}
# Number of cores * 3
run: make -j "$(($(getconf _NPROCESSORS_ONLN) * 3))"

- name: Run Unit Tests
run: ./anura --tests
68 changes: 68 additions & 0 deletions .github/workflows/pr-smoketest-opensuse-leap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: openSUSE Leap
on:
pull_request:
merge_group:

jobs:
test:
name: Smoketest openSUSE Leap
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
suse:
# 15.3 is the oldest openSUSE Leap with a new enough glm
- "15.3"
- "15.4"
- "15.5"
compiler:
- g++
- clang
container: opensuse/leap:${{ matrix.suse }}
steps:
- name: Resolve Compiler Package Name
run: |
if [[ ${{ matrix.compiler }} == g++ ]]
then
echo compiler=gcc-c++ >> "$GITHUB_ENV"
else
echo compiler=clang >> "$GITHUB_ENV"
fi
- name: Install Dependencies
run: |
zypper --non-interactive update
zypper --non-interactive install \
git \
${{ env.compiler }} \
make \
which \
libSDL2-devel \
glm-devel \
glew-devel \
boost-devel \
libSDL2_image-devel \
cairo-devel \
libSDL2_ttf-devel \
libSDL2_mixer-devel \
libvorbis-devel \
libicu-devel \
libboost_system*6*devel \
libboost_locale*6*devel \
libboost_regex*6*devel \
libboost_filesystem*6*devel \
libboost_thread*6*devel
- name: Checkout Anura
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
submodules: true

- name: Build Anura
env:
CXX: ${{ matrix.compiler }}
# Number of cores * 3
run: make -j "$(($(getconf _NPROCESSORS_ONLN) * 3))"

- name: Run Unit Tests
run: ./anura --tests
57 changes: 57 additions & 0 deletions .github/workflows/pr-smoketest-ubuntu.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Ubuntu
on:
pull_request:
merge_group:

jobs:
test:
name: Smoketest Ubuntu
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
ubuntu:
- "22.04" # LTS only for sanity
compiler:
- g++
- clang
container: ubuntu:${{ matrix.ubuntu }}
steps:
- name: Install Dependencies
env:
DEBIAN_FRONTEND: noninteractive
run: |
apt-get -qq update
apt-get -qq upgrade -y
apt-get -qq install -y --no-install-recommends \
ca-certificates \
git \
${{ matrix.compiler }} \
libboost-dev \
libboost-filesystem-dev \
libboost-locale-dev \
libboost-regex-dev \
libboost-system-dev \
libcairo2-dev \
libglew-dev \
libglm-dev \
libsdl2-dev \
libsdl2-image-dev \
libsdl2-mixer-dev \
libsdl2-ttf-dev \
libvorbis-dev \
make
- name: Checkout Anura
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
submodules: true

- name: Build Anura
env:
CXX: ${{ matrix.compiler }}
# Number of cores * 3
run: make -j "$(($(getconf _NPROCESSORS_ONLN) * 3))"

- name: Run Unit Tests
run: ./anura --tests
46 changes: 46 additions & 0 deletions .github/workflows/push-unit-tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Unit Tests
on: push

jobs:
test:
name: Unit Tests
runs-on: ubuntu-22.04
steps:
- name: Install Dependencies
env:
DEBIAN_FRONTEND: noninteractive
run: |
apt-get -qq update
apt-get -qq upgrade -y
apt-get -qq install -y --no-install-recommends \
ca-certificates \
git \
clang \
libboost-dev \
libboost-filesystem-dev \
libboost-locale-dev \
libboost-regex-dev \
libboost-system-dev \
libcairo2-dev \
libglew-dev \
libglm-dev \
libsdl2-dev \
libsdl2-image-dev \
libsdl2-mixer-dev \
libsdl2-ttf-dev \
libvorbis-dev \
make
- name: Checkout Anura
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
submodules: true

- name: Build Anura
env:
CXX: clang
# Number of cores * 3
run: make -j "$(($(getconf _NPROCESSORS_ONLN) * 3))"

- name: Run Unit Tests
run: ./anura --tests
49 changes: 49 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,56 @@
# Anura Engine

![](https://raw.github.com/anura-engine/anura/master/utils/Logo%20Images/Anura%20Logo.png)

Anura is the tech behind the spectacular [Frogatto & Friends](https://github.com/frogatto/frogatto/wiki). It is a fully-featured game engine, free for commercial and non-commercial use.

Note: For historic reasons – unlike most projects – Anura's main development branch is `trunk` as opposed to `master`. For example, to clone the repository, you might run `git clone --branch trunk git@github.com:anura-engine/anura.git`.

To compile Anura for [Argentum Age](https://github.com/davewx7/citadel) (formerly Citadel), use the `argentum-age` branch. There are some issues on `trunk` which prevent AA from running there at the moment.

## CI

At the time of writing (2023-07) the CI setup tests the following permutations:

On every push:

* Unit Tests
* Ubuntu 22.04 / clang
* NOT IMPLEMENTED Windows
* NOT IMPLEMENTED macOS

On Pull Requests and Merge Queue events:

* Smoketest dynamic builds on Linux (both g++ and clang)
* Debian
* 11 / Bullseye
* 12 / Bookworm
* 13 / Trixie
* Ubuntu
* 22.04 / Jammy Jellyfish
* Fedora
* 32
* 33
* 34
* 35
* 36
* 37
* 38
* 39
* openSUSE Leap
* 15.3
* 15.4
* 15.5

This set should cover most popular use cases and also derivative distributions
of these root distributions. There are no plans to test on rolling release
distributions: on those you are on your own and we welcome the heads up if
something breaks for you and can take a look, but will not guarantee a rapid
fix. Pull requests welcome.

Smoketest static builds on Linux:

* NOT IMPLEMENTED Steam

All publishing builds will happen from the module side, most notably from
[Frogatto](https://github.com/frogatto/frogatto).

0 comments on commit 9cfa9a4

Please sign in to comment.