X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=.gitlab-ci.yml;h=9f7917f594665c0bb92b466b2b5791b726677e24;hb=9ef3c8ce388011f4f57adc9a7eb0326376aec750;hp=9764648e112c3ddb183f787053b215d83bf05361;hpb=6a26d6d15a9a122681772c29a7f3b0c36ac9c62e;p=minetest.git diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9764648e1..9f7917f59 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,7 +9,6 @@ stages: - deploy variables: - IRRLICHT_TAG: "1.9.0mt1" MINETEST_GAME_REPO: "https://github.com/minetest/minetest_game.git" CONTAINER_IMAGE: registry.gitlab.com/$CI_PROJECT_PATH @@ -17,17 +16,12 @@ variables: stage: build before_script: - apt-get update - - apt-get -y install build-essential git cmake libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libleveldb-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev + - DEBIAN_FRONTEND=noninteractive apt-get -y install build-essential gettext git cmake libpng-dev libjpeg-dev libxi-dev libgl1-mesa-dev libsqlite3-dev libleveldb-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev libzstd-dev libluajit-5.1-dev script: - - git clone https://github.com/minetest/irrlicht -b $IRRLICHT_TAG - - cd irrlicht - - cmake . -DBUILD_SHARED_LIBS=OFF - - make -j2 - - cd .. - - mkdir cmakebuild - - cd cmakebuild - - cmake -DIRRLICHT_LIBRARY=$PWD/../irrlicht/lib/Linux/libIrrlicht.a -DIRRLICHT_INCLUDE_DIR=$PWD/../irrlicht/include -DCMAKE_INSTALL_PREFIX=../artifact/minetest/usr/ -DCMAKE_BUILD_TYPE=Release -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE -DBUILD_SERVER=TRUE .. - - make -j2 + - git clone https://github.com/minetest/irrlicht lib/irrlichtmt --depth 1 -b $(cat misc/irrlichtmt_tag.txt) + - mkdir build && cd build + - cmake -DCMAKE_INSTALL_PREFIX=../artifact/minetest/usr/ -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE .. + - make -j $(($(nproc) + 1)) - make install artifacts: when: on_success @@ -35,165 +29,29 @@ variables: paths: - artifact/* -.debpkg_template: - stage: package - before_script: - - apt-get update - - apt-get install -y git - - mkdir -p build/deb/minetest/DEBIAN/ - - cp misc/debpkg-control build/deb/minetest/DEBIAN/control - - cp -a artifact/minetest/usr build/deb/minetest/ - script: - - git clone $MINETEST_GAME_REPO build/deb/minetest/usr/share/minetest/games/minetest_game - - 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/JPEG_PLACEHOLDER/'$JPEG_PKG'/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: - expire_in: 90 day - paths: - - ./*.deb - -.debpkg_install: - stage: deploy - before_script: - - apt-get update - script: - - apt-get install -y ./*.deb - - minetest --version - ## -## Debian +## Ubuntu (prerequisite for AppImage build) ## -# Stretch - -build:debian-9: - extends: .build_template - image: debian:9 - -package:debian-9: - extends: .debpkg_template - image: debian:9 - needs: - - build:debian-9 - variables: - LEVELDB_PKG: libleveldb1v5 - JPEG_PKG: libjpeg62-turbo - -deploy:debian-9: - extends: .debpkg_install - image: debian:9 - needs: - - package:debian-9 - -# Buster - -build:debian-10: - extends: .build_template - image: debian:10 - -package:debian-10: - extends: .debpkg_template - image: debian:10 - needs: - - build:debian-10 - variables: - LEVELDB_PKG: libleveldb1d - JPEG_PKG: libjpeg62-turbo - -deploy:debian-10: - extends: .debpkg_install - image: debian:10 - needs: - - package:debian-10 - -## -## Ubuntu -## - -# Xenial - -build:ubuntu-16.04: +build:ubuntu-20.04: extends: .build_template - image: ubuntu:xenial - -package:ubuntu-16.04: - extends: .debpkg_template - image: ubuntu:xenial - needs: - - build:ubuntu-16.04 - variables: - LEVELDB_PKG: libleveldb1v5 - JPEG_PKG: libjpeg-turbo8 - -deploy:ubuntu-16.04: - extends: .debpkg_install - image: ubuntu:xenial - needs: - - package:ubuntu-16.04 - -# Bionic - -build:ubuntu-18.04: - extends: .build_template - image: ubuntu:bionic - -package:ubuntu-18.04: - extends: .debpkg_template - image: ubuntu:bionic - needs: - - build:ubuntu-18.04 - variables: - LEVELDB_PKG: libleveldb1v5 - JPEG_PKG: libjpeg-turbo8 - -deploy:ubuntu-18.04: - extends: .debpkg_install - image: ubuntu:bionic - needs: - - package:ubuntu-18.04 - -## -## Fedora -## - -# Fedora 28 <-> RHEL 8 -build:fedora-28: - extends: .build_template - image: fedora:28 - before_script: - - dnf -y install make git gcc gcc-c++ kernel-devel cmake libjpeg-devel libpng-devel libcurl-devel openal-soft-devel libvorbis-devel libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel spatialindex-devel + image: ubuntu:focal ## ## MinGW for Windows ## .generic_win_template: - image: ubuntu:bionic + image: ubuntu:focal before_script: - apt-get update - - 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 + - DEBIAN_FRONTEND=noninteractive apt-get install -y wget xz-utils unzip git cmake gettext + - wget -nv http://minetest.kitsunemimi.pw/mingw-w64-${WIN_ARCH}_11.2.0_ubuntu20.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/* - -.package_win_template: - extends: .generic_win_template - stage: package - script: - - unzip _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: @@ -203,28 +61,15 @@ build:win32: extends: .build_win_template script: - EXISTING_MINETEST_DIR=$PWD ./util/buildbot/buildwin32.sh build + - unzip -q build/build/*.zip variables: WIN_ARCH: "i686" -package:win32: - extends: .package_win_template - needs: - - build:win32 - variables: - WIN_ARCH: "i686" - - build:win64: extends: .build_win_template script: - EXISTING_MINETEST_DIR=$PWD ./util/buildbot/buildwin64.sh build - variables: - WIN_ARCH: "x86_64" - -package:win64: - extends: .package_win_template - needs: - - build:win64 + - unzip -q build/build/*.zip variables: WIN_ARCH: "x86_64" @@ -240,10 +85,7 @@ package:docker: 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 + - ./util/ci/docker.sh ## ## Gitlab Pages (Lua API documentation) @@ -253,9 +95,7 @@ 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 + - pip install -U -r doc/mkdocs/requirements.txt script: - cd doc/mkdocs && ./build.sh artifacts: @@ -272,22 +112,21 @@ package:appimage-client: stage: package image: appimagecrafters/appimage-builder needs: - - build:ubuntu-18.04 + - build:ubuntu-20.04 before_script: - - apt-get update -y - - apt-get install -y git wget + - apt-get update + - apt-get install -y git # Collect files - mkdir AppDir - cp -a artifact/minetest/usr/ AppDir/usr/ - - rm AppDir/usr/bin/minetestserver - cp -a clientmods AppDir/usr/share/minetest - script: - git clone $MINETEST_GAME_REPO AppDir/usr/share/minetest/games/minetest_game - - rm -rf AppDir/usr/share/minetest/games/minetest/.git - - export VERSION=$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA + - rm -rf AppDir/usr/share/minetest/games/minetest_game/.git # Remove PrefersNonDefaultGPU property due to validation errors - sed -i '/PrefersNonDefaultGPU/d' AppDir/usr/share/applications/net.minetest.minetest.desktop - - appimage-builder --skip-test + script: + - export VERSION=$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA + - appimage-builder --skip-test --recipe misc/AppImageBuilder.yml artifacts: expire_in: 90 day paths: