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="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
|
||||||
|
|||||||
@@ -33,3 +33,4 @@ STREAM_REPOOWNER=paulscherrerinstitute
|
|||||||
# busy
|
# busy
|
||||||
# sscan
|
# sscan
|
||||||
# iocStats
|
# 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 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
|
||||||
|
|||||||
@@ -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" ]
|
||||||
|
|||||||
Reference in New Issue
Block a user