X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=.gitlab-ci.yml;h=9f7917f594665c0bb92b466b2b5791b726677e24;hb=b8d4c31772b04d794b02727e803dd01a4c45c1e1;hp=cabce627f7b0f236ef728e8abf30c2194d080e04;hpb=beac4a2c984706b636e7b1e03406e05c87435903;p=minetest.git diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cabce627f..9f7917f59 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,7 +9,6 @@ stages: - deploy variables: - IRRLICHT_TAG: "1.9.0mt3" MINETEST_GAME_REPO: "https://github.com/minetest/minetest_game.git" CONTAINER_IMAGE: registry.gitlab.com/$CI_PROJECT_PATH @@ -17,13 +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 lib/irrlichtmt - - mkdir cmakebuild - - 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 + - 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 @@ -31,163 +29,13 @@ 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 - - sed -i 's/JSONCPP_PLACEHOLDER/'$JSONCPP_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 -qy - script: - - apt-get install -y ./*.deb - - minetest --version - -## -## Debian -## - -# Stretch - -build:debian-9: - extends: .build_template - image: debian:9 - -package:debian-9: - extends: .debpkg_template - image: debian:9 - needs: - - build:debian-9 - variables: - JSONCPP_PKG: libjsoncpp1 - 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: - JSONCPP_PKG: libjsoncpp1 - LEVELDB_PKG: libleveldb1d - JPEG_PKG: libjpeg62-turbo - -deploy:debian-10: - extends: .debpkg_install - image: debian:10 - needs: - - package:debian-10 - -# Bullseye - -build:debian-11: - extends: .build_template - image: debian:11 - -package:debian-11: - extends: .debpkg_template - image: debian:11 - needs: - - build:debian-11 - variables: - JSONCPP_PKG: libjsoncpp24 - LEVELDB_PKG: libleveldb1d - JPEG_PKG: libjpeg62-turbo - -deploy:debian-11: - extends: .debpkg_install - image: debian:11 - needs: - - package:debian-11 - ## -## Ubuntu +## Ubuntu (prerequisite for AppImage build) ## -# 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: - JSONCPP_PKG: libjsoncpp1 - 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: - JSONCPP_PKG: libjsoncpp1 - 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 @@ -198,25 +46,12 @@ build:fedora-28: before_script: - apt-get update - DEBIAN_FRONTEND=noninteractive 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 + - 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/build/*.zip - -.package_win_template: - extends: .generic_win_template - stage: package - script: - - unzip build/build/*.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: @@ -226,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" @@ -263,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) @@ -276,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: @@ -295,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 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: