forked from Mirrorlandia_minetest/minetest
27a485a472
* Move outside of travis to Github actions This will permit to have better integrated CI workflow than the previous travis one.
311 lines
8.5 KiB
YAML
311 lines
8.5 KiB
YAML
---
|
|
# Github repository is cloned every day on Gitlab.com
|
|
# https://gitlab.com/minetest/minetest
|
|
# Pipelines URL: https://gitlab.com/minetest/minetest/pipelines
|
|
|
|
stages:
|
|
- build
|
|
- package
|
|
- deploy
|
|
|
|
variables:
|
|
MINETEST_GAME_REPO: "https://github.com/minetest/minetest_game.git"
|
|
CONTAINER_IMAGE: registry.gitlab.com/$CI_PROJECT_PATH
|
|
|
|
.build_template:
|
|
stage: build
|
|
script:
|
|
- mkdir cmakebuild
|
|
- mkdir -p artifact/minetest/usr/
|
|
- cd cmakebuild
|
|
- cmake -DCMAKE_INSTALL_PREFIX=../artifact/minetest/usr/ -DCMAKE_BUILD_TYPE=Release -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE -DBUILD_SERVER=TRUE ..
|
|
- make -j2
|
|
- make install
|
|
artifacts:
|
|
when: on_success
|
|
expire_in: 2h
|
|
paths:
|
|
- artifact/*
|
|
|
|
.debpkg_template:
|
|
stage: package
|
|
before_script:
|
|
- apt-get update -y
|
|
- apt-get install -y git
|
|
- mkdir -p build/deb/minetest/DEBIAN/
|
|
- cp misc/debpkg-control build/deb/minetest/DEBIAN/control
|
|
- cp -Rp artifact/minetest/usr build/deb/minetest/
|
|
script:
|
|
- git clone $MINETEST_GAME_REPO build/deb/minetest/usr/share/minetest/games/minetest
|
|
- rm -Rf build/deb/minetest/usr/share/minetest/games/minetest/.git
|
|
- sed -i 's/DATEPLACEHOLDER/'$(date +%y.%m.%d)'/g' build/deb/minetest/DEBIAN/control
|
|
- sed -i 's/LEVELDB_PLACEHOLDER/'$LEVELDB_PKG'/g' build/deb/minetest/DEBIAN/control
|
|
- cd build/deb/ && dpkg-deb -b minetest/ && mv minetest.deb ../../
|
|
artifacts:
|
|
when: on_success
|
|
expire_in: 90 day
|
|
paths:
|
|
- ./*.deb
|
|
|
|
.debpkg_install:
|
|
stage: deploy
|
|
before_script:
|
|
- apt-get update -y
|
|
- apt-get install -y libc6 libcurl3-gnutls libfreetype6 libirrlicht1.8 $LEVELDB_PKG liblua5.1-0 libluajit-5.1-2 libopenal1 libstdc++6 libvorbisfile3 libx11-6 zlib1g
|
|
script:
|
|
- dpkg -i ./*.deb
|
|
|
|
##
|
|
## Debian
|
|
##
|
|
|
|
# Jessie
|
|
|
|
build:debian-8:
|
|
extends: .build_template
|
|
image: debian:8
|
|
before_script:
|
|
- echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main" > /etc/apt/sources.list.d/uptodate-toolchain.list
|
|
- apt-key adv --keyserver keyserver.ubuntu.com --recv BA9EF27F
|
|
- apt-get update -y
|
|
- apt-get -y install build-essential gcc-6 g++-6 libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
|
|
variables:
|
|
CC: gcc-6
|
|
CXX: g++-6
|
|
|
|
package:debian-8:
|
|
extends: .debpkg_template
|
|
image: debian:8
|
|
dependencies:
|
|
- build:debian-8
|
|
variables:
|
|
LEVELDB_PKG: libleveldb1
|
|
|
|
deploy:debian-8:
|
|
extends: .debpkg_install
|
|
image: debian:8
|
|
dependencies:
|
|
- package:debian-8
|
|
variables:
|
|
LEVELDB_PKG: libleveldb1
|
|
|
|
# Stretch
|
|
|
|
build:debian-9:
|
|
extends: .build_template
|
|
image: debian:9
|
|
before_script:
|
|
- apt-get update -y
|
|
- apt-get -y install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
|
|
|
|
package:debian-9:
|
|
extends: .debpkg_template
|
|
image: debian:9
|
|
dependencies:
|
|
- build:debian-9
|
|
variables:
|
|
LEVELDB_PKG: libleveldb1v5
|
|
|
|
deploy:debian-9:
|
|
extends: .debpkg_install
|
|
image: debian:9
|
|
dependencies:
|
|
- package:debian-9
|
|
variables:
|
|
LEVELDB_PKG: libleveldb1v5
|
|
|
|
# Stretch
|
|
|
|
build:debian-10:
|
|
extends: .build_template
|
|
image: debian:10
|
|
before_script:
|
|
- apt-get update -y
|
|
- apt-get -y install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
|
|
|
|
package:debian-10:
|
|
extends: .debpkg_template
|
|
image: debian:10
|
|
dependencies:
|
|
- build:debian-10
|
|
variables:
|
|
LEVELDB_PKG: libleveldb1d
|
|
|
|
deploy:debian-10:
|
|
extends: .debpkg_install
|
|
image: debian:10
|
|
dependencies:
|
|
- package:debian-10
|
|
variables:
|
|
LEVELDB_PKG: libleveldb1d
|
|
##
|
|
## Ubuntu
|
|
##
|
|
|
|
# Trusty
|
|
|
|
build:ubuntu-14.04:
|
|
extends: .build_template
|
|
image: ubuntu:trusty
|
|
before_script:
|
|
- echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main" > /etc/apt/sources.list.d/uptodate-toolchain.list
|
|
- apt-key adv --keyserver keyserver.ubuntu.com --recv BA9EF27F
|
|
- apt-get update -y
|
|
- apt-get -y install build-essential gcc-6 g++-6 libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
|
|
variables:
|
|
CC: gcc-6
|
|
CXX: g++-6
|
|
|
|
package:ubuntu-14.04:
|
|
extends: .debpkg_template
|
|
image: ubuntu:trusty
|
|
dependencies:
|
|
- build:ubuntu-14.04
|
|
variables:
|
|
LEVELDB_PKG: libleveldb1
|
|
|
|
deploy:ubuntu-14.04:
|
|
extends: .debpkg_install
|
|
image: ubuntu:trusty
|
|
dependencies:
|
|
- package:ubuntu-14.04
|
|
variables:
|
|
LEVELDB_PKG: libleveldb1
|
|
|
|
# Xenial
|
|
|
|
build:ubuntu-16.04:
|
|
extends: .build_template
|
|
image: ubuntu:xenial
|
|
before_script:
|
|
- apt-get update -y
|
|
- apt-get -y install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
|
|
|
|
package:ubuntu-16.04:
|
|
extends: .debpkg_template
|
|
image: ubuntu:xenial
|
|
dependencies:
|
|
- build:ubuntu-16.04
|
|
variables:
|
|
LEVELDB_PKG: libleveldb1v5
|
|
|
|
deploy:ubuntu-16.04:
|
|
extends: .debpkg_install
|
|
image: ubuntu:xenial
|
|
dependencies:
|
|
- package:ubuntu-16.04
|
|
variables:
|
|
LEVELDB_PKG: libleveldb1v5
|
|
|
|
##
|
|
## Fedora
|
|
##
|
|
|
|
# Do we need to support this old version ?
|
|
build:fedora-24:
|
|
extends: .build_template
|
|
image: fedora:24
|
|
before_script:
|
|
- dnf -y install make automake gcc gcc-c++ kernel-devel cmake libcurl* openal* libvorbis* libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel irrlicht-devel bzip2-libs gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel doxygen spatialindex-devel bzip2-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 -q 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:
|
|
when: on_success
|
|
expire_in: 2h
|
|
paths:
|
|
- build/*
|
|
|
|
.package_win_template:
|
|
extends: .generic_win_template
|
|
stage: package
|
|
script:
|
|
- cd build/minetest/_build
|
|
- make package
|
|
- cd ../../../
|
|
- mkdir minetest-win-${WIN_ARCH}
|
|
- unzip build/minetest/_build/minetest-*-win*.zip -d minetest-win-${WIN_ARCH}
|
|
- cp /usr/${WIN_ARCH}-w64-mingw32/bin/libgcc*.dll minetest-win-${WIN_ARCH}/minetest-*-win*/bin
|
|
- cp /usr/${WIN_ARCH}-w64-mingw32/bin/libstdc++*.dll minetest-win-${WIN_ARCH}/minetest-*-win*/bin
|
|
- cp /usr/${WIN_ARCH}-w64-mingw32/bin/libwinpthread*.dll minetest-win-${WIN_ARCH}/minetest-*-win*/bin
|
|
artifacts:
|
|
when: on_success
|
|
expire_in: 90 day
|
|
paths:
|
|
- minetest-win-*/*
|
|
|
|
build:win32:
|
|
extends: .build_win_template
|
|
script:
|
|
- ./util/buildbot/buildwin32.sh build
|
|
variables:
|
|
NO_PACKAGE: "1"
|
|
WIN_ARCH: "i686"
|
|
|
|
package:win32:
|
|
extends: .package_win_template
|
|
dependencies:
|
|
- build:win32
|
|
variables:
|
|
NO_PACKAGE: "1"
|
|
WIN_ARCH: "i686"
|
|
|
|
build:win64:
|
|
extends: .build_win_template
|
|
script:
|
|
- ./util/buildbot/buildwin64.sh build
|
|
variables:
|
|
NO_PACKAGE: "1"
|
|
WIN_ARCH: "x86_64"
|
|
|
|
package:win64:
|
|
extends: .package_win_template
|
|
dependencies:
|
|
- build:win64
|
|
variables:
|
|
NO_PACKAGE: "1"
|
|
WIN_ARCH: "x86_64"
|
|
|
|
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
|
|
|
|
pages:
|
|
stage: deploy
|
|
image: python:3.8
|
|
before_script:
|
|
- pip install git+https://github.com/Python-Markdown/markdown.git
|
|
- pip install git+https://github.com/mkdocs/mkdocs.git
|
|
- pip install pygments
|
|
script:
|
|
- cd doc/mkdocs && ./build.sh
|
|
artifacts:
|
|
paths:
|
|
- public
|
|
only:
|
|
- master
|
|
|