]> git.lizzy.rs Git - minetest.git/blob - .gitlab-ci.yml
Add keybind to swap items between hands
[minetest.git] / .gitlab-ci.yml
1 ---
2 # Github repository is cloned every day on Gitlab.com
3 # https://gitlab.com/minetest/minetest
4 # Pipelines URL: https://gitlab.com/minetest/minetest/pipelines
5
6 stages:
7   - build
8   - package
9   - deploy
10
11 variables:
12   MINETEST_GAME_REPO: "https://github.com/minetest/minetest_game.git"
13   CONTAINER_IMAGE: registry.gitlab.com/$CI_PROJECT_PATH
14
15 .build_template:
16   stage: build
17   before_script:
18    - apt-get update
19    - 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
20   script:
21     - git clone https://github.com/minetest/irrlicht lib/irrlichtmt --depth 1 -b $(cat misc/irrlichtmt_tag.txt)
22     - mkdir build && cd build
23     - cmake -DCMAKE_INSTALL_PREFIX=../artifact/minetest/usr/ -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE ..
24     - make -j $(($(nproc) + 1))
25     - make install
26   artifacts:
27     when: on_success
28     expire_in: 1h
29     paths:
30       - artifact/*
31
32 ##
33 ## Ubuntu (prerequisite for AppImage build)
34 ##
35
36 build:ubuntu-20.04:
37   extends: .build_template
38   image: ubuntu:focal
39
40 ##
41 ## MinGW for Windows
42 ##
43
44 .generic_win_template:
45   image: ubuntu:focal
46   before_script:
47     - apt-get update
48     - DEBIAN_FRONTEND=noninteractive apt-get install -y wget xz-utils unzip git cmake gettext
49     - wget -nv http://minetest.kitsunemimi.pw/mingw-w64-${WIN_ARCH}_11.2.0_ubuntu20.04.tar.xz -O mingw.tar.xz
50     - tar -xaf mingw.tar.xz -C /usr
51
52 .build_win_template:
53   extends: .generic_win_template
54   stage: build
55   artifacts:
56     expire_in: 90 day
57     paths:
58       - minetest-*-win*/*
59
60 build:win32:
61   extends: .build_win_template
62   script:
63     - EXISTING_MINETEST_DIR=$PWD ./util/buildbot/buildwin32.sh build
64     - unzip -q build/build/*.zip
65   variables:
66     WIN_ARCH: "i686"
67
68 build:win64:
69   extends: .build_win_template
70   script:
71     - EXISTING_MINETEST_DIR=$PWD ./util/buildbot/buildwin64.sh build
72     - unzip -q build/build/*.zip
73   variables:
74     WIN_ARCH: "x86_64"
75
76 ##
77 ## Docker
78 ##
79
80 package:docker:
81   stage: package
82   image: docker:stable
83   services:
84     - docker:dind
85   before_script:
86     - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.gitlab.com
87   script:
88     - ./util/ci/docker.sh
89
90 ##
91 ## Gitlab Pages (Lua API documentation)
92 ##
93
94 pages:
95   stage: deploy
96   image: python:3.8
97   before_script:
98     - pip install -U -r doc/mkdocs/requirements.txt
99   script:
100     - cd doc/mkdocs && ./build.sh
101   artifacts:
102     paths:
103       - public
104   only:
105     - master
106
107 ##
108 ## AppImage
109 ##
110
111 package:appimage-client:
112   stage: package
113   image: appimagecrafters/appimage-builder
114   needs:
115     - build:ubuntu-20.04
116   before_script:
117     - apt-get update
118     - apt-get install -y git
119     # Collect files
120     - mkdir AppDir
121     - cp -a artifact/minetest/usr/ AppDir/usr/
122     - cp -a clientmods AppDir/usr/share/minetest
123     - git clone $MINETEST_GAME_REPO AppDir/usr/share/minetest/games/minetest_game
124     - rm -rf AppDir/usr/share/minetest/games/minetest_game/.git
125     # Remove PrefersNonDefaultGPU property due to validation errors
126     - sed -i '/PrefersNonDefaultGPU/d' AppDir/usr/share/applications/net.minetest.minetest.desktop
127   script:
128     - export VERSION=$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA
129     - appimage-builder --skip-test --recipe misc/AppImageBuilder.yml
130   artifacts:
131     expire_in: 90 day
132     paths:
133       - ./*.AppImage