grafX2/.gitlab-ci.yml
2023-01-21 20:28:09 +01:00

137 lines
4.2 KiB
YAML

variables:
GIT_SUBMODULE_STRATEGY: normal
stages:
- test
- build
- pages
tests:
stage: test
before_script:
- apt-get update -qq
- apt-get install -y -qq libsdl1.2-dev libpng-dev libsdl-ttf2.0-dev libsdl-image1.2-dev liblua5.3-dev
script:
- "CFLAGS=-fsanitize=address LDFLAGS=-fsanitize=address OPTIM=0 make check || exit 1"
artifacts:
reports:
junit: test-report.xml
checkversions:
stage: test
allow_failure: true
before_script:
- apt-get update -qq
- apt-get install -y -qq jq
script:
- "make -C 3rdparty/ checkversions && test ! -f 3rdparty/check-version-failed || exit 1"
job_linux:
stage: build
before_script:
- apt-get update -qq && apt-get install -y -qq zip jq
- apt-get install -y -qq libsdl1.2-dev libpng-dev libsdl-ttf2.0-dev libsdl-image1.2-dev liblua5.3-dev
- apt-get install -y -qq libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev doxygen graphviz
script:
- "make -j3 || exit 1"
- "make ziprelease || exit 1"
- "API=sdl2 make -j3 && API=sdl2 make ziprelease || exit 1"
- "make docarchive || exit 1"
after_script:
- "echo $CI_JOB_ID > LINUX_JOB_ID"
artifacts:
paths:
- "*.zip"
- "grafx2*.tgz"
- "VERSION"
- "LINUX_JOB_ID"
pages:
stage: pages
script:
- "NOLUA=1 API=x11 make htmldoc"
- "mkdir -p public/htmldoc && cp doc/html/* public/htmldoc/"
- "cp share/grafx2/gfx2.png public/"
- "./.gitlab-page.sh"
- "cd public && tar xzf ../grafx2*doxygen.tgz"
artifacts:
paths:
- public
only:
- master
- gitlab-pages
job_win32:
stage: build
before_script:
- apt-get update -qq && apt-get install -y -qq zip dos2unix gpg jq
- apt-get install -y -qq gcc-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64-tools nsis
script:
- "WIN32CROSS=1 make 3rdparty -j2 || exit 1"
- "WIN32CROSS=1 make -j2 || exit 1"
- "WIN32CROSS=1 make ziprelease || exit 1"
- "WIN32CROSS=1 make win32installer || exit 1"
- "WIN32CROSS=1 API=win32 make -j2 || exit 1"
- "WIN32CROSS=1 API=win32 make ziprelease || exit 1"
- "WIN32CROSS=1 API=win32 make win32installer || exit 1"
- "WIN32CROSS=1 API=sdl2 make 3rdparty -j2 || exit 1"
- "WIN32CROSS=1 API=sdl2 make -j2 || exit 1"
- "WIN32CROSS=1 API=sdl2 make ziprelease || exit 1"
- "WIN32CROSS=1 API=sdl2 make win32installer || exit 1"
after_script:
- "echo $CI_JOB_ID > WIN32_JOB_ID"
artifacts:
paths:
- "*.zip"
- "install/grafx2*.exe"
- "WIN32_JOB_ID"
job_atari:
stage: build
before_script:
- apt-get update -qq && apt-get install -y -qq zip dos2unix lsb-release gpg jq
- "sh ./.install-cross-mint.sh"
script:
- "ATARICROSS=1 make 3rdparty -j2 || exit 1"
- "ATARICROSS=1 make -j2 || exit 1"
- "ATARICROSS=1 make ziprelease || exit 1"
after_script:
- "echo $CI_JOB_ID > ATARI_JOB_ID"
artifacts:
paths:
- "*.zip"
- "ATARI_JOB_ID"
job_gp2x:
stage: build
before_script:
- dpkg --add-architecture i386
- apt-get update -qq && apt-get install -y -qq zip dos2unix
- apt-get install -y -qq libc6:i386
- "sh ./.install-gp2x-toolchain.sh"
script:
- "NOLUA=1 GP2XCROSS=1 make -j2 grafx2 || exit 1"
- "NOLUA=1 GP2XCROSS=1 make ziprelease || exit 1"
after_script:
- "echo $CI_JOB_ID > GP2X_JOB_ID"
artifacts:
paths:
- "*.zip"
- "GP2X_JOB_ID"
job_switch:
stage: build
image: devkitpro/devkita64
before_script:
- apt-get update -qq && apt-get install -y -qq build-essential libpng-dev zip dos2unix
- "export PATH=$PATH:$DEVKITPRO/portlibs/switch/bin"
script:
- "SWITCH=1 make -j2 grafx2 || exit 1"
- "SWITCH=1 make ziprelease || exit 1"
after_script:
- "echo $CI_JOB_ID > SWITCH_JOB_ID"
artifacts:
paths:
- "*.zip"
- "SWITCH_JOB_ID"