]> git.jsancho.org Git - lugaru.git/blobdiff - .gitlab-ci.yml
CI: Rework .gitlab-ci.yml to support a CentOS 7 build
[lugaru.git] / .gitlab-ci.yml
index 240f5c0a98438c75ec155a4c8ab13fa1e6073869..a65f3487737f9bf0294ca6d913a905eb6ad897e3 100644 (file)
@@ -1,17 +1,48 @@
 image: fedora:latest
 
 cache:
-  key: dnf
   paths:
   - /var/cache/dnf
+  - /var/cache/yum
+
+variables:
+  YUMDNF: dnf
+  EXTRA_REPO_INST_COMMAND: /bin/true
+  JPEG_PACKAGE: "pkgconfig(libjpeg)"
+  CMAKE_PACKAGE: "/usr/bin/cmake"
+  DEPENDENCY_PACKAGES: "pkgconfig(openal) pkgconfig(sdl2) pkgconfig(glu) pkgconfig(libpng) pkgconfig(zlib) pkgconfig(vorbis) pkgconfig(vorbisfile) pkgconfig(ogg)"
+  COMMON_PACKAGES: "$COMPILER_PACKAGES $CMAKE_PACKAGE make $DEPENDENCY_PACKAGES $JPEG_PACKAGE"
 
 before_script:
-  - dnf --quiet --assumeyes install /usr/bin/cmake "pkgconfig(libjpeg)" "pkgconfig(openal)" "pkgconfig(sdl2)" "pkgconfig(glu)" "pkgconfig(libpng)" "pkgconfig(zlib)" "pkgconfig(vorbis)" "pkgconfig(vorbisfile)" "pkgconfig(ogg)" make
+  - $EXTRA_REPO_INST_COMMAND
+  - $YUMDNF --quiet --assumeyes install $COMMON_PACKAGES
+
+build_oldgcc:
+  image: centos:7
+  variables:
+    YUMDNF: yum
+    EXTRA_REPO_INST_COMMAND: "yum --quiet --assumeyes install epel-release"
+    JPEG_PACKAGE: "libjpeg-devel"
+    CMAKE_PACKAGE: "/usr/bin/cmake3"
+    COMPILER_PACKAGES: "gcc gcc-c++"
+  stage: build
+  script:
+    - export CC=gcc; export CXX=g++
+    - mkdir -p x86_64-linux-gnu-oldgcc oldgcc-build; cd x86_64-linux-gnu-oldgcc
+    - cmake3 .. -DCMAKE_INSTALL_PREFIX=/builds/osslugaru/lugaru/oldgcc-build
+    - make -j4; make install
+  artifacts:
+    expire_in: 14d
+    paths:
+      - ./oldgcc-build
+  tags:
+    - shared
 
 build_gcc:
   stage: build
+  variables:
+    COMPILER_PACKAGES: "gcc gcc-c++"
   script:
-    - dnf --quiet --assumeyes install gcc gcc-c++
     - export CC=gcc; export CXX=g++
     - mkdir -p x86_64-linux-gnu-gcc gcc-build; cd x86_64-linux-gnu-gcc
     - cmake .. -DCMAKE_INSTALL_PREFIX=/builds/osslugaru/lugaru/gcc-build
@@ -25,8 +56,9 @@ build_gcc:
 
 build_clang:
   stage: build
+  variables:
+    COMPILER_PACKAGES: "clang"
   script:
-    - dnf --quiet --assumeyes install clang
     - export CC=clang; export CXX=clang++
     - mkdir -p x86_64-linux-gnu-clang clang-build; cd x86_64-linux-gnu-clang
     - cmake .. -DCMAKE_INSTALL_PREFIX=/builds/osslugaru/lugaru/clang-build
@@ -40,8 +72,10 @@ build_clang:
 
 build_mingw32:
   stage: build
+  variables:
+    COMPILER_PACKAGES: "mingw32-gcc mingw32-gcc-c++ mingw32-binutils mingw32-headers"
+    DEPENDENCY_PACKAGES: "mingw32-libjpeg-turbo mingw32-libpng mingw32-SDL2 mingw32-zlib mingw32-libvorbis mingw32-libogg mingw32-openal-soft"
   script:
-    - dnf --quiet --assumeyes install mingw32-gcc mingw32-gcc-c++ mingw32-binutils mingw32-headers mingw32-libjpeg-turbo mingw32-libpng mingw32-SDL2 mingw32-zlib mingw32-libvorbis mingw32-libogg mingw32-openal-soft
     - export PKG_CONFIG_LIBDIR="/usr/i686-w64-mingw32/sys-root/mingw/lib/pkgconfig:/usr/i686-w64-mingw32/sys-root/mingw/share/pkgconfig"
     - export PATH=/usr/i686-w64-mingw32/bin:$PATH
     - mkdir -p i686-w64-mingw32 mingw32-build; cd i686-w64-mingw32
@@ -56,8 +90,10 @@ build_mingw32:
 
 build_mingw64:
   stage: build
+  variables:
+    COMPILER_PACKAGES: "mingw64-gcc mingw64-gcc-c++ mingw64-binutils mingw64-headers"
+    DEPENDENCY_PACKAGES: "mingw64-libjpeg-turbo mingw64-libpng mingw64-SDL2 mingw64-zlib mingw64-libvorbis mingw64-libogg mingw64-openal-soft"
   script:
-    - dnf --quiet --assumeyes install mingw64-gcc mingw64-gcc-c++ mingw64-binutils mingw64-headers mingw64-libjpeg-turbo mingw64-libpng mingw64-SDL2 mingw64-zlib mingw64-libvorbis mingw64-libogg mingw64-openal-soft
     - export PKG_CONFIG_LIBDIR="/usr/x86_64-w64-mingw32/sys-root/mingw/lib/pkgconfig:/usr/x86_64-w64-mingw32/sys-root/mingw/share/pkgconfig"
     - export PATH=/usr/x86_64-w64-mingw32/bin:$PATH
     - mkdir -p x86_64-w64-mingw32 mingw64-build; cd x86_64-w64-mingw32