Skip to content

Commit

Permalink
Added epics-base ci-scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
kmpeters committed May 26, 2020
1 parent 3fa94b7 commit 8596b15
Show file tree
Hide file tree
Showing 5 changed files with 168 additions and 0 deletions.
1 change: 1 addition & 0 deletions .ci
Submodule .ci added at 55038b
31 changes: 31 additions & 0 deletions .ci-local/travis/post-prepare.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/bin/bash

set -e

# Set VV in .travis.yml to make scripts verbose
[ "$VV" ] && set -x

CACHEDIR=${CACHEDIR:-${HOME}/.cache}

# source functions
. ./.ci/travis/utils.sh

# The module to be built isn't in the cache directory with the dependencies
pwd

# Add the path to the driver module to the RELEASE.local file, since it is needed by the example IOC
update_release_local MOTOR_AEROTECH $TRAVIS_BUILD_DIR

# Copy the travis RELEASE.local to the configure dir
cp -f ${CACHEDIR}/RELEASE.local configure/RELEASE.local

# Sanity check
echo -e "${ANSI_BLUE}Contents of updated configure/RELEASE.local${ANSI_RESET}"
cat configure/RELEASE.local
echo -e "${ANSI_BLUE}End of updated configure/RELEASE.local${ANSI_RESET}"

# Enable the building of example IOCs
echo -e "${ANSI_BLUE}Creating configure/CONFIG_SITE.local${ANSI_RESET}"
echo -e "BUILD_IOCS = YES" > configure/CONFIG_SITE.local
cat configure/CONFIG_SITE.local
echo -e "${ANSI_BLUE}End of configure/CONFIG_SITE.local${ANSI_RESET}"
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule ".ci"]
path = .ci
url = https://github.com/epics-base/ci-scripts
131 changes: 131 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
# .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

env:
global:
- SETUP_PATH=.ci
- MODULES="sncseq ipac asyn autosave busy motor"
- SNCSEQ=R2-2-8
- IPAC=master
- ASYN=R4-38
- AUTOSAVE=R5-9
- BUSY=R1-7-1
- MOTOR=master
- MOTOR_RECURSIVE=NO

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
update: true

install:
- ./.ci/travis/prepare.sh
# ugly hacks go here:
- ./.ci-local/travis/post-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"] } }
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# motorAerotech
EPICS motor drivers for the following [Aerotech](https://www.aerotech.com/) controllers: A3200, Ensemble and Soloist

[![Build Status](https://travis-ci.org/epics-motor/motorAerotech.png)](https://travis-ci.org/epics-motor/motorAerotech)

motorAerotech is a submodule of [motor](https://github.com/epics-modules/motor). When motorAerotech is built in the ``motor/modules`` directory, no manual configuration is needed.

motorAerotech can also be built outside of motor by copying it's ``EXAMPLE_RELEASE.local`` file to ``RELEASE.local`` and defining the paths to ``MOTOR`` and itself.
Expand Down

0 comments on commit 8596b15

Please sign in to comment.