# .gitlab-ci.yml for testing EPICS Base ci-scripts # (see: https://github.com/epics-base/ci-scripts) # This is YAML - indentation levels are crucial # GitLab runner can use any Docker container, we're using this one # to be comparable with the other CI services image: ubuntu:bionic cache: key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" paths: - .cache/ variables: GIT_SUBMODULE_STRATEGY: "recursive" SETUP_PATH: ".ci-local:.ci" BASE_RECURSIVE: "NO" # Additional packages needed for # | EPICS |clang| Windows cross builds |RTEMS testing |sequencer APT: "libreadline6-dev libncurses5-dev perl clang g++-mingw-w64-i686 g++-mingw-w64-x86-64 qemu-system-x86 re2c" CMP: "gcc" BGFC: "default" # Template for build jobs (hidden) .build: stage: build before_script: - apt-get update -qq && apt-get install -y -qq build-essential git python curl p7zip-full - python .ci/cue.py prepare script: - python .ci/cue.py build - python .ci/cue.py test - python .ci/cue.py test-results # If you need to do more during install and build, # add a local directory to your module and do e.g. # - ./.ci-local/travis/install-extras.sh # Define build jobs # Well-known variables to use # SET source setup file # ADD_MODULES extra modules (for a specific job) # BCFG build configuration (static/debug/static-debug; # default: shared-optimized) # TEST set to NO to skip running the tests (default: YES) # VV set to make build scripts verbose (default: unset) # EXTRA content will be added to make command line # EXTRA1..5 more additional arguments for the make command # (one argument per variable) # Usually from setup files, but may be specified or overridden # on a job line # MODULES list of dependency modules # BASE branch or release tag name of the EPICS Base to use # branch or release tag for a specific module # ... see README for setup file syntax description # Different configurations of gcc and clang gcc_default: extends: .build variables: BASE: "7.0" gcc_static: extends: .build variables: BASE: "7.0" BCFG: "static" clang_default: extends: .build variables: BASE: "7.0" CMP: "clang" clang_static_c++11: extends: .build variables: BASE: "7.0" CMP: "clang" BCFG: "static" EXTRA: "CMD_CXXFLAGS=-std=c++11" # Cross-compilations to Windows using gcc/MinGW and WINE wine32_default: extends: .build variables: BASE: "3.15" BCFG: "static" WINE: "32" TEST: "NO" wine64_debug: extends: .build variables: BASE: "7.0" BCFG: "debug" WINE: "64" # Cross-builds to RTEMS 4.9 and 4.10 rtems4.9_default: extends: .build variables: RTEMS: "4.9" BASE: "3.15" rtems4.10_debug: extends: .build variables: RTEMS: "4.10" BASE: "7.0" BCFG: "debug"