4 Commits

Author SHA1 Message Date
Ralph Lange
a39346bc78 Readme: add references, FAQ, Travis badge 2020-01-14 14:36:28 +01:00
Ralph Lange
5d76e1ff07 Add motor to the list of tested modules 2020-01-13 17:24:05 +01:00
Ralph Lange
c721b7ac32 Readme: fix heading levels 2020-01-13 11:10:40 +01:00
Ralph Lange
8233b9f81b travis: auto-fix missing inclusion of ../RELEASE.local 2020-01-10 16:27:33 +01:00
4 changed files with 44 additions and 5 deletions

View File

@@ -1,4 +1,5 @@
<a target="_blank" href="http://semver.org">![Version][badge.version]</a> <a target="_blank" href="http://semver.org">![Version][badge.version]</a>
<a target="_blank" href="https://travis-ci.org/epics-base/ci-scripts">![Travis status][badge.travis]</a>
# Continuous Integration Scripts for EPICS Modules # Continuous Integration Scripts for EPICS Modules
@@ -54,8 +55,8 @@ example.
- Cross-compile for RTEMS 4.9 and 4.10 (Base >= 3.16.2) - Cross-compile for RTEMS 4.9 and 4.10 (Base >= 3.16.2)
- Compile on MacOS - Compile on MacOS
- Built dependencies are cached (for faster builds) - Built dependencies are cached (for faster builds)
### How to Use the CI-Scripts ## How to Use the CI-Scripts
1. Get an account on a supported CI service provider platform. 1. Get an account on a supported CI service provider platform.
(e.g. [Travis-CI](https://travis-ci.org/), (e.g. [Travis-CI](https://travis-ci.org/),
@@ -179,9 +180,28 @@ Setting `VV=1` in your `.travis.yml` configuration for a specific job
will run the job with high verbosity, printing every command as it is being will run the job with high verbosity, printing every command as it is being
executed and switching the dependency builds to higher verbosity. executed and switching the dependency builds to higher verbosity.
## References: User Modules
EPICS: [PCAS module](https://github.com/epics-modules/pcas)
EPICS Base: [pvData](https://github.com/epics-base/pvDataCPP),
[pvAccess](https://github.com/epics-base/pvAccessCPP),
[pva2pva](https://github.com/epics-base/pva2pva)
ESS: [Motor driver (model 3) for EtherCAT Motion Controller](https://github.com/EuropeanSpallationSource/m-epics-ethercatmc)
ITER: [OPC UA Device Support](https://github.com/ralphlange/opcua)
## Frequently Asked Questions
**How can I see what the dependency jobs are actually doing?**
Set `VV=1` in the configuration line of the job you are interested in.
This will make all builds (not just for your module) verbose.
## Release Numbering of this Module ## Release Numbering of this Module
The module uses [Semantic Versioning](https://semver.org/). The module tries to apply [Semantic Versioning](https://semver.org/).
Major release numbers refer to the API, which is more or less defined Major release numbers refer to the API, which is more or less defined
by the full configuration examples in the service specific by the full configuration examples in the service specific
@@ -195,7 +215,7 @@ require the configuration inside an existing user module to be changed.
Again: using the git submodule mechanism to include these scripts means Again: using the git submodule mechanism to include these scripts means
that user modules always work with a fixed, frozen version. that user modules always work with a fixed, frozen version.
I.e., developments in the ci-scripts repository will never break an\ I.e., developments in the ci-scripts repository will never break an
existing application. existing application.
These release numbering considerations are just a hint to assess the These release numbering considerations are just a hint to assess the
risks when updating the submodule. risks when updating the submodule.
@@ -206,4 +226,5 @@ This module is distributed subject to a Software License Agreement found
in file LICENSE that is included with this distribution. in file LICENSE that is included with this distribution.
<!-- Links --> <!-- Links -->
[badge.version]: https://badge.fury.io/gh/epics-base%2Fci-scripts.png [badge.version]: https://badge.fury.io/gh/epics-base%2Fci-scripts.svg
[badge.travis]: https://travis-ci.org/epics-base/ci-scripts.svg?branch=master

View File

@@ -33,3 +33,4 @@ STREAM_REPOOWNER=paulscherrerinstitute
# busy # busy
# sscan # sscan
# iocStats # iocStats
# motor

View File

@@ -98,6 +98,7 @@ repo_exists AUTOSAVE || die "Defaults for AUTOSAVE do not point to a valid git r
repo_exists BUSY || die "Defaults for BUSY do not point to a valid git repository at $repourl" repo_exists BUSY || die "Defaults for BUSY do not point to a valid git repository at $repourl"
repo_exists SSCAN || die "Defaults for SSCAN do not point to a valid git repository at $repourl" repo_exists SSCAN || die "Defaults for SSCAN do not point to a valid git repository at $repourl"
repo_exists IOCSTATS || die "Defaults for IOCSTATS do not point to a valid git repository at $repourl" repo_exists IOCSTATS || die "Defaults for IOCSTATS do not point to a valid git repository at $repourl"
repo_exists MOTOR || die "Defaults for MOTOR do not point to a valid git repository at $repourl"
# test update_release_local() # test update_release_local()
###################################################################### ######################################################################
@@ -158,6 +159,7 @@ add_dependency BASE R3.15.6
[ -e $location/LICENSE ] || die "Missing dependency was not checked out" [ -e $location/LICENSE ] || die "Missing dependency was not checked out"
BUILT=$(cat "$location/built") BUILT=$(cat "$location/built")
[ "$BUILT" != "$hash_3_15_6" ] && die "Wrong commit of dependency checked out (expected=\"$hash_3_15_6\" found=\"$BUILT\")" [ "$BUILT" != "$hash_3_15_6" ] && die "Wrong commit of dependency checked out (expected=\"$hash_3_15_6\" found=\"$BUILT\")"
grep -q "include \$(TOP)/../RELEASE.local" $location/configure/RELEASE && die "RELEASE in Base includes RELEASE.local"
# up-to-date dependency does exist in the cache # up-to-date dependency does exist in the cache
( cd $CACHEDIR; git clone --quiet --depth 5 --recursive --branch R3.15.6 https://github.com/epics-base/epics-base.git base-R3.15.6 ) ( cd $CACHEDIR; git clone --quiet --depth 5 --recursive --branch R3.15.6 https://github.com/epics-base/epics-base.git base-R3.15.6 )
@@ -173,3 +175,9 @@ BUILT=$(cat "$location/built")
[ "$BUILT" != "$hash_3_15_6" ] && die "Wrong commit of dependency checked out (expected=\"$hash_3_15_6\" found=\"$BUILT\")" [ "$BUILT" != "$hash_3_15_6" ] && die "Wrong commit of dependency checked out (expected=\"$hash_3_15_6\" found=\"$BUILT\")"
rm -fr $location rm -fr $location
# missing inclusion of RELEASE.local in configure/RELEASE
location=$CACHEDIR/std-R3-4
add_dependency STD R3-4
grep -q "include \$(TOP)/../RELEASE.local" $location/configure/RELEASE || die "Inclusion of RELEASE.local not added to configure/RELEASE"
rm -fr $location

View File

@@ -176,6 +176,15 @@ add_dependency() {
git clone --quiet $deptharg $recurse --branch "$TAG" $repourl $dirname-$TAG git clone --quiet $deptharg $recurse --branch "$TAG" $repourl $dirname-$TAG
( cd $dirname-$TAG && git log -n1 ) ( cd $dirname-$TAG && git log -n1 )
modules_to_compile="${modules_to_compile} $CACHEDIR/$dirname-$TAG" modules_to_compile="${modules_to_compile} $CACHEDIR/$dirname-$TAG"
# fix non-base modules that do not include the .local files in configure/RELEASE
if [ $DEP != "BASE" ]
then
release=$CACHEDIR/$dirname-$TAG/configure/RELEASE
if [ -e $release ]
then
grep -q "include \$(TOP)/../RELEASE.local" $release || echo "-include \$(TOP)/../RELEASE.local" >> $release
fi
fi
# run hook # run hook
eval hook="\${${DEP}_HOOK}" eval hook="\${${DEP}_HOOK}"
if [ "$hook" ] if [ "$hook" ]