diff --git a/.ci b/.ci index f5047a9e..12d76983 160000 --- a/.ci +++ b/.ci @@ -1 +1 @@ -Subproject commit f5047a9e1105574a4735e28467962ad04740d598 +Subproject commit 12d769835e1ee88e94b5b0b4bc0cf7068e678064 diff --git a/.ci-local/base3-14.set b/.ci-local/base3-14.set new file mode 100644 index 00000000..d77e8da1 --- /dev/null +++ b/.ci-local/base3-14.set @@ -0,0 +1,3 @@ +BASE=3.14 + +include modules diff --git a/.ci-local/base3-15.set b/.ci-local/base3-15.set new file mode 100644 index 00000000..68ed2ef2 --- /dev/null +++ b/.ci-local/base3-15.set @@ -0,0 +1,3 @@ +BASE=3.15 + +include modules diff --git a/.ci-local/base7-0.set b/.ci-local/base7-0.set new file mode 100644 index 00000000..c20fcda8 --- /dev/null +++ b/.ci-local/base7-0.set @@ -0,0 +1,3 @@ +BASE=7.0 + +include modules diff --git a/.ci-local/modules.set b/.ci-local/modules.set new file mode 100644 index 00000000..9479f5db --- /dev/null +++ b/.ci-local/modules.set @@ -0,0 +1,7 @@ +MODULES="sncseq ipac asyn autosave busy" + +SNCSEQ=R2-2-8 +IPAC=master +ASYN=R4-38 +AUTOSAVE=R5-9 +BUSY=R1-7-1 diff --git a/.ci-local/travis/post-prepare.py b/.ci-local/travis/post-prepare.py new file mode 100755 index 00000000..f242980c --- /dev/null +++ b/.ci-local/travis/post-prepare.py @@ -0,0 +1,20 @@ +#!/usr/bin/env python + +import os +import subprocess + +# Comment out SUPPORT from motor's RELEASE file +status = subprocess.run(['sed', '-i', '-e', "s|^\(SUPPORT=.*\)$|#\1|g", './configure/RELEASE']) +# +print("{}Updated motor/configure/RELEASE{}".format(ANSI_BLUE, ANSI_RESET)) +#!grep SUPPORT ./configure/RELEASE || : +os.system('cat ./configure/RELEASE') +print("{}End of updated motor/configure/RELEASE{}".format(ANSI_BLUE, ANSI_RESET)) + +# Comment out SUPPORT from motorOms's RELEASE file +status = subprocess.run(['sed', '-i', '-e', "s|^\(SUPPORT=.*\)$|#\1|g", './modules/motorOms/configure/RELEASE']) +# +print("{}Updated motor/modules/motorOms/configure/RELEASE{}".format(ANSI_BLUE, ANSI_RESET)) +#!grep SUPPORT ./modules/motorOms/configure/RELEASE || : +os.system('cat ./modules/motorOms/configure/RELEASE') +print("{}End of updated motor/modules/motorOms/configure/RELEASE{}".format(ANSI_BLUE, ANSI_RESET)) diff --git a/.ci-local/travis/post-prepare.sh b/.ci-local/travis/post-prepare.sh deleted file mode 100755 index 1a9ccec1..00000000 --- a/.ci-local/travis/post-prepare.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash -set -e - -# Set VV in .travis.yml to make scripts verbose -[ "$VV" ] && set -x - -CACHEDIR=${CACHEDIR:-${HOME}/.cache} - -# sanity check -pwd - -# source functions -. ./.ci/travis/utils.sh - -# Add SUPPORT to RELEASE.local in the cache directory -#!update_release_local SUPPORT ${CACHEDIR} -# Copy the RELEASE.local from the cache directory to motor's configure directory -#![ -e ./configure ] && cp -f ${CACHEDIR}/RELEASE.local ./configure/RELEASE.local - -#!echo -e "${ANSI_BLUE}Updated contents of RELEASE.local${ANSI_RESET}" -#!cat ${CACHEDIR}/RELEASE.local - -# Comment out SUPPORT from motor's RELEASE file -sed -i -e "s|^\(SUPPORT=.*\)$|#\1|g" ./configure/RELEASE -# -echo -e "${ANSI_BLUE}Updated motor/configure/RELEASE${ANSI_RESET}" -grep SUPPORT ./configure/RELEASE || : - -# Comment out SUPPORT from motorOms's RELEASE file -sed -i -e "s|^\(SUPPORT=.*\)$|#\1|g" ./modules/motorOms/configure/RELEASE -# -echo -e "${ANSI_BLUE}Updated motor/modules/motorOms/configure/RELEASE${ANSI_RESET}" -grep SUPPORT ./modules/motorOms/configure/RELEASE || : diff --git a/.travis.yml b/.travis.yml index b4ebc47f..034c812a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,13 +11,9 @@ cache: env: global: - - SETUP_PATH=.ci - - MODULES="sncseq ipac asyn autosave busy" - - SNCSEQ=R2-2-8 - - IPAC=master - - ASYN=R4-38 - - AUTOSAVE=R5-9 - - BUSY=R1-7-1 + - SETUP_PATH=.ci-local:.ci + # for the sequencer on Windows + - CHOCO=re2c addons: apt: @@ -35,19 +31,19 @@ addons: - qemu-system-x86 homebrew: packages: - # for all EPICS builds - - bash # for the sequencer - re2c update: true install: - - ./.ci/travis/prepare.sh + - python .ci/cue.py prepare # ugly hacks go here: - - ./.ci-local/travis/post-prepare.sh + - python .ci-local/travis/post-prepare.py script: - - ./.ci/travis/build.sh + - 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. @@ -72,58 +68,76 @@ script: jobs: include: -# Default gcc and clang, static build +# Older Base releases - - env: BASE=7.0 + - env: SET=base3-14 - - env: BASE=7.0 + - env: SET=base3-14 BCFG=static + + - env: SET=base3-15 + + - env: SET=base3-15 BCFG=static + +# Default gcc, static build + + - env: SET=base7-0 + + - env: SET=base7-0 BCFG=static + +# Default clang build + + - env: SET=base7-0 compiler: clang - - env: BASE=7.0 STATIC=YES + - env: SET=base7-0 EXTRA="CMD_CXXFLAGS=-std=c++11" + compiler: clang # Trusty: compiler versions very close to RHEL 7 - - env: BASE=7.0 + - env: SET=base7-0 dist: trusty + - env: SET=base7-0 BCFG=debug + dist: trusty + +# Other gcc versions (added as an extra package) + + - env: SET=base7-0 + compiler: gcc-6 + addons: { apt: { packages: ["g++-6"], sources: ["ubuntu-toolchain-r-test"] } } + + - env: SET=base7-0 + compiler: gcc-7 + addons: { apt: { packages: ["g++-7"], sources: ["ubuntu-toolchain-r-test"] } } + # Cross-compilations to Windows using MinGW and WINE - - env: BASE=7.0 WINE=32 TEST=NO STATIC=YES - compiler: mingw + - env: SET=base7-0 WINE=32 TEST=NO BCFG=static - - env: BASE=7.0 WINE=64 TEST=NO STATIC=NO - compiler: mingw + - env: SET=base7-0 WINE=64 TEST=NO + +# Windows builds + + - env: SET=base7-0 + os: windows + compiler: vs2017 + + - env: SET=base7-0 BCFG=static + os: windows + compiler: vs2017 + + - env: SET=base7-0 BCFG=debug + os: windows + compiler: vs2017 # MacOS build - - env: BASE=7.0 + - env: SET=base7-0 os: osx compiler: clang # Cross-compilation to RTEMS - - env: BASE=7.0 RTEMS=4.10 + - env: SET=base7-0 RTEMS=4.9 - - env: BASE=7.0 RTEMS=4.9 - -# Older Base releases - - - env: BASE=R3.15.7 - - - env: BASE=R3.15.7 STATIC=YES - -# 3.14.12.2 build fails on newer distributions and doesn't know tapfiles target - - - env: BASE=R3.14.12.8 - - - env: BASE=R3.14.12.8 STATIC=YES - -# Other gcc versions (added as an extra package) - - - env: BASE=7.0 - compiler: gcc-6 - addons: { apt: { packages: ["g++-6"], sources: ["ubuntu-toolchain-r-test"] } } - - - env: BASE=7.0 - compiler: gcc-7 - addons: { apt: { packages: ["g++-7"], sources: ["ubuntu-toolchain-r-test"] } } + - env: SET=base7-0 RTEMS=4.10