forked from epics_driver_modules/motorBase
Merge pull request #152 from BenBradnick/feature/ci-scripts
Add epics-modules ci-scripts for Travis CI
This commit is contained in:
Submodule
+1
Submodule .ci added at 17ce951e99
@@ -1,177 +0,0 @@
|
||||
#!/bin/sh
|
||||
set -e -x
|
||||
|
||||
SUPPORT=$HOME/.cache/support
|
||||
|
||||
install -d $SUPPORT
|
||||
|
||||
# Conditionally build IPAC
|
||||
if [ -n "$IPAC" ]; then
|
||||
IPAC_PATH=$SUPPORT/ipac
|
||||
else
|
||||
IPAC_PATH=
|
||||
fi
|
||||
|
||||
RELEASE_PATH=$TRAVIS_BUILD_DIR/configure/RELEASE
|
||||
EPICS_BASE=$SUPPORT/epics-base
|
||||
|
||||
cat << EOF > $RELEASE_PATH
|
||||
IPAC=$IPAC_PATH
|
||||
SNCSEQ=$SUPPORT/seq
|
||||
ASYN=$SUPPORT/asyn
|
||||
MODBUS=$SUPPORT/modbus
|
||||
EPICS_BASE=$SUPPORT/epics-base
|
||||
EOF
|
||||
|
||||
# use default selection for MSI
|
||||
sed -i -e '/MSI/d' configure/CONFIG_SITE
|
||||
|
||||
if [ ! -e "$EPICS_BASE/built" ]
|
||||
then
|
||||
|
||||
git clone --depth 10 --branch $BASE https://github.com/epics-base/epics-base.git $EPICS_BASE
|
||||
|
||||
EPICS_HOST_ARCH=`sh $EPICS_BASE/startup/EpicsHostArch`
|
||||
|
||||
case "$STATIC" in
|
||||
static)
|
||||
cat << EOF >> "$EPICS_BASE/configure/CONFIG_SITE"
|
||||
SHARED_LIBRARIES=NO
|
||||
STATIC_BUILD=YES
|
||||
EOF
|
||||
;;
|
||||
*) ;;
|
||||
esac
|
||||
|
||||
case "$CMPLR" in
|
||||
clang)
|
||||
echo "Host compiler is clang"
|
||||
cat << EOF >> $EPICS_BASE/configure/os/CONFIG_SITE.Common.$EPICS_HOST_ARCH
|
||||
GNU = NO
|
||||
CMPLR_CLASS = clang
|
||||
CC = clang
|
||||
CCC = clang++
|
||||
EOF
|
||||
;;
|
||||
*) echo "Host compiler is default";;
|
||||
esac
|
||||
|
||||
# requires wine and g++-mingw-w64-i686
|
||||
if [ "$WINE" = "32" ]
|
||||
then
|
||||
echo "Cross mingw32"
|
||||
sed -i -e '/CMPLR_PREFIX/d' $EPICS_BASE/configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw
|
||||
cat << EOF >> $EPICS_BASE/configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw
|
||||
CMPLR_PREFIX=i686-w64-mingw32-
|
||||
EOF
|
||||
cat << EOF >> $EPICS_BASE/configure/CONFIG_SITE
|
||||
CROSS_COMPILER_TARGET_ARCHS+=win32-x86-mingw
|
||||
EOF
|
||||
fi
|
||||
|
||||
# set RTEMS to eg. "4.9" or "4.10"
|
||||
if [ -n "$RTEMS" ]
|
||||
then
|
||||
echo "Cross RTEMS${RTEMS} for pc386"
|
||||
install -d /home/travis/.cache
|
||||
curl -L "https://github.com/mdavidsaver/rsb/releases/download/travis-20160306-2/rtems${RTEMS}-i386-trusty-20190306-2.tar.gz" \
|
||||
| tar -C /home/travis/.cache -xj
|
||||
|
||||
sed -i -e '/^RTEMS_VERSION/d' -e '/^RTEMS_BASE/d' $EPICS_BASE/configure/os/CONFIG_SITE.Common.RTEMS
|
||||
cat << EOF >> $EPICS_BASE/configure/os/CONFIG_SITE.Common.RTEMS
|
||||
RTEMS_VERSION=$RTEMS
|
||||
RTEMS_BASE=/home/travis/.cache/rtems${RTEMS}-i386
|
||||
EOF
|
||||
cat << EOF >> $EPICS_BASE/configure/CONFIG_SITE
|
||||
CROSS_COMPILER_TARGET_ARCHS+=RTEMS-pc386
|
||||
EOF
|
||||
|
||||
fi
|
||||
|
||||
make -C "$EPICS_BASE" -j2
|
||||
# get MSI for 3.14
|
||||
case "$BASE" in
|
||||
3.14*)
|
||||
echo "Build MSI"
|
||||
install -d "$HOME/msi/extensions/src"
|
||||
curl https://epics.anl.gov/download/extensions/extensionsTop_20120904.tar.gz | tar -C "$HOME/msi" -xvz
|
||||
curl https://epics.anl.gov/download/extensions/msi1-7.tar.gz | tar -C "$HOME/msi/extensions/src" -xvz
|
||||
mv "$HOME/msi/extensions/src/msi1-7" "$HOME/msi/extensions/src/msi"
|
||||
|
||||
cat << EOF > "$HOME/msi/extensions/configure/RELEASE"
|
||||
EPICS_BASE=$EPICS_BASE
|
||||
EPICS_EXTENSIONS=\$(TOP)
|
||||
EOF
|
||||
make -C "$HOME/msi/extensions"
|
||||
cp "$HOME/msi/extensions/bin/$EPICS_HOST_ARCH/msi" "$EPICS_BASE/bin/$EPICS_HOST_ARCH/"
|
||||
echo 'MSI:=$(EPICS_BASE)/bin/$(EPICS_HOST_ARCH)/msi' >> "$EPICS_BASE/configure/CONFIG_SITE"
|
||||
|
||||
cat <<EOF >> configure/CONFIG_SITE
|
||||
MSI = \$(EPICS_BASE)/bin/\$(EPICS_HOST_ARCH)/msi
|
||||
EOF
|
||||
|
||||
;;
|
||||
*) echo "Use MSI from Base"
|
||||
;;
|
||||
esac
|
||||
|
||||
touch $EPICS_BASE/built
|
||||
else
|
||||
echo "Using cached epics-base!"
|
||||
fi
|
||||
|
||||
# IPAC
|
||||
if [ -n "$IPAC" ]; then
|
||||
if [ ! -e "$SUPPORT/ipac/built" ]; then
|
||||
echo "Build ipac"
|
||||
install -d $SUPPORT/ipac
|
||||
git clone --depth 10 --branch $IPAC https://github.com/epics-modules/ipac.git $SUPPORT/ipac
|
||||
cat << EOF > $SUPPORT/ipac/configure/RELEASE
|
||||
EPICS_BASE=$SUPPORT/epics-base
|
||||
EOF
|
||||
make -C $SUPPORT/ipac
|
||||
touch $SUPPORT/ipac/built
|
||||
else
|
||||
echo "Using cached ipac"
|
||||
fi
|
||||
else
|
||||
echo "Skipping ipac"
|
||||
fi
|
||||
|
||||
|
||||
# sequencer
|
||||
if [ ! -e "$SUPPORT/seq/built" ]; then
|
||||
echo "Build sequencer"
|
||||
install -d $SUPPORT/seq
|
||||
curl -L "http://www-csr.bessy.de/control/SoftDist/sequencer/releases/seq-${SEQ}.tar.gz" | tar -C $SUPPORT/seq -xvz --strip-components=1
|
||||
cp $RELEASE_PATH $SUPPORT/seq/configure/RELEASE
|
||||
make -C $SUPPORT/seq
|
||||
touch $SUPPORT/seq/built
|
||||
else
|
||||
echo "Using cached seq"
|
||||
fi
|
||||
|
||||
|
||||
# asyn
|
||||
if [ ! -e "$SUPPORT/asyn/built" ]; then
|
||||
echo "Build asyn"
|
||||
install -d $SUPPORT/asyn
|
||||
git clone --depth 10 --branch $ASYN https://github.com/epics-modules/asyn.git $SUPPORT/asyn
|
||||
cp $RELEASE_PATH $SUPPORT/asyn/configure/RELEASE
|
||||
make -C "$SUPPORT/asyn" -j2
|
||||
touch $SUPPORT/asyn/built
|
||||
else
|
||||
echo "Using cached asyn"
|
||||
fi
|
||||
|
||||
# modbus
|
||||
if [ ! -e "$SUPPORT/modbus/built" ]; then
|
||||
echo "Build modbus"
|
||||
install -d $SUPPORT/modbus
|
||||
git clone --depth 10 --branch $MODBUS https://github.com/epics-modules/modbus.git $SUPPORT/modbus
|
||||
cp $RELEASE_PATH $SUPPORT/modbus/configure/RELEASE
|
||||
make -C "$SUPPORT/modbus" -j2
|
||||
touch $SUPPORT/modbus/built
|
||||
else
|
||||
echo "Using cached modbus"
|
||||
fi
|
||||
@@ -91,3 +91,6 @@
|
||||
[submodule "modules/motorParker"]
|
||||
path = modules/motorParker
|
||||
url = https://github.com/epics-motor/motorParker.git
|
||||
[submodule ".ci"]
|
||||
path = .ci
|
||||
url = https://github.com/epics-base/ci-scripts
|
||||
|
||||
+116
-18
@@ -1,29 +1,127 @@
|
||||
sudo: false
|
||||
dist: trusty
|
||||
language: c
|
||||
compiler:
|
||||
- gcc
|
||||
# .travis.xml for use with EPICS Base ci-scripts
|
||||
# (see: https://github.com/epics-base/ci-scripts)
|
||||
|
||||
language: cpp
|
||||
compiler: gcc
|
||||
dist: xenial
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/.cache
|
||||
- $HOME/.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
|
||||
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
# for all EPICS builds
|
||||
- libreadline6-dev
|
||||
- libncurses5-dev
|
||||
- perl
|
||||
# for clang compiler
|
||||
- clang
|
||||
# for mingw builds (32bit and 64bit)
|
||||
- g++-mingw-w64-i686
|
||||
- g++-mingw-w64-x86-64
|
||||
# for RTEMS cross builds
|
||||
- qemu-system-x86
|
||||
homebrew:
|
||||
packages:
|
||||
# for all EPICS builds
|
||||
- bash
|
||||
# for the sequencer
|
||||
- re2c
|
||||
env:
|
||||
- BASE=3.14 STATIC=shared SEQ=2.2.6 ASYN=R4-35 IPAC=2.15 MODBUS=R2-11
|
||||
- BASE=3.14 STATIC=static SEQ=2.2.6 ASYN=R4-35 IPAC=2.15 MODBUS=R2-11
|
||||
- BASE=R3.15.6 STATIC=shared SEQ=2.2.6 ASYN=R4-35 IPAC=2.15 MODBUS=R2-11
|
||||
- BASE=R3.15.6 STATIC=static SEQ=2.2.6 ASYN=R4-35 IPAC=2.15 MODBUS=R2-11
|
||||
- BASE=7.0 STATIC=shared RTEMS=4.10 SEQ=2.2.6 ASYN=R4-35 IPAC=2.15 MODBUS=R2-11
|
||||
- BASE=7.0 STATIC=shared CMPLR=clang WINE=32 SEQ=2.2.4 ASYN=R4-35 IPAC= MODBUS=R2-11
|
||||
- BASE=7.0 STATIC=static WINE=32 SEQ=2.2.6 ASYN=R4-35 IPAC= MODBUS=R2-11
|
||||
install: ./.ci/travis-prepare.sh
|
||||
before_script:
|
||||
- cp ./configure/EXAMPLE_CONFIG_SITE.local ./configure/CONFIG_SITE.local
|
||||
script: make
|
||||
update: true
|
||||
|
||||
install:
|
||||
- ./.ci/travis/prepare.sh
|
||||
|
||||
script:
|
||||
- ./.ci/travis/build.sh
|
||||
|
||||
# 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
|
||||
# EXTRA content will be added to make command line
|
||||
# STATIC set to YES for static build (default: NO)
|
||||
# TEST set to NO to skip running the tests (default: YES)
|
||||
# VV set to make build scripts verbose (default: unset)
|
||||
|
||||
# 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
|
||||
# <MODULE> branch or release tag for a specific module
|
||||
# ... see README for setup file syntax description
|
||||
|
||||
jobs:
|
||||
include:
|
||||
|
||||
# Default gcc and clang, static build
|
||||
|
||||
- env: BASE=7.0
|
||||
|
||||
- env: BASE=7.0
|
||||
compiler: clang
|
||||
|
||||
- env: BASE=7.0 STATIC=YES
|
||||
|
||||
# Trusty: compiler versions very close to RHEL 7
|
||||
|
||||
- env: BASE=7.0
|
||||
dist: trusty
|
||||
|
||||
# Cross-compilations to Windows using MinGW and WINE
|
||||
|
||||
- env: BASE=7.0 WINE=32 TEST=NO STATIC=YES
|
||||
compiler: mingw
|
||||
|
||||
- env: BASE=7.0 WINE=64 TEST=NO STATIC=NO
|
||||
compiler: mingw
|
||||
|
||||
# MacOS build
|
||||
|
||||
- env: BASE=7.0
|
||||
os: osx
|
||||
compiler: clang
|
||||
|
||||
# Cross-compilation to RTEMS
|
||||
|
||||
- env: BASE=7.0 RTEMS=4.10
|
||||
|
||||
- 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"] } }
|
||||
|
||||
+1
-1
Submodule modules/motorOms updated: 53030c9fce...671b0acf36
Reference in New Issue
Block a user