Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a39346bc78 | ||
|
|
5d76e1ff07 | ||
|
|
c721b7ac32 | ||
|
|
8233b9f81b |
31
README.md
31
README.md
@@ -1,4 +1,5 @@
|
||||
<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
|
||||
|
||||
@@ -54,8 +55,8 @@ example.
|
||||
- Cross-compile for RTEMS 4.9 and 4.10 (Base >= 3.16.2)
|
||||
- Compile on MacOS
|
||||
- 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.
|
||||
(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
|
||||
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
|
||||
|
||||
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
|
||||
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
|
||||
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.
|
||||
These release numbering considerations are just a hint to assess the
|
||||
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.
|
||||
|
||||
<!-- 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
|
||||
|
||||
@@ -33,3 +33,4 @@ STREAM_REPOOWNER=paulscherrerinstitute
|
||||
# busy
|
||||
# sscan
|
||||
# iocStats
|
||||
# motor
|
||||
|
||||
@@ -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 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 MOTOR || die "Defaults for MOTOR do not point to a valid git repository at $repourl"
|
||||
|
||||
# test update_release_local()
|
||||
######################################################################
|
||||
@@ -158,6 +159,7 @@ add_dependency BASE R3.15.6
|
||||
[ -e $location/LICENSE ] || die "Missing dependency was not checked out"
|
||||
BUILT=$(cat "$location/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
|
||||
( 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\")"
|
||||
|
||||
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
|
||||
|
||||
@@ -176,6 +176,15 @@ add_dependency() {
|
||||
git clone --quiet $deptharg $recurse --branch "$TAG" $repourl $dirname-$TAG
|
||||
( cd $dirname-$TAG && git log -n1 )
|
||||
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
|
||||
eval hook="\${${DEP}_HOOK}"
|
||||
if [ "$hook" ]
|
||||
|
||||
Reference in New Issue
Block a user