+
+# Fedora 28 <-> RHEL 8
+build:fedora-28:
+ extends: .build_template
+ image: fedora:28
+ before_script:
+ - dnf -y install make automake gcc gcc-c++ kernel-devel cmake libcurl-devel openal-soft-devel libvorbis-devel libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel irrlicht-devel gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel spatialindex-devel
+
+##
+## MinGW for Windows
+##
+
+.generic_win_template:
+ image: ubuntu:bionic
+ before_script:
+ - apt-get update -y
+ - apt-get install -y wget xz-utils unzip git cmake gettext
+ - wget -nv http://minetest.kitsunemimi.pw/mingw-w64-${WIN_ARCH}_9.2.0_ubuntu18.04.tar.xz -O mingw.tar.xz
+ - tar -xaf mingw.tar.xz -C /usr
+
+.build_win_template:
+ extends: .generic_win_template
+ stage: build
+ artifacts:
+ expire_in: 1h
+ paths:
+ - build/minetest/_build/*
+
+.package_win_template:
+ extends: .generic_win_template
+ stage: package
+ script:
+ - unzip build/minetest/_build/minetest-*.zip
+ - cp -p /usr/${WIN_ARCH}-w64-mingw32/bin/libgcc*.dll minetest-*-win*/bin/
+ - cp -p /usr/${WIN_ARCH}-w64-mingw32/bin/libstdc++*.dll minetest-*-win*/bin/
+ - cp -p /usr/${WIN_ARCH}-w64-mingw32/bin/libwinpthread*.dll minetest-*-win*/bin/
+ artifacts:
+ expire_in: 90 day
+ paths:
+ - minetest-*-win*/*
+
+build:win32:
+ extends: .build_win_template
+ script:
+ - ./util/buildbot/buildwin32.sh build
+ variables:
+ WIN_ARCH: "i686"
+
+package:win32:
+ extends: .package_win_template
+ needs:
+ - build:win32
+ variables:
+ WIN_ARCH: "i686"
+
+
+build:win64:
+ extends: .build_win_template
+ script:
+ - ./util/buildbot/buildwin64.sh build
+ variables:
+ WIN_ARCH: "x86_64"
+
+package:win64:
+ extends: .package_win_template
+ needs:
+ - build:win64
+ variables:
+ WIN_ARCH: "x86_64"
+
+##
+## Docker
+##
+
+package:docker:
+ stage: package
+ image: docker:stable
+ services:
+ - docker:dind
+ before_script:
+ - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.gitlab.com
+ script:
+ - docker build . -t ${CONTAINER_IMAGE}/server:$CI_COMMIT_SHA -t ${CONTAINER_IMAGE}/server:$CI_COMMIT_REF_NAME -t ${CONTAINER_IMAGE}/server:latest
+ - docker push ${CONTAINER_IMAGE}/server:$CI_COMMIT_SHA
+ - docker push ${CONTAINER_IMAGE}/server:$CI_COMMIT_REF_NAME
+ - docker push ${CONTAINER_IMAGE}/server:latest
+
+##
+## Gitlab Pages (Lua API documentation)
+##
+
+pages:
+ stage: deploy
+ image: python:3.8