From cae7ec1eb4c5fb56a9f4666a16d5937ac1e4c527 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Mon, 15 Aug 2022 10:47:47 +0200 Subject: Cut back on Gitlab-ci & misc pipeline updates --- .gitlab-ci.yml | 178 +++----------------------------------------- AppImageBuilder.yml | 54 -------------- doc/mkdocs/requirements.txt | 2 + misc/AppImageBuilder.yml | 53 +++++++++++++ misc/debpkg-control | 33 -------- util/ci/docker.sh | 15 ++++ 6 files changed, 81 insertions(+), 254 deletions(-) delete mode 100644 AppImageBuilder.yml create mode 100644 doc/mkdocs/requirements.txt create mode 100644 misc/AppImageBuilder.yml delete mode 100644 misc/debpkg-control create mode 100755 util/ci/docker.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 28e35a971..9f7917f59 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -16,11 +16,11 @@ variables: stage: build before_script: - apt-get update - - DEBIAN_FRONTEND=noninteractive 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 libzstd-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 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 -DBUILD_SERVER=TRUE .. + - cmake -DCMAKE_INSTALL_PREFIX=../artifact/minetest/usr/ -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE .. - make -j $(($(nproc) + 1)) - make install artifacts: @@ -29,164 +29,14 @@ 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) ## -# 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 - -# Focal - build:ubuntu-20.04: extends: .build_template image: ubuntu:focal -package:ubuntu-20.04: - extends: .debpkg_template - image: ubuntu:focal - needs: - - build:ubuntu-20.04 - variables: - JSONCPP_PKG: libjsoncpp1 - LEVELDB_PKG: libleveldb1d - JPEG_PKG: libjpeg-turbo8 - -deploy:ubuntu-20.04: - extends: .debpkg_install - image: ubuntu:focal - needs: - - package:ubuntu-20.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 libzstd-devel - ## ## MinGW for Windows ## @@ -235,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) @@ -248,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: @@ -267,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: diff --git a/AppImageBuilder.yml b/AppImageBuilder.yml deleted file mode 100644 index 5788e246b..000000000 --- a/AppImageBuilder.yml +++ /dev/null @@ -1,54 +0,0 @@ -version: 1 - -AppDir: - path: ./AppDir - - app_info: - id: minetest - name: Minetest - icon: minetest - version: !ENV ${VERSION} - exec: usr/bin/minetest - exec_args: $@ - runtime: - env: - APPDIR_LIBRARY_PATH: $APPDIR/usr/lib/x86_64-linux-gnu - - apt: - arch: amd64 - sources: - - sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic main universe - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' - - sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic-updates main universe - - sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic-backports main universe - - sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic-security main universe - - include: - - libc6 - - libcurl3-gnutls - - libfreetype6 - - libgl1 - - libjpeg-turbo8 - - libjsoncpp1 - - libleveldb1v5 - - libopenal1 - - libpng16-16 - - libsqlite3-0 - - libstdc++6 - - libvorbisfile3 - - libx11-6 - - libxxf86vm1 - - zlib1g - - files: - exclude: - - usr/share/man - - usr/share/doc/*/README.* - - usr/share/doc/*/changelog.* - - usr/share/doc/*/NEWS.* - - usr/share/doc/*/TODO.* - -AppImage: - update-information: None - sign-key: None - arch: x86_64 diff --git a/doc/mkdocs/requirements.txt b/doc/mkdocs/requirements.txt new file mode 100644 index 000000000..e16265312 --- /dev/null +++ b/doc/mkdocs/requirements.txt @@ -0,0 +1,2 @@ +mkdocs~=1.3.0 +pygments~=2.12.0 diff --git a/misc/AppImageBuilder.yml b/misc/AppImageBuilder.yml new file mode 100644 index 000000000..4fecb7ff5 --- /dev/null +++ b/misc/AppImageBuilder.yml @@ -0,0 +1,53 @@ +version: 1 + +AppDir: + path: ./AppDir + + app_info: + id: net.minetest.minetest + name: Minetest + icon: minetest + version: !ENV ${VERSION} + exec: usr/bin/minetest + exec_args: $@ + runtime: + env: + APPDIR_LIBRARY_PATH: $APPDIR/usr/lib/x86_64-linux-gnu + + apt: + arch: amd64 + sources: + - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal main universe + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' + - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal-updates main universe + - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal-backports main universe + - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal-security main universe + + include: + - libc6 + - libcrypt1 + - libcurl3-gnutls + - libfreetype6 + - libgl1 + - libjpeg-turbo8 + - libjsoncpp1 + - libleveldb1d + - libluajit-5.1-2 + - libopenal1 + - libpng16-16 + - libsqlite3-0 + - libstdc++6 + - libvorbisfile3 + - libx11-6 + - libxi6 + - zlib1g + + files: + exclude: + - usr/share/man + - usr/share/doc + +AppImage: + update-information: None + sign-key: None + arch: x86_64 diff --git a/misc/debpkg-control b/misc/debpkg-control deleted file mode 100644 index e867f3eb9..000000000 --- a/misc/debpkg-control +++ /dev/null @@ -1,33 +0,0 @@ -Section: games -Priority: extra -Standards-Version: 3.6.2 -Package: minetest-staging -Version: 5.4.0-DATEPLACEHOLDER -Depends: libc6, libcurl3-gnutls, libfreetype6, libgl1, JPEG_PLACEHOLDER, JSONCPP_PLACEHOLDER, LEVELDB_PLACEHOLDER, libopenal1, libpng16-16, libsqlite3-0, libstdc++6, libvorbisfile3, libx11-6, libxxf86vm1, libzstd1, zlib1g -Maintainer: Loic Blot -Homepage: https://www.minetest.net/ -Vcs-Git: https://github.com/minetest/minetest.git -Vcs-Browser: https://github.com/minetest/minetest.git -Architecture: amd64 -Build-Depends: - cmake, - gettext, - libcurl4-gnutls-dev, - libfreetype6-dev, - libgl1-mesa-dev, - libjpeg-dev, - libjsoncpp-dev, - libleveldb-dev, - libogg-dev, - libopenal-dev, - libpng-dev, - libsqlite3-dev, - libvorbis-dev, - libx11-dev, - zlib1g-dev -Description: Multiplayer infinite-world block sandbox game - Minetest is a minecraft-inspired game written from scratch and licensed - under the LGPL (version 2.1 or later). It supports both survival and creative - modes along with multiplayer support, dynamic lighting, and an "infinite" map - generator. -Conflicts: minetestc55, minetest, minetest-server, minetest-data diff --git a/util/ci/docker.sh b/util/ci/docker.sh new file mode 100755 index 000000000..dd671a007 --- /dev/null +++ b/util/ci/docker.sh @@ -0,0 +1,15 @@ +#!/bin/sh -e +name=${CONTAINER_IMAGE}/server + +# build and publish Docker image (gitlab-ci) + +docker build . \ + -t ${name}:${CI_COMMIT_SHA} \ + -t ${name}:${CI_COMMIT_REF_NAME} \ + -t ${name}:latest + +docker push ${name}:${CI_COMMIT_SHA} +docker push ${name}:${CI_COMMIT_REF_NAME} +[ "$CI_COMMIT_BRANCH" = master ] && docker push ${name}:latest + +exit 0 -- cgit v1.2.3