diff options
author | Nicolas Werner <nicolas.werner@gmx.net> | 2020-04-30 19:27:27 -0400 |
---|---|---|
committer | Nicolas Werner <nicolas.werner@hotmail.de> | 2020-11-27 01:32:41 +0100 |
commit | 0cc4ab7f17d43d625fa62813669a99735a45d156 (patch) | |
tree | 4cc5bacd8845f2e996bebfa01467567d8003afee /.gitlab-ci.yml | |
parent | Bump Qt version (diff) | |
download | nheko-0cc4ab7f17d43d625fa62813669a99735a45d156.tar.xz |
Add gitlab ci
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r-- | .gitlab-ci.yml | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..385bcd92 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,136 @@ +variables: + CCACHE_COMPILERCHECK: content + CCACHE_DIR: "${CI_PROJECT_DIR}/.ccache" + # prevent configure tzdata hanging apt install commands + DEBIAN_FRONTEND: noninteractive + +build-gcc7: + stage: build + image: ubuntu:16.04 + tags: [docker] + variables: + CXX: g++-7 + CC: gcc-7 + QT_PKG: 510 + TRAVIS_OS_NAME: linux + before_script: + - apt-get update + - apt-get install -y software-properties-common + - add-apt-repository ppa:ubuntu-toolchain-r/test -y + - add-apt-repository ppa:beineri/opt-qt-5.10.1-xenial -y + - apt-get update && apt-get -y install --no-install-recommends g++-7 build-essential ninja-build qt${QT_PKG}{base,declarative,tools,multimedia,script,quickcontrols2,svg} liblmdb-dev libgl1-mesa-dev libssl-dev git ccache + # need recommended deps for wget + - apt-get -y install wget + - wget https://github.com/Kitware/CMake/releases/download/v3.19.0/cmake-3.19.0-Linux-x86_64.sh && sh cmake-3.19.0-Linux-x86_64.sh --skip-license --prefix=/usr/local + - /usr/sbin/update-ccache-symlinks + - update-alternatives --install /usr/bin/gcc gcc "/usr/bin/${CC}" 10 + - update-alternatives --install /usr/bin/g++ g++ "/usr/bin/${CXX}" 10 + - update-alternatives --set gcc "/usr/bin/${CC}" + - update-alternatives --set g++ "/usr/bin/${CXX}" + script: + - export PATH="/usr/lib/ccache:${PATH}" + - export CMAKE_BUILD_PARALLEL_LEVEL=$(cat /proc/cpuinfo | awk '/^processor/{print $3}' | wc -l) + - export PATH="/usr/local/bin/:${PATH}" + - . "/opt/qt${QT_PKG}/bin/qt${QT_PKG}-env.sh" || true + - mkdir -p .deps/usr .hunter + - mkdir -p build + - cmake -GNinja -H. -Bbuild + -DCMAKE_INSTALL_PREFIX=.deps/usr + -DHUNTER_ROOT=".hunter" + -DHUNTER_ENABLED=ON -DBUILD_SHARED_LIBS=OFF + -DCMAKE_BUILD_TYPE=Release -DHUNTER_CONFIGURATION_TYPES=Release + -DCI_BUILD=ON + - cmake --build build + cache: + key: "$CI_JOB_NAME" + paths: + - .hunter/ + - .ccache + +build-macos: + stage: build + tags: [macos] + before_script: + - brew update + - brew bundle --file=./.ci/macos/Brewfile + script: + - export PATH=/usr/local/opt/qt/bin/:${PATH} + - export CMAKE_PREFIX_PATH=/usr/local/opt/qt5 + - cmake -GNinja -H. -Bbuild + -DCMAKE_BUILD_TYPE=RelWithDebInfo + -DCMAKE_INSTALL_PREFIX=.deps/usr + -DHUNTER_ROOT=".hunter" + -DHUNTER_ENABLED=ON -DBUILD_SHARED_LIBS=OFF + -DCMAKE_BUILD_TYPE=RelWithDebInfo -DHUNTER_CONFIGURATION_TYPES=RelWithDebInfo + -DUSE_BUNDLED_OPENSSL=ON + -DUSE_BUNDLED_BOOST=ON + -DCI_BUILD=ON + - cmake --build build + cache: + key: "${CI_JOB_NAME}" + paths: + - .hunter/ + - "${CCACHE_DIR}" + +build-flatpak-amd64: + stage: build + image: ubuntu:latest + #image: 'registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master' + tags: [docker] + before_script: + - apt-get update && apt-get -y install flatpak-builder git python curl + - flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + - flatpak --noninteractive install --user flathub org.kde.Platform//5.14 + - flatpak --noninteractive install --user flathub org.kde.Sdk//5.14 + script: + - export VERSION=$(git describe) + - mkdir -p build-flatpak + - cd build-flatpak + - flatpak-builder --user --disable-rofiles-fuse --ccache --repo=repo --default-branch=${CI_COMMIT_REF_NAME} --subject="Build of Nheko ${VERSION} `date`" app ../io.github.NhekoReborn.Nheko.json + - flatpak build-bundle repo nheko-amd64.flatpak io.github.NhekoReborn.Nheko ${CI_COMMIT_REF_NAME} + after_script: + - bash ./.ci/upload-nightly-gitlab.sh build-flatpak/nheko-amd64.flatpak + cache: + key: "$CI_JOB_NAME" + paths: + - build-flatpak/.flatpak-builder/ + artifacts: + expose_as: 'flatpak-amd64' + paths: ['build-flatpak/nheko-amd64.flatpak'] + name: flatpak-${CI_COMMIT_REF_NAME}-${VERSION}-amd64 + +build-flatpak-arm64: + stage: build + image: ubuntu:latest + #image: 'registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master' + tags: [docker-arm64] + before_script: + - apt-get update && apt-get -y install flatpak-builder git python curl + - flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + - flatpak --noninteractive install --user flathub org.kde.Platform//5.14 + - flatpak --noninteractive install --user flathub org.kde.Sdk//5.14 + script: + - export VERSION=$(git describe) + - mkdir -p build-flatpak + - cd build-flatpak + - flatpak-builder --user --disable-rofiles-fuse --ccache --repo=repo --default-branch=${CI_COMMIT_REF_NAME} --subject="Build of Nheko ${VERSION} `date` for arm64" app ../io.github.NhekoReborn.Nheko.json + - flatpak build-bundle repo nheko-arm64.flatpak io.github.NhekoReborn.Nheko ${CI_COMMIT_REF_NAME} + after_script: + - bash ./.ci/upload-nightly-gitlab.sh build-flatpak/nheko-arm64.flatpak + cache: + key: "$CI_JOB_NAME" + paths: + - build-flatpak/.flatpak-builder/ + artifacts: + expose_as: 'flatpak-arm64' + paths: ['build-flatpak/nheko-arm64.flatpak'] + name: flatpak-${CI_COMMIT_REF_NAME}-${VERSION}-arm64 + +linting: + stage: build + image: alpine:latest + tags: [docker] + before_script: + - apk update && apk add clang make git + script: + - make lint |