mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-25 17:40:36 +00:00
Merge pull request #117 from still-flow/master
Proposal to add Github CI
This commit is contained in:
commit
2425c33403
36
.github/workflows/build.sh
vendored
Executable file
36
.github/workflows/build.sh
vendored
Executable file
@ -0,0 +1,36 @@
|
|||||||
|
set -e o pipefail
|
||||||
|
source .github/workflows/gh_ci_envvars.sh
|
||||||
|
|
||||||
|
|
||||||
|
GH_MYMAKE_ARGS=""
|
||||||
|
GH_AUTOTOOLS_CXXFLAGS="-W -Wall -Wextra -Wno-unused-parameter -Wno-maybe-uninitialized"
|
||||||
|
|
||||||
|
HYPERROGUE_USE_GLEW=$GH_HYP_GLEW
|
||||||
|
export HYPERROGUE_USE_GLEW=${HYPERROGUE_USE_GLEW: -1}
|
||||||
|
|
||||||
|
HYPERROGUE_USE_PNG=$GH_HYP_PNG
|
||||||
|
export HYPERROGUE_USE_PNG=${HYPERROGUE_USE_PNG: -1}
|
||||||
|
|
||||||
|
HYPERROGUE_USE_ROGUEVIZ=$GH_HYP_RVIZ
|
||||||
|
export HYPERROGUE_USE_ROGUEVIZ=${HYPERROGUE_USE_ROGUEVIZ: -1}
|
||||||
|
if [[ "$GH_HYP_RVIZ" == "rviz_1" ]]; then
|
||||||
|
GH_MYMAKE_ARGS+=" -rv"
|
||||||
|
GH_AUTOTOOLS_CXXFLAGS+=" -DCAP_ROGUEVIZ=1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
export CC=$GH_COMPILER
|
||||||
|
export CXX=${CC%cc}++
|
||||||
|
|
||||||
|
if [[ "$GH_BUILDSYS" == "makefile" ]]; then
|
||||||
|
make -f Makefile.simple
|
||||||
|
elif [[ "$GH_BUILDSYS" == "autotools" ]]; then
|
||||||
|
autoreconf -vfi
|
||||||
|
./configure CXXFLAGS="${GH_AUTOTOOLS_CXXFLAGS}"
|
||||||
|
make
|
||||||
|
elif [[ "$GH_BUILDSYS" == "mymake" ]]; then
|
||||||
|
make -f Makefile.simple mymake
|
||||||
|
./mymake $GH_MYMAKE_ARGS
|
||||||
|
mv hyper hyperrogue
|
||||||
|
else
|
||||||
|
exit 'unknown build system'
|
||||||
|
fi
|
80
.github/workflows/github_ci.yml
vendored
Normal file
80
.github/workflows/github_ci.yml
vendored
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
name: Github CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [master]
|
||||||
|
pull_request:
|
||||||
|
branches: [master]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
main_matrix:
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-latest, macos-latest]
|
||||||
|
compiler: [gcc, clang]
|
||||||
|
build_system: [makefile, autotools, mymake]
|
||||||
|
hyper_use_rviz: [rviz_1, rviz_0]
|
||||||
|
hyper_use_png: [png_1]
|
||||||
|
hyper_use_glew: [glew_1]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: envvars_setup
|
||||||
|
run: |
|
||||||
|
cat << ENDOFVARS > .github/workflows/gh_ci_envvars.sh
|
||||||
|
GH_OS=${{ matrix.os }}
|
||||||
|
GH_COMPILER=${{ matrix.compiler }}
|
||||||
|
GH_BUILDSYS=${{ matrix.build_system }}
|
||||||
|
GH_HYP_RVIZ=${{ matrix.hyper_use_rviz }}
|
||||||
|
GH_HYP_PNG=${{ matrix.hyper_use_png }}
|
||||||
|
GH_HYP_GLEW=${{ matrix.hyper_use_glew }}
|
||||||
|
ENDOFVARS
|
||||||
|
- name: install_deps
|
||||||
|
run: .github/workflows/install_deps.sh
|
||||||
|
- name: build
|
||||||
|
run: .github/workflows/build.sh
|
||||||
|
- name: test_simple
|
||||||
|
run: .github/workflows/test_simple.sh
|
||||||
|
|
||||||
|
windows:
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os: [windows-latest]
|
||||||
|
compiler: [gcc]
|
||||||
|
build_system: [makefile, autotools]
|
||||||
|
hyper_use_rviz: [rviz_1, rviz_0]
|
||||||
|
hyper_use_png: [png_1]
|
||||||
|
hyper_use_glew: [glew_1]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: envvars_setup
|
||||||
|
shell: cmd.exe /D /E:ON /V:OFF /C "C:\msys64\msys2_shell.cmd -defterm -msys2 -no-start -full-path -here {0}"
|
||||||
|
run: |
|
||||||
|
cat << ENDOFVARS > .github/workflows/gh_ci_envvars.sh
|
||||||
|
GH_OS=${{ matrix.os }}
|
||||||
|
GH_COMPILER=${{ matrix.compiler }}
|
||||||
|
GH_BUILDSYS=${{ matrix.build_system }}
|
||||||
|
GH_HYP_RVIZ=${{ matrix.hyper_use_rviz }}
|
||||||
|
GH_HYP_PNG=${{ matrix.hyper_use_png }}
|
||||||
|
GH_HYP_GLEW=${{ matrix.hyper_use_glew }}
|
||||||
|
ENDOFVARS
|
||||||
|
- name: install_deps
|
||||||
|
run: cmd.exe /D /E:ON /V:OFF /C "C:\msys64\msys2_shell.cmd -defterm -msys2 -no-start -full-path -here .github/workflows/install_deps.sh"
|
||||||
|
- name: build
|
||||||
|
run: cmd.exe /D /E:ON /V:OFF /C "C:\msys64\msys2_shell.cmd -defterm -mingw64 -no-start -full-path -here .github/workflows/build.sh"
|
||||||
|
- name: test_simple
|
||||||
|
run: cmd.exe /D /E:ON /V:OFF /C "C:\msys64\msys2_shell.cmd -defterm -mingw64 -no-start -full-path -here .github/workflows/test_simple.sh"
|
||||||
|
|
||||||
|
emscripten:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: build
|
||||||
|
run: |
|
||||||
|
docker run --rm -v $(pwd):/src trzeci/emscripten make -f Makefile.simple emscripten
|
||||||
|
- name: test_simple
|
||||||
|
run: |
|
||||||
|
ls -lAF hyper.html hyper.js hyper.wasm
|
40
.github/workflows/install_deps.sh
vendored
Executable file
40
.github/workflows/install_deps.sh
vendored
Executable file
@ -0,0 +1,40 @@
|
|||||||
|
set -e o pipefail
|
||||||
|
source .github/workflows/gh_ci_envvars.sh
|
||||||
|
|
||||||
|
|
||||||
|
GH_DEPS_UBUNTU="$GH_COMPILER libsdl1.2-dev libsdl-ttf2.0-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev"
|
||||||
|
GH_DEPS_MACOS="sdl sdl_gfx sdl_mixer sdl_ttf"
|
||||||
|
GH_DEPS_MINGW64="$GH_COMPILER:x SDL:x SDL_ttf:x SDL_gfx:x SDL_mixer:x"
|
||||||
|
|
||||||
|
if [[ "$GH_HYP_GLEW" == "glew_1" ]]; then
|
||||||
|
GH_DEPS_UBUNTU+=" libglew-dev"
|
||||||
|
GH_DEPS_MACOS+=" glew"
|
||||||
|
GH_DEPS_MINGW64+=" glew:x"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$GH_HYP_PNG" == "png_1" ]]; then
|
||||||
|
GH_DEPS_UBUNTU+=" libpng-dev"
|
||||||
|
GH_DEPS_MACOS+=" libpng"
|
||||||
|
GH_DEPS_MINGW64+=" libpng:x"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$GH_BUILDSYS" == "autotools" ]]; then
|
||||||
|
GH_DEPS_UBUNTU+=" autoconf"
|
||||||
|
GH_DEPS_MACOS+=" automake"
|
||||||
|
GH_DEPS_MINGW64+=" automake-wrapper autoconf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$GH_OS" == "ubuntu-latest" ]]; then
|
||||||
|
sudo apt-get -y install $GH_DEPS_UBUNTU
|
||||||
|
elif [[ "$GH_OS" == "macos-latest" ]]; then
|
||||||
|
brew update
|
||||||
|
# macos-latest already has both gcc and clang
|
||||||
|
brew install $GH_DEPS_MACOS
|
||||||
|
# work around https://stackoverflow.com/questions/51034399/ for now
|
||||||
|
(cd /usr/local/include && ln -sf SDL/SDL.h)
|
||||||
|
elif [[ "$GH_OS" == "windows-latest" ]]; then
|
||||||
|
pacboy -Sy --noconfirm --needed $GH_DEPS_MINGW64
|
||||||
|
sed -i'.orig' 's/<SDL.h>/"SDL.h"/' /mingw64/include/SDL/SDL_gfxPrimitives.h
|
||||||
|
else
|
||||||
|
exit 'unknown OS'
|
||||||
|
fi
|
5
.github/workflows/test_simple.sh
vendored
Executable file
5
.github/workflows/test_simple.sh
vendored
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
set -e o pipefail
|
||||||
|
source .github/workflows/gh_ci_envvars.sh
|
||||||
|
|
||||||
|
|
||||||
|
./hyperrogue --version
|
Loading…
Reference in New Issue
Block a user