Commit 05fd7e67 authored by Dr. Jorrit Fahlke's avatar Dr. Jorrit Fahlke
Browse files

Merge branch 'move-ci-to-pacxx-ci' into 'master'

[CI] Move setup to dedicated pacxx-ci project

See merge request !10
parents 1b0389d5 9fc2590f
Pipeline #38399 passed with stages
in 33 minutes and 28 seconds
---
include: /ci-main.yml
include: https://zivgitlab.uni-muenster.de/HPC2SE-Project/pacxx-ci/raw/master/ci-main.yml
variables:
ADOPT: llvm/tools/clang
---
# This file is meant to be included from one of pacxx's .gitlab-cy.yml files.
#
# The including file should set the variable ADOPT to whereever it's
# checked-out files should end up in pacxx's source tree, see the --adopt=
# parameter in base/getpacxx.
stages:
- source
- build-pacxx
- build-samples
- test
######################################################################
#
# PACXX Source: get the sources (also, verify ci is current)
#
check-ci-main.yml:
stage: source
image: alpine:latest
variables:
REFERENCE: https://zivgitlab.uni-muenster.de/HPC2SE-Project/pacxx-runtime/raw/master/ci-main.yml
script:
- apk add curl
- curl -f -o ci-main.yml.reference "$REFERENCE"
- if ! diff -u ci-main.yml.reference ci-main.yml; then
echo "Outdated ci setup, consider updating ci-main.yml from $REFERENCE";
exit 2;
fi
tags:
- hpc2seci
allow_failure: true
source-pacxx:
stage: source
image: registry.dune-project.org/joe/pacxx-docker:base-native.master
script:
- getpacxx ${ADOPT:+--adopt="$ADOPT"} --branch="$CI_COMMIT_REF_NAME"
--versionlog=repoversions
# Trim down to stay within ZIVGITLAB limits
- find llvm/ -name .git -prune -print0 | xargs -0 rm -rf
- mv repoversions llvm/
- cat llvm/repoversions
tags:
- hpc2seci
artifacts:
paths:
- llvm/
expire_in: 1 week
source-samples:
stage: source
image: registry.dune-project.org/joe/pacxx-docker:base-native.master
script:
- getpacxx ${ADOPT:+--adopt="$ADOPT"} --branch="$CI_COMMIT_REF_NAME"
--versionlog=repoversions --samples
- mv repoversions samples/repoversions
- cat samples/repoversions
tags:
- hpc2seci
artifacts:
paths:
- samples/
expire_in: 1 week
######################################################################
#
# Build-PACXX: build pacxx using the base image
#
.build-pacxx: &build-pacxx
stage: build-pacxx
variables:
GIT_STRATEGY: none
dependencies:
- source-pacxx
script:
- cat llvm/repoversions
- export PACXX_INSTALL=$(pwd)/install
- mkdir build
- ( cd build &&
cmake ../llvm -DBUILD_SHARED_LIBS=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_ENABLE_CXX1Y=ON
-DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE="-O3"
-DCMAKE_INSTALL_PREFIX="${PACXX_INSTALL}" )
- make -C build -j$(nproc) install
- cp llvm/repoversions install/
artifacts:
paths:
- install/
expire_in: 1 week
build-pacxx-native:
<<: *build-pacxx
image: registry.dune-project.org/joe/pacxx-docker:base-native.master
tags:
- hpc2seci
build-pacxx-cuda:
<<: *build-pacxx
image: registry.dune-project.org/joe/pacxx-docker:base-cuda.master
tags:
- hpc2seci-nvidia
######################################################################
#
# Build-Samples: build samples using the just built pacxx
#
.build-samples: &build-samples
stage: build-samples
variables:
GIT_STRATEGY: none
PACXX_FORCE_DEFAULT_RT: 1
before_script:
- cat install/repoversions
- cat samples/repoversions
- export PATH=$(pwd)/install/bin:$PATH
- mkdir bsamples
- cd bsamples
tags:
- hpc2seci
artifacts:
paths:
- bsamples/
expire_in: 1 week
build-samples-native-make-debug:
<<: *build-samples
image: registry.dune-project.org/joe/pacxx-docker:base-native.master
variables:
PACXX_DEFAULT_RT: 1 # native
dependencies:
- build-pacxx-native
- source-samples
script:
- cmake ../samples -DCMAKE_CXX_COMPILER=pacxx++ -DCMAKE_BUILD_TYPE=Debug
- make -j$(nproc)
tags:
- hpc2seci
build-samples-native-ninja-release:
<<: *build-samples
image: registry.dune-project.org/joe/pacxx-docker:base-native.master
variables:
PACXX_DEFAULT_RT: 1 # native
dependencies:
- build-pacxx-native
- source-samples
script:
- cmake ../samples -G Ninja -DCMAKE_CXX_COMPILER=pacxx++ -DCMAKE_BUILD_TYPE=Release
- ninja
build-samples-cuda-make-debug:
<<: *build-samples
image: registry.dune-project.org/joe/pacxx-docker:base-cuda.master
variables:
PACXX_DEFAULT_RT: 0 # Cuda
dependencies:
- build-pacxx-cuda
- source-samples
script:
- cmake ../samples -DCMAKE_CXX_COMPILER=pacxx++ -DCMAKE_BUILD_TYPE=Debug
- make -j$(nproc)
build-samples-cuda-make-release:
<<: *build-samples
image: registry.dune-project.org/joe/pacxx-docker:base-cuda.master
variables:
PACXX_DEFAULT_RT: 0 # Cuda
dependencies:
- build-pacxx-cuda
- source-samples
script:
- cmake ../samples -DCMAKE_CXX_COMPILER=pacxx++ -DCMAKE_BUILD_TYPE=Release
- make -j$(nproc)
######################################################################
#
# Test: test the just built pacxx
#
.test: &test
stage: test
variables:
GIT_STRATEGY: none
PACXX_FORCE_DEFAULT_RT: 1
before_script:
- cat install/repoversions
- cat samples/repoversions
- export PATH=$(pwd)/install/bin:$PATH
- cd bsamples
test-native-norv-debug:
<<: *test
image: registry.dune-project.org/joe/pacxx-docker:base-native.master
variables:
PACXX_DEFAULT_RT: 1 # native
PACXX_DISABLE_RV: 1 # disable region vectorizer
dependencies:
- build-pacxx-native
- source-samples
- build-samples-native-make-debug
script:
- ctest -j$(nproc) -LE '^norv-debug-(known-failure|slow)$' --output-on-failure
- ctest -j$(nproc) -L '^norv-debug-known-failure$' --output-on-failure || true
- ": The following tests were skipped because they are known to be slow"
- ctest -N -L '^norv-debug-slow$'
tags:
- hpc2seci
test-native-norv-release:
<<: *test
image: registry.dune-project.org/joe/pacxx-docker:base-native.master
variables:
PACXX_DEFAULT_RT: 1 # native
PACXX_DISABLE_RV: 1 # disable region vectorizer
dependencies:
- build-pacxx-native
- source-samples
- build-samples-native-ninja-release
script:
- ctest -j$(nproc) -LE '^norv-release-known-failure$' --output-on-failure
- ctest -j$(nproc) -L '^norv-release-known-failure$' --output-on-failure || true
tags:
- hpc2seci
test-native-rv-debug:
<<: *test
image: registry.dune-project.org/joe/pacxx-docker:base-native.master
variables:
PACXX_DEFAULT_RT: 1 # native
dependencies:
- build-pacxx-native
- source-samples
- build-samples-native-make-debug
script:
- ctest -j$(nproc) -LE '^rv-debug-(known-failure|slow)$' --output-on-failure
- ctest -j$(nproc) -L '^rv-debug-known-failure$' --output-on-failure || true
- ": The following tests were skipped because they are known to be slow"
- ctest -N -L '^rv-debug-slow$'
tags:
- hpc2seci
test-native-rv-release:
<<: *test
image: registry.dune-project.org/joe/pacxx-docker:base-native.master
variables:
PACXX_DEFAULT_RT: 1 # native
dependencies:
- build-pacxx-native
- source-samples
- build-samples-native-ninja-release
script:
- ctest -j$(nproc) -LE '^rv-release-known-failure$' --output-on-failure
- ctest -j$(nproc) -L '^rv-release-known-failure$' --output-on-failure || true
tags:
- hpc2seci
test-cuda-debug:
<<: *test
image: registry.dune-project.org/joe/pacxx-docker:base-cuda.master
variables:
PACXX_DEFAULT_RT: 0 # Cuda
dependencies:
- build-pacxx-cuda
- source-samples
- build-samples-cuda-make-debug
script:
- ctest -j$(nproc) -LE '^cuda-debug-(known-failure|slow)$' --output-on-failure
- ctest -j$(nproc) -L '^cuda-debug-known-failure$' --output-on-failure || true
- ": The following tests were skipped because they are known to be slow"
- ctest -N -L '^cuda-debug-slow$'
tags:
- hpc2seci-nvidia
test-cuda-release:
<<: *test
image: registry.dune-project.org/joe/pacxx-docker:base-cuda.master
variables:
PACXX_DEFAULT_RT: 0 # Cuda
dependencies:
- build-pacxx-cuda
- source-samples
- build-samples-cuda-make-release
script:
- ctest -j$(nproc) -LE '^cuda-release-known-failure$' --output-on-failure
- ctest -j$(nproc) -L '^cuda-release-known-failure$' --output-on-failure || true
tags:
- hpc2seci-nvidia
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment