# This file is a template, and might need editing before it works on your project. # To contribute improvements to CI/CD templates, please follow the Development guide at: # https://docs.gitlab.com/ee/development/cicd/templates.html # This specific template is located at: # https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml # This is a sample GitLab CI/CD configuration file that should run without any modifications. # It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts, # it uses echo commands to simulate the pipeline execution. # # A pipeline is composed of independent jobs that run scripts, grouped into stages. # Stages run in sequential order, but jobs within stages run in parallel. # # For more information, see: https://docs.gitlab.com/ee/ci/yaml/README.html#stages image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/alpine:latest stages: - build - test - deploy variables: GIT_SUBMODULE_STRATEGY: recursive .f34-ogl: image: git.fossgalaxy.com:8042/gamedev/containers/fedora:36-opengl before_script: - dnf install -y pkgconfig\(dri\) pkgconfig\(glu\) pkgconfig\(x11\) pkgconfig\(xcursor\) pkgconfig\(xi\) pkgconfig\(xinerama\) pkgconfig\(xrandr\) doxygen - dnf install -y glm-devel glfw-devel openal-soft-devel spdlog-devel freetype-devel yaml-cpp-devel assimp-devel bullet-devel gtest-devel gmock-devel ## # Build Targets check it builds on popular Linux Distributions ## build:fedora: extends: .f34-ogl stage: build script: - cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug - cmake --build build artifacts: paths: - build/fggl/ build:ubuntu: image: ubuntu:jammy stage: build before_script: - apt update && apt install -y build-essential cmake - apt install -y libglm-dev libglfw3-dev libopenal-dev libspdlog-dev libfreetype-dev libyaml-cpp-dev libassimp-dev libbullet-dev libbullet-extras-dev libgtest-dev libgmock-dev script: - cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug - cmake --build build # Based on Bruce Cowan's wordsearch package: flatpak: image: alpine:latest stage: deploy only: - develop variables: MANIFEST_PATH: "build-aux/com.fossgalaxy.fggl.demo.yml" RUNTIME_REPO: "https://flathub.org/repo/flathub.flatpakrepo" FLATPAK_MODULE: "fggl" BUNDLE: "fggl-demo.flatpak" APP_ID: "com.fossgalaxy.fggl.demo" script: - apk update && apk add flatpak-builder - flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo - flatpak install -y flathub org.freedesktop.Platform 21.08 - flatpak install -y flathub org.freedesktop.Sdk 21.08 - flatpak-builder _repo ${MANIFEST_PATH} - flatpak build-bundle _repo ${BUNDLE} --runtime-repo=${RUNTIME_REPO} ${APP_ID} artifacts: paths: - ${BUNDLE} - _build/meson-logs/meson-log.txt cache: paths: - .flatpak-builder/cache - .flatpak-builder/downloads # Deploy doxygen pages pages: extends: .f34-ogl stage: deploy only: - develop script: - cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug - cmake --build build --target docs - cp -r build/docs/html public artifacts: paths: - public