0

Enable gitlab CI

Even though the overviewer repo is hosted on github, this new CI stuff
is useful for mirrors of overviewer hosted on gitlab.

To support package builds for a few distributions, a set of dockerfiles
have been created.
This commit is contained in:
Andrew Chin
2016-12-09 13:19:37 -05:00
parent 6ea2758c31
commit b81661dc94
29 changed files with 466 additions and 0 deletions

184
.gitlab-ci.yml Normal file
View File

@@ -0,0 +1,184 @@
stages:
- build
- test
- package
- verify
- render
variables:
EXMAPLE_REPO: "https://github.com/overviewer/Minecraft-Overviewer-Addons"
MC_VERSION: "1.11"
build:
image: code.em32.net:14567/overviewer/minecraft-overviewer:base
stage: build
script:
- python2 setup.py build
- python2 overviewer.py --verbose --version
build:docs:
image: code.em32.net:14567/overviewer/minecraft-overviewer:base
stage: build
script:
- cd docs
- make
artifacts:
name: "overviewer-docs"
expire_in: 2 weeks
paths:
- docs/_build/html/
test:
image: code.em32.net:14567/overviewer/minecraft-overviewer:base
stage: test
dependencies:
- build
script:
- python2 setup.py build
- python2 test/test_all.py
# Builds a source package
package:src:
image: code.em32.net:14567/overviewer/minecraft-overviewer:base
stage: package
script:
- python2 setup.py sdist
- ls -lh dist
artifacts:
paths:
- dist/*.tar.gz
package:centos7rpm:
image: code.em32.net:14567/overviewer/minecraft-overviewer:centos7
stage: package
script:
- export MCO_VERSION=`python2 setup.py --version`
- echo "Building Minecraft version ${MCO_VERSION}"
- mkdir -p ${HOME}/rpmbuild/SOURCES
- tar --transform 's,^,Minecraft-Overviewer/,S' -czf ${HOME}/rpmbuild/SOURCES/Minecraft-Overviewer-${MCO_VERSION}.tar.gz *
- sed s/{VERSION}/$MCO_VERSION/g build-tools/dockerfiles/centos7/Minecraft-Overviewer.spec > Minecraft-Overviewer.spec
- pwd
- rpmbuild -bs --define 'dist .centos7' Minecraft-Overviewer.spec
- /usr/bin/mock -r centos-7-x86_64 ${HOME}/rpmbuild/SRPMS/Minecraft-Overviewer-${MCO_VERSION}-1.centos7.src.rpm
- cp /var/lib/mock/centos-7-x86_64/result/Minecraft-Overviewer*.x86_64.rpm .
- ls -l *.rpm
artifacts:
expire_in: 2 weeks
paths:
- Minecraft-Overviewer*.x86_64.rpm
package:centos7-32rpm:
image: code.em32.net:14567/overviewer/minecraft-overviewer:centos7
stage: package
only:
- master
- triggers
script:
- export MCO_VERSION=`python2 setup.py --version`
- echo "Building Minecraft version ${MCO_VERSION}"
- mkdir -p ${HOME}/rpmbuild/SOURCES
- tar --transform 's,^,Minecraft-Overviewer/,S' -czf ${HOME}/rpmbuild/SOURCES/Minecraft-Overviewer-${MCO_VERSION}.tar.gz *
- sed s/{VERSION}/$MCO_VERSION/g build-tools/dockerfiles/centos7/Minecraft-Overviewer.spec > Minecraft-Overviewer.spec
- pwd
- rpmbuild -bs --define 'dist .centos7' Minecraft-Overviewer.spec
- /usr/bin/mock -r centos-7-i386 ${HOME}/rpmbuild/SRPMS/Minecraft-Overviewer-${MCO_VERSION}-1.centos7.src.rpm
- cp /var/lib/mock/centos-7-i386/result/Minecraft-Overviewer*.i*86.rpm .
- ls -l *.rpm
artifacts:
expire_in: 2 weeks
paths:
- Minecraft-Overviewer*.i*86.rpm
# Note that even though we are building a centos6 rpm, we can still use the centos7 docker image
package:centos6rpm:
image: code.em32.net:14567/overviewer/minecraft-overviewer:centos7
stage: package
only:
- master
- triggers
script:
- export MCO_VERSION=`python2 setup.py --version`
- echo "Building Minecraft version ${MCO_VERSION}"
- mkdir -p ${HOME}/rpmbuild/SOURCES
- tar --transform 's,^,Minecraft-Overviewer/,S' -czf ${HOME}/rpmbuild/SOURCES/Minecraft-Overviewer-${MCO_VERSION}.tar.gz *
- sed s/{VERSION}/$MCO_VERSION/g build-tools/dockerfiles/centos6/Minecraft-Overviewer.spec > Minecraft-Overviewer.spec
- pwd
- rpmbuild -bs --define 'dist .centos6' Minecraft-Overviewer.spec
- /usr/bin/mock -r centos-6-x86_64 ${HOME}/rpmbuild/SRPMS/Minecraft-Overviewer-${MCO_VERSION}-1.centos6.src.rpm
- cp /var/lib/mock/centos-6-x86_64/result/Minecraft-Overviewer*.x86_64.rpm .
- ls -l *.rpm
artifacts:
expire_in: 2 weeks
paths:
- Minecraft-Overviewer*.x86_64.rpm
package:debian64:
image: code.em32.net:14567/overviewer/minecraft-overviewer:debian64
stage: package
script:
- export MCO_VERSION=`python2 setup.py --version`
- echo "Building Minecraft version ${MCO_VERSION}"
- python setup.py build
- cp -r build-tools/dockerfiles/debian64 debian
- sh debian/generate_changelog.sh > debian/changelog
- cat debian/changelog
- debuild -i -us -uc -b
- mv ../*.deb .
- ls -l *.deb
artifacts:
expire_in: 2 weeks
paths:
- minecraft-overviewer*.deb
verify:centos7:
image: code.em32.net:14567/overviewer/minecraft-overviewer:centos7-verify
stage: verify
dependencies:
- package:centos7rpm
script:
- ls -l *.rpm
- ls -l
- echo yum -y install ./Minecraft-Overviewer-0*.rpm
- yum -y install ./Minecraft-Overviewer-0*.rpm
- which overviewer.py
- overviewer.py --verbose --version
- wget -N https://s3.amazonaws.com/Minecraft.Download/versions/${MC_VERSION}/${MC_VERSION}.jar -P ~/.minecraft/versions/${MC_VERSION}/
- git clone --depth=1 ${EXMAPLE_REPO} maprepo
- overviewer.py --check-terrain --verbose
verify:debian64:
image: code.em32.net:14567/overviewer/minecraft-overviewer:debian-verify
stage: verify
dependencies:
- package:debian64
script:
- dpkg -i ./minecraft-overviewer*.deb || echo ""
- apt-get -y -f install
- which overviewer.py
- overviewer.py --verbose --version
- wget -N https://s3.amazonaws.com/Minecraft.Download/versions/${MC_VERSION}/${MC_VERSION}.jar -P ~/.minecraft/versions/${MC_VERSION}/
- git clone --depth=1 ${EXMAPLE_REPO} maprepo
- overviewer.py --check-terrain --verbose
render:
image: code.em32.net:14567/overviewer/minecraft-overviewer:debian64
stage: render
tags:
- diax
dependencies:
- package:debian64
environment:
name: review/$CI_BUILD_REF_NAME
url: http://static-backend.overviewer.org/renders/ci/$CI_BUILD_REF_NAME/$CI_BUILD_ID
script:
- dpkg -i ./minecraft-overviewer*.deb
- wget -N https://s3.amazonaws.com/Minecraft.Download/versions/${MC_VERSION}/${MC_VERSION}.jar -P ~/.minecraft/versions/${MC_VERSION}/
- git clone --depth=1 ${EXMAPLE_REPO} maprepo
- export RENDER_DIR=/renders/$CI_BUILD_REF_NAME/$CI_BUILD_ID
- mkdir -p $RENDER_DIR
- overviewer.py -p2 --rendermode=smooth_lighting maprepo/exmaple $RENDER_DIR
- "echo Map render now available at: http://static-backend.overviewer.org/renders/ci/$CI_BUILD_REF_NAME/$CI_BUILD_ID"

View File

@@ -0,0 +1,2 @@
FROM centos:7
RUN yum -y install git wget python2 @'Development Tools' python-pillow-devel numpy python-sphinx

View File

@@ -0,0 +1,9 @@
build:
docker build -t code.em32.net:14567/overviewer/minecraft-overviewer:base .
push:
docker push code.em32.net:14567/overviewer/minecraft-overviewer:base
run:
docker run --rm -it code.em32.net:14567/overviewer/minecraft-overviewer:base /bin/bash

View File

@@ -0,0 +1,3 @@
This image is a centos:7 image that contains all the necessary tools to build
and run Overviewer. It can serve as a base image for other images, or be used
directly.

View File

@@ -0,0 +1,39 @@
%define python_sitearch %{_libdir}/python2.6/site-packages
Summary: Generates large resolution images of a Minecraft map.
Name: Minecraft-Overviewer
Version: {VERSION}
Release: 1%{?dist}
Source0: %{name}-%{version}.tar.gz
License: GNU General Public License v3
Group: Development/Libraries
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
Vendor: Andrew Brown <brownan@gmail.com>
Url: http://overviewer.org/
Requires: python26, python26-imaging, python26-numpy
BuildRequires: python26-devel, python26-imaging-devel, python26-numpy, python-setuptools
%description
The Minecraft Overviewer is a command-line tool for rendering high-resolution
maps of Minecraft worlds. It generates a set of static html and image files and
uses the Google Maps API to display a nice interactive map.
%prep
%setup -n %{name}
%build
env CFLAGS="$RPM_OPT_FLAGS" %{__python}26 setup.py build
%install
%{__python}26 setup.py install -O1 --root=%{buildroot}
rm -rf %{buildroot}%{_defaultdocdir}/minecraft-overviewer
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root)
%{python_sitearch}/Minecraft_Overviewer-*-*.egg-info
%{python_sitearch}/overviewer_core
%{_bindir}/overviewer.py
%doc README.rst COPYING.txt sample_config.py

View File

@@ -0,0 +1,5 @@
FROM centos:6
RUN yum -y install epel-release && yum -y install git wget python2 @'Development Tools' python-imaging-devel numpy python-sphinx mock
RUN useradd --create-home --groups mock overviewer
USER overviewer

View File

@@ -0,0 +1,11 @@
tag=centos6
build:
docker build -t code.em32.net:14567/overviewer/minecraft-overviewer:$(tag) .
push:
docker push code.em32.net:14567/overviewer/minecraft-overviewer:$(tag)
run:
docker run --rm --privileged -it code.em32.net:14567/overviewer/minecraft-overviewer:$(tag) /bin/bash

View File

@@ -0,0 +1,37 @@
Summary: Generates large resolution images of a Minecraft map.
Name: Minecraft-Overviewer
Version: {VERSION}
Release: 1%{?dist}
Source0: %{name}-%{version}.tar.gz
License: GNU General Public License v3
Group: Development/Libraries
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
Vendor: Andrew Brown <brownan@gmail.com>
Url: http://overviewer.org/
Requires: python-imaging, numpy
BuildRequires: python-devel, python-imaging-devel, numpy
%description
The Minecraft Overviewer is a command-line tool for rendering high-resolution
maps of Minecraft worlds. It generates a set of static html and image files and
uses the Google Maps API to display a nice interactive map.
%prep
%setup -n %{name}
%build
env CFLAGS="$RPM_OPT_FLAGS" %{__python} setup.py build
%install
%{__python} setup.py install -O1 --root=%{buildroot}
rm -rf %{buildroot}%{_defaultdocdir}/minecraft-overviewer
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root)
%{python_sitearch}/Minecraft_Overviewer-*-*.egg-info
%{python_sitearch}/overviewer_core
%{_bindir}/overviewer.py
%doc README.rst COPYING.txt sample_config.py

View File

@@ -0,0 +1,5 @@
FROM code.em32.net:14567/overviewer/minecraft-overviewer:base
RUN yum -y install mock
RUN useradd --create-home --groups mock overviewer
USER overviewer

View File

@@ -0,0 +1,11 @@
tag=centos7
build:
docker build -t code.em32.net:14567/overviewer/minecraft-overviewer:$(tag) .
push:
docker push code.em32.net:14567/overviewer/minecraft-overviewer:$(tag)
run:
docker run --rm --privileged -it code.em32.net:14567/overviewer/minecraft-overviewer:$(tag) /bin/bash

View File

@@ -0,0 +1,37 @@
Summary: Generates large resolution images of a Minecraft map.
Name: Minecraft-Overviewer
Version: {VERSION}
Release: 1%{?dist}
Source0: %{name}-%{version}.tar.gz
License: GNU General Public License v3
Group: Development/Libraries
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
Vendor: Andrew Brown <brownan@gmail.com>
Url: http://overviewer.org/
Requires: python-imaging, numpy
BuildRequires: python-devel, python-imaging-devel, numpy
%description
The Minecraft Overviewer is a command-line tool for rendering high-resolution
maps of Minecraft worlds. It generates a set of static html and image files and
uses the Google Maps API to display a nice interactive map.
%prep
%setup -n %{name}
%build
env CFLAGS="$RPM_OPT_FLAGS" %{__python} setup.py build
%install
%{__python} setup.py install -O1 --root=%{buildroot}
rm -rf %{buildroot}%{_defaultdocdir}/minecraft-overviewer
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root)
%{python_sitearch}/Minecraft_Overviewer-*-*.egg-info
%{python_sitearch}/overviewer_core
%{_bindir}/overviewer.py
%doc README.rst COPYING.txt sample_config.py

View File

@@ -0,0 +1,2 @@
FROM debian:jessie
RUN apt-get -y update && apt-get -y install git build-essential python-numpy python-pil python-dev python-imaging python-all-dev devscripts wget

View File

@@ -0,0 +1,11 @@
tag=debian64
build:
docker build -t code.em32.net:14567/overviewer/minecraft-overviewer:$(tag) .
push:
docker push code.em32.net:14567/overviewer/minecraft-overviewer:$(tag)
run:
docker run --rm --privileged -it code.em32.net:14567/overviewer/minecraft-overviewer:$(tag) /bin/bash

View File

@@ -0,0 +1,5 @@
minecraft-overviewer ({VERSION}-0~overviewer1) unstable; urgency=low
* Automatically generated from Git: {DESC}
-- Aaron Griffith <agrif@overviewer.org> {DATE}

View File

@@ -0,0 +1 @@
7

View File

@@ -0,0 +1,13 @@
Source: minecraft-overviewer
Maintainer: Aaron Griffith <agrif@overviewer.org>
Section: python
Priority: optional
Build-Depends: python-all-dev (>= 2.6), debhelper (>= 7.4.3), python-imaging, python-numpy
Standards-Version: 3.9.1
Package: minecraft-overviewer
Architecture: any
Homepage: http://overviewer.org/
XB-Python-Version: ${python:Versions}
Depends: ${misc:Depends}, python2.7 | python2.6, python (>= 2.6), python (<< 2.8), python-imaging, python-numpy, ${shlibs:Depends}
Description: Generates large resolution images of a Minecraft map.

View File

@@ -0,0 +1,35 @@
This package was debianized by Aaron Griffith <agrif@overviewer.org>
on Sat, 14 May 2011 14:21:24 -0400.
It was downloaded from http://github.com/overviewer/Minecraft-Overviewer
Upstream Author:
Andrew Brown <brownan@overviewer.org>
Files: *
Copyright:
2010-2011, Andrew Brown
License: GPL
Files: debian/*
Copyright:
2011, Aaron Griffith
License: GPL
License: GPL
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this package; if not, see .
On Debian systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL-3'

View File

@@ -0,0 +1,8 @@
NOW=`date '+%a, %d %b %Y %H:%M:%S +0000'`
VER=`python2 setup.py --version`
DESC=`git describe --tags`
echo "minecraft-overviewer (${VER}-0~overviewer1) unstable; urgency=low"
echo ""
echo " * Automatically generated from Git: ${DESC}"
echo ""
echo " -- Aaron Griffith <agrif@overviewer.org> ${NOW}"

View File

@@ -0,0 +1,9 @@
#!/usr/bin/make -f
# This file was automatically generated by stdeb 0.6.0+git at
# Tue, 18 Sep 2012 22:13:53 -0400
%:
dh $@ --with python2 --buildsystem=python_distutils

View File

@@ -0,0 +1 @@
3.0 (quilt)

View File

@@ -0,0 +1 @@
FROM code.em32.net:14567/overviewer/minecraft-overviewer

View File

@@ -0,0 +1,5 @@
all:
docker build -t overviewer:src .
run:
docker run --rm -it overviewer:src /bin/bash

View File

@@ -0,0 +1,2 @@
This is an image that builds a image that can be used to generate an overviewer
source package

View File

@@ -0,0 +1,3 @@
FROM centos:7
RUN yum -y install git wget which

View File

@@ -0,0 +1,11 @@
tag=centos7-verify
build:
docker build -t code.em32.net:14567/overviewer/minecraft-overviewer:$(tag) .
push:
docker push code.em32.net:14567/overviewer/minecraft-overviewer:$(tag)
run:
docker run --rm -it code.em32.net:14567/overviewer/minecraft-overviewer:$(tag) /bin/bash

View File

@@ -0,0 +1 @@
This dockerfile is a very basic image that we use to verify that centos RPMs can be installed

View File

@@ -0,0 +1,3 @@
FROM debian:jessie
RUN apt-get -y update && apt-get -y install wget git

View File

@@ -0,0 +1,11 @@
tag=debian-verify
build:
docker build -t code.em32.net:14567/overviewer/minecraft-overviewer:$(tag) .
push:
docker push code.em32.net:14567/overviewer/minecraft-overviewer:$(tag)
run:
docker run --rm -it code.em32.net:14567/overviewer/minecraft-overviewer:$(tag) /bin/bash

View File

@@ -0,0 +1 @@
This dockerfile is a very basic image that we use to verify that debian .deb files can be installed