Cut back on Gitlab-ci & misc pipeline updates

This commit is contained in:
sfan5 2022-08-15 10:47:47 +02:00 committed by GitHub
parent bce1078ced
commit cae7ec1eb4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 38 additions and 211 deletions

@ -16,11 +16,11 @@ variables:
stage: build stage: build
before_script: before_script:
- apt-get update - 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: script:
- git clone https://github.com/minetest/irrlicht lib/irrlichtmt --depth 1 -b $(cat misc/irrlichtmt_tag.txt) - git clone https://github.com/minetest/irrlicht lib/irrlichtmt --depth 1 -b $(cat misc/irrlichtmt_tag.txt)
- mkdir build && cd build - 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 -j $(($(nproc) + 1))
- make install - make install
artifacts: artifacts:
@ -29,164 +29,14 @@ variables:
paths: paths:
- artifact/* - 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 ## 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:
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
##
# 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: build:ubuntu-20.04:
extends: .build_template extends: .build_template
image: ubuntu:focal 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 ## MinGW for Windows
## ##
@ -235,10 +85,7 @@ package:docker:
before_script: before_script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.gitlab.com - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.gitlab.com
script: script:
- docker build . -t ${CONTAINER_IMAGE}/server:$CI_COMMIT_SHA -t ${CONTAINER_IMAGE}/server:$CI_COMMIT_REF_NAME -t ${CONTAINER_IMAGE}/server:latest - ./util/ci/docker.sh
- 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) ## Gitlab Pages (Lua API documentation)
@ -248,9 +95,7 @@ pages:
stage: deploy stage: deploy
image: python:3.8 image: python:3.8
before_script: before_script:
- pip install git+https://github.com/Python-Markdown/markdown.git - pip install -U -r doc/mkdocs/requirements.txt
- pip install git+https://github.com/mkdocs/mkdocs.git
- pip install pygments
script: script:
- cd doc/mkdocs && ./build.sh - cd doc/mkdocs && ./build.sh
artifacts: artifacts:
@ -267,22 +112,21 @@ package:appimage-client:
stage: package stage: package
image: appimagecrafters/appimage-builder image: appimagecrafters/appimage-builder
needs: needs:
- build:ubuntu-18.04 - build:ubuntu-20.04
before_script: before_script:
- apt-get update -y - apt-get update
- apt-get install -y git - apt-get install -y git
# Collect files # Collect files
- mkdir AppDir - mkdir AppDir
- cp -a artifact/minetest/usr/ AppDir/usr/ - cp -a artifact/minetest/usr/ AppDir/usr/
- rm AppDir/usr/bin/minetestserver
- cp -a clientmods AppDir/usr/share/minetest - cp -a clientmods AppDir/usr/share/minetest
script:
- git clone $MINETEST_GAME_REPO AppDir/usr/share/minetest/games/minetest_game - git clone $MINETEST_GAME_REPO AppDir/usr/share/minetest/games/minetest_game
- rm -rf AppDir/usr/share/minetest/games/minetest/.git - rm -rf AppDir/usr/share/minetest/games/minetest_game/.git
- export VERSION=$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA
# Remove PrefersNonDefaultGPU property due to validation errors # Remove PrefersNonDefaultGPU property due to validation errors
- sed -i '/PrefersNonDefaultGPU/d' AppDir/usr/share/applications/net.minetest.minetest.desktop - 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: artifacts:
expire_in: 90 day expire_in: 90 day
paths: paths:

@ -0,0 +1,2 @@
mkdocs~=1.3.0
pygments~=2.12.0

@ -4,7 +4,7 @@ AppDir:
path: ./AppDir path: ./AppDir
app_info: app_info:
id: minetest id: net.minetest.minetest
name: Minetest name: Minetest
icon: minetest icon: minetest
version: !ENV ${VERSION} version: !ENV ${VERSION}
@ -17,36 +17,35 @@ AppDir:
apt: apt:
arch: amd64 arch: amd64
sources: sources:
- sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic main universe - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal main universe
key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' 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/ focal-updates main universe
- sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic-backports main universe - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal-backports main universe
- sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic-security main universe - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal-security main universe
include: include:
- libc6 - libc6
- libcrypt1
- libcurl3-gnutls - libcurl3-gnutls
- libfreetype6 - libfreetype6
- libgl1 - libgl1
- libjpeg-turbo8 - libjpeg-turbo8
- libjsoncpp1 - libjsoncpp1
- libleveldb1v5 - libleveldb1d
- libluajit-5.1-2
- libopenal1 - libopenal1
- libpng16-16 - libpng16-16
- libsqlite3-0 - libsqlite3-0
- libstdc++6 - libstdc++6
- libvorbisfile3 - libvorbisfile3
- libx11-6 - libx11-6
- libxxf86vm1 - libxi6
- zlib1g - zlib1g
files: files:
exclude: exclude:
- usr/share/man - usr/share/man
- usr/share/doc/*/README.* - usr/share/doc
- usr/share/doc/*/changelog.*
- usr/share/doc/*/NEWS.*
- usr/share/doc/*/TODO.*
AppImage: AppImage:
update-information: None update-information: None

@ -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 <loic.blot@unix-experience.fr>
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

15
util/ci/docker.sh Executable file

@ -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