0

More work on gitlab CI

* Switch to docker tags
* Use caching to pass build stuff between build and test/render jobs
* Move render job up into the test stage
This commit is contained in:
Andrew Chin
2017-01-02 13:18:16 -05:00
parent 6f237179e4
commit c5659f809e

View File

@@ -3,7 +3,7 @@ stages:
- test - test
- package - package
- verify - verify
- render - deploy
variables: variables:
EXMAPLE_REPO: "https://github.com/overviewer/Minecraft-Overviewer-Addons" EXMAPLE_REPO: "https://github.com/overviewer/Minecraft-Overviewer-Addons"
@@ -12,14 +12,23 @@ variables:
build:linux: build:linux:
image: code.em32.net:14567/overviewer/minecraft-overviewer:base image: code.em32.net:14567/overviewer/minecraft-overviewer:base
stage: build stage: build
dependencies: []
tags: tags:
- linux - docker
cache:
key: "$CI_BUILD_REF_NAME/$CI_PIPELINE_ID/linuxbuild"
paths:
- overviewer_core/c_overviewer.so
- overviewer_core/overviewer_version.py
- overviewer_core/src/primitives.h
- build/
script: script:
- python2 setup.py build - python2 setup.py build
- python2 overviewer.py --verbose --version - python2 overviewer.py --verbose --version
build:windows: build:windows:
stage: build stage: build
dependencies: []
tags: tags:
- windows - windows
script: script:
@@ -36,8 +45,9 @@ build:windows:
build:docs: build:docs:
image: code.em32.net:14567/overviewer/minecraft-overviewer:base image: code.em32.net:14567/overviewer/minecraft-overviewer:base
stage: build stage: build
dependencies: []
tags: tags:
- linux - docker
script: script:
- cd docs - cd docs
- make - make
@@ -50,33 +60,73 @@ build:docs:
test: test:
image: code.em32.net:14567/overviewer/minecraft-overviewer:base image: code.em32.net:14567/overviewer/minecraft-overviewer:base
stage: test stage: test
dependencies: []
tags: tags:
- linux - docker
dependencies: cache:
- build:linux key: "$CI_BUILD_REF_NAME/$CI_PIPELINE_ID/linuxbuild"
paths:
- overviewer_core/c_overviewer.so
- overviewer_core/overviewer_version.py
- overviewer_core/src/primitives.h
- build/
script: script:
- python2 setup.py build - python2 setup.py build
- python2 test/test_all.py - python2 test/test_all.py
render:
image: code.em32.net:14567/overviewer/minecraft-overviewer:base
stage: test
dependencies: []
tags:
- docker
only:
- branches
except:
- master
cache:
key: "$CI_BUILD_REF_NAME/$CI_PIPELINE_ID/linuxbuild"
paths:
- overviewer_core/c_overviewer.so
- overviewer_core/overviewer_version.py
- overviewer_core/src/primitives.h
- build/
script:
- python2 setup.py build
- 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=render/
- mkdir -p $RENDER_DIR
- python2 overviewer.py -p2 --rendermode=smooth_lighting maprepo/exmaple $RENDER_DIR
- zip -r render.zip $RENDER_DIR
artifacts:
expire_in: 2 days
paths:
- render.zip
# Builds a source package # Builds a source package
package:src: package:src:
image: code.em32.net:14567/overviewer/minecraft-overviewer:base image: code.em32.net:14567/overviewer/minecraft-overviewer:base
stage: package stage: package
dependencies: []
tags: tags:
- linux - docker
script: script:
- python2 setup.py sdist - python2 setup.py sdist
- ls -lh dist - ls -lh dist
artifacts: artifacts:
expire_in: 2 weeks
paths: paths:
- dist/*.tar.gz - dist/*.tar.gz
package:centos7rpm: package:centos7rpm:
image: code.em32.net:14567/overviewer/minecraft-overviewer:centos7 image: code.em32.net:14567/overviewer/minecraft-overviewer:centos7
stage: package stage: package
dependencies: []
tags: tags:
- linux - docker
script: script:
- export MCO_VERSION=`python2 setup.py --version` - export MCO_VERSION=`python2 setup.py --version`
- echo "Building Minecraft version ${MCO_VERSION}" - echo "Building Minecraft version ${MCO_VERSION}"
@@ -96,8 +146,9 @@ package:centos7rpm:
package:centos7-32rpm: package:centos7-32rpm:
image: code.em32.net:14567/overviewer/minecraft-overviewer:centos7 image: code.em32.net:14567/overviewer/minecraft-overviewer:centos7
stage: package stage: package
dependencies: []
tags: tags:
- linux - docker
only: only:
- master - master
- triggers - triggers
@@ -121,8 +172,9 @@ package:centos7-32rpm:
package:centos6rpm: package:centos6rpm:
image: code.em32.net:14567/overviewer/minecraft-overviewer:centos7 image: code.em32.net:14567/overviewer/minecraft-overviewer:centos7
stage: package stage: package
dependencies: []
tags: tags:
- linux - docker
only: only:
- master - master
- triggers - triggers
@@ -145,8 +197,9 @@ package:centos6rpm:
package:debian64: package:debian64:
image: code.em32.net:14567/overviewer/minecraft-overviewer:debian64 image: code.em32.net:14567/overviewer/minecraft-overviewer:debian64
stage: package stage: package
dependencies: []
tags: tags:
- linux - docker
script: script:
- export MCO_VERSION=`python2 setup.py --version` - export MCO_VERSION=`python2 setup.py --version`
- echo "Building Minecraft version ${MCO_VERSION}" - echo "Building Minecraft version ${MCO_VERSION}"
@@ -165,6 +218,7 @@ package:debian64:
package:win64: package:win64:
stage: package stage: package
dependencies: []
tags: tags:
- windows - windows
script: script:
@@ -179,13 +233,15 @@ package:win64:
- ci_env\Scripts\pyinstaller.exe overviewer.spec - ci_env\Scripts\pyinstaller.exe overviewer.spec
- for /f "delims=" %%a in ('ci_env\Scripts\python.exe setup.py --version') do @set OVR_VERSION=%%a - for /f "delims=" %%a in ('ci_env\Scripts\python.exe setup.py --version') do @set OVR_VERSION=%%a
- ci_env\Scripts\sphinx-build.exe docs dist\overviewer-%OVR_VERSION%\docs - ci_env\Scripts\sphinx-build.exe docs dist\overviewer-%OVR_VERSION%\docs
- rename dist dist-win64
artifacts: artifacts:
expire_in: 2 weeks expire_in: 2 weeks
paths: paths:
- dist - dist-win64/*
package:win32: package:win32:
stage: package stage: package
dependencies: []
tags: tags:
- windows - windows
script: script:
@@ -200,16 +256,17 @@ package:win32:
- ci_env\Scripts\pyinstaller.exe overviewer.spec - ci_env\Scripts\pyinstaller.exe overviewer.spec
- for /f "delims=" %%a in ('ci_env\Scripts\python.exe setup.py --version') do @set OVR_VERSION=%%a - for /f "delims=" %%a in ('ci_env\Scripts\python.exe setup.py --version') do @set OVR_VERSION=%%a
- ci_env\Scripts\sphinx-build.exe docs dist\overviewer-%OVR_VERSION%\docs - ci_env\Scripts\sphinx-build.exe docs dist\overviewer-%OVR_VERSION%\docs
- rename dist dist-win32
artifacts: artifacts:
expire_in: 2 weeks expire_in: 2 weeks
paths: paths:
- dist - dist-win32
verify:centos7: verify:centos7:
image: code.em32.net:14567/overviewer/minecraft-overviewer:centos7-verify image: code.em32.net:14567/overviewer/minecraft-overviewer:centos7-verify
stage: verify stage: verify
tags: tags:
- linux - docker
dependencies: dependencies:
- package:centos7rpm - package:centos7rpm
script: script:
@@ -228,7 +285,7 @@ verify:debian64:
image: code.em32.net:14567/overviewer/minecraft-overviewer:debian-verify image: code.em32.net:14567/overviewer/minecraft-overviewer:debian-verify
stage: verify stage: verify
tags: tags:
- linux - docker
dependencies: dependencies:
- package:debian64 - package:debian64
script: script:
@@ -241,48 +298,41 @@ verify:debian64:
- overviewer.py --check-terrain --verbose - overviewer.py --check-terrain --verbose
render:
image: code.em32.net:14567/overviewer/minecraft-overviewer:debian64
stage: render
variables:
GIT_STRATEGY: none
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
on_stop: remove_render
only:
- branches
except:
- master
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_SLUG/$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_SLUG/$CI_BUILD_ID"
remove_render: deploy:
image: code.em32.net:14567/overviewer/minecraft-overviewer:base stage: deploy
stage: render
variables:
GIT_STRATEGY: none
tags: tags:
- diax - diax
when: manual - deploy
variables:
GIT_STRATEGY: none
dependencies:
- render
script: script:
- echo "Removing all renders for the branch $CI_BUILD_REF_NAME :" - rm -rf render
- ls -l /renders/$CI_BUILD_REF_SLUG/ - unzip render.zip
- rm -rf /renders/$CI_BUILD_REF_SLUG/ - mkdir -p /renders/$CI_BUILD_REF_SLUG/$CI_BUILD_ID/
environment: - mv -T render /renders/$CI_BUILD_REF_SLUG/$CI_BUILD_ID
name: review/$CI_BUILD_REF_NAME
action: stop deploy:builds:
only: stage: deploy
- branches tags:
except: - diax
- master - deploy
variables:
GIT_STRATEGY: none
dependencies:
- build:docs
- package:src
- package:centos7rpm
- package:centos7-32rpm
- package:centos6rpm
- package:debian64
- package:win64
- package:win32
script:
- ls -ltr
- mkdir -p /builds/$CI_BUILD_REF_SLUG/$CI_BUILD_ID/
- mv *.deb /builds/$CI_BUILD_REF_SLUG/$CI_BUILD_ID/
- mv *.rpm /builds/$CI_BUILD_REF_SLUG/$CI_BUILD_ID/
- mv dist* /builds/$CI_BUILD_REF_SLUG/$CI_BUILD_ID/