Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Accelerator Control System
epics-support
motorPhytron
Commits
c3d9edc9
Commit
c3d9edc9
authored
Apr 28, 2022
by
Kevin Peterson
Browse files
Configured to build with github-actions
parent
9acb9742
Changes
7
Hide whitespace changes
Inline
Side-by-side
.ci
@
57646016
Compare
12d76983
...
57646016
Subproject commit
12d769835e1ee88e94b5b0b4bc0cf7068e67806
4
Subproject commit
576460163031255c09948566dd2f2409d86ab8d
4
.ci-local/github-actions/post-prepare.py
0 → 100755
View file @
c3d9edc9
#!/usr/bin/env python
import
os
import
shutil
import
re
# Setup ANSI Colors (copied from cue.py)
ANSI_RED
=
"
\033
[31;1m"
ANSI_GREEN
=
"
\033
[32;1m"
ANSI_YELLOW
=
"
\033
[33;1m"
ANSI_BLUE
=
"
\033
[34;1m"
ANSI_MAGENTA
=
"
\033
[35;1m"
ANSI_CYAN
=
"
\033
[36;1m"
ANSI_RESET
=
"
\033
[0m"
ANSI_CLEAR
=
"
\033
[0K"
def
cat
(
filename
):
'''
Print the contents of a file
'''
with
open
(
filename
,
'r'
)
as
fh
:
for
line
in
fh
:
print
(
line
.
strip
())
def
sanity_check
(
filename
):
'''
Include the contents of a file in the github-actions log
'''
print
(
"{}Contents of {}{}"
.
format
(
ANSI_BLUE
,
filename
,
ANSI_RESET
))
cat
(
filename
)
print
(
"{}End of {}{}"
.
format
(
ANSI_BLUE
,
filename
,
ANSI_RESET
))
if
'HOME'
in
os
.
environ
:
# Linux & OS X
cache_dir
=
os
.
path
.
join
(
os
.
environ
[
'HOME'
],
".cache"
)
else
:
# Windows
cache_dir
=
os
.
path
.
join
(
os
.
environ
[
'HOMEDRIVE'
],
os
.
environ
[
'HOMEPATH'
],
".cache"
)
module_dir
=
os
.
getenv
(
'GITHUB_WORKSPACE'
)
# Copy the github-actions RELEASE.local to the configure dir
filename
=
"configure/RELEASE.local"
shutil
.
copy
(
"{}/RELEASE.local"
.
format
(
cache_dir
),
filename
)
# Get the variable from the example release file
example
=
"configure/EXAMPLE_RELEASE.local"
fh
=
open
(
example
,
"r"
)
lines
=
fh
.
readlines
()
fh
.
close
()
pObj
=
re
.
compile
(
'(MOTOR_[^=]+)'
)
module_var
=
None
for
line
in
lines
:
mObj
=
pObj
.
match
(
line
)
if
mObj
!=
None
:
module_var
=
mObj
.
group
()
break
# Add the path to the driver module to the RELEASE.local file, since it is needed by the example IOC
fh
=
open
(
filename
,
"a"
)
fh
.
write
(
"{}={}
\n
"
.
format
(
module_var
,
module_dir
))
fh
.
close
()
sanity_check
(
filename
)
# Enable the building of example IOCs
filename
=
"configure/CONFIG_SITE.local"
fh
=
open
(
filename
,
'w'
)
fh
.
write
(
"BUILD_IOCS = YES"
)
fh
.
close
()
sanity_check
(
filename
)
.ci-local/github-actions/sanity-check.py
0 → 100644
View file @
c3d9edc9
#!/usr/bin/env python
import
os
import
pprint
pprint
.
pprint
(
dict
(
os
.
environ
),
width
=
1
)
#!print("{}", breakmehere)
.ci-local/modules.set
View file @
c3d9edc9
MODULES="sncseq ipac asyn autosave busy motor"
SNCSEQ=R2-2-
8
SNCSEQ=R2-2-
9
IPAC=master
ASYN=R4-
38
AUTOSAVE=R5-
9
BUSY=R1-7-
1
ASYN=R4-
42
AUTOSAVE=R5-
10-2
BUSY=R1-7-
3
MOTOR=master
MOTOR_RECURSIVE=NO
.github/workflows/ci-scripts-build-full.yml
0 → 100644
View file @
c3d9edc9
# .github/workflows/ci-scripts-build.yml for use with EPICS Base ci-scripts
# (see: https://github.com/epics-base/ci-scripts)
# This is YAML - indentation levels are crucial
# Set the 'name:' properties to values that work for you (MYMODULE)
name
:
"
GHA
full
build"
# Only run manually
on
:
workflow_dispatch
env
:
SETUP_PATH
:
.ci-local:.ci
# For the sequencer on Linux/Windows/MacOS
APT
:
re2c
CHOCO
:
re2c
BREW
:
re2c
jobs
:
build-base
:
name
:
${{ matrix.name }}
runs-on
:
${{ matrix.os }}
# Set environment variables from matrix parameters
env
:
CMP
:
${{ matrix.cmp }}
BCFG
:
${{ matrix.configuration }}
WINE
:
${{ matrix.wine }}
RTEMS
:
${{ matrix.rtems }}
RTEMS_TARGET
:
${{ matrix.rtems_target }}
EXTRA
:
${{ matrix.extra }}
TEST
:
${{ matrix.test }}
SET
:
${{ matrix.set }}
strategy
:
fail-fast
:
false
matrix
:
# Job names also name artifacts, character limitations apply
include
:
-
os
:
ubuntu-20.04
cmp
:
gcc
configuration
:
default
wine
:
"
64"
base
:
"
7.0"
set
:
modules
name
:
"
Ub-20
gcc-9
+
MinGW"
-
os
:
ubuntu-20.04
cmp
:
gcc
configuration
:
static
wine
:
"
64"
base
:
"
7.0"
set
:
modules
name
:
"
Ub-20
gcc-9
+
MinGW,
static"
-
os
:
ubuntu-20.04
cmp
:
gcc
configuration
:
static
extra
:
"
CMD_CXXFLAGS=-std=c++11"
base
:
"
7.0"
set
:
modules
name
:
"
Ub-20
gcc-9
C++11,
static"
-
os
:
ubuntu-20.04
cmp
:
clang
configuration
:
default
extra
:
"
CMD_CXXFLAGS=-std=c++11"
base
:
"
7.0"
set
:
modules
name
:
"
Ub-20
clang-10
C++11"
### fails building autosave
#!- os: ubuntu-20.04
#! cmp: gcc
#! configuration: default
#! rtems: "4.10"
#! base: "7.0"
#! set: modules
#! name: "Ub-20 gcc-9 + RT-4.10"
-
os
:
ubuntu-20.04
cmp
:
gcc
configuration
:
default
rtems
:
"
4.9"
base
:
"
7.0"
set
:
modules
name
:
"
Ub-20
gcc-9
+
RT-4.9"
### fails building asyn
#!- os: ubuntu-20.04
#! cmp: gcc
#! configuration: default
#! rtems: "5"
#! rtems_target: RTEMS-pc686-qemu
#! base: "7.0"
#! set: modules
#! name: "Ub-20 gcc-9 + RT-5.1 pc686"
### fails building autosave
#!- os: ubuntu-20.04
#! cmp: gcc
#! configuration: default
#! rtems: "5"
#! rtems_target: RTEMS-beatnik
#! test: NO
#! base: "7.0"
#! set: modules
#! name: "Ub-20 gcc-9 + RT-5.1 beatnik"
-
os
:
ubuntu-18.04
cmp
:
gcc
configuration
:
default
base
:
"
7.0"
set
:
modules
name
:
"
Ub-18
gcc-7"
### g++-8 not found
#!- os: ubuntu-18.04
#! cmp: gcc-8
#! utoolchain: true
#! configuration: default
#! base: "7.0"
#! set: modules
#! name: "Ub-18 gcc-8"
#!- os: ubuntu-20.04
#! cmp: gcc-8
#! utoolchain: true
#! configuration: default
#! base: "7.0"
#! set: modules
#! name: "Ub-20 gcc-8"
-
os
:
ubuntu-20.04
cmp
:
clang
configuration
:
default
base
:
"
7.0"
set
:
modules
name
:
"
Ub-20
clang-10"
-
os
:
macos-latest
cmp
:
clang
configuration
:
default
base
:
"
7.0"
set
:
modules
name
:
"
MacOS
clang-12"
-
os
:
windows-2019
cmp
:
gcc
configuration
:
default
base
:
"
7.0"
set
:
modules
name
:
"
Win2019
MinGW"
-
os
:
windows-2019
cmp
:
gcc
configuration
:
static
base
:
"
7.0"
set
:
modules
name
:
"
Win2019
MinGW,
static"
-
os
:
windows-2019
cmp
:
vs2019
configuration
:
default
base
:
"
7.0"
set
:
modules
name
:
"
Win2019
MSC-19"
-
os
:
windows-2019
cmp
:
vs2019
configuration
:
static
base
:
"
7.0"
set
:
modules
name
:
"
Win2019
MSC-19,
static"
steps
:
-
uses
:
actions/checkout@v2
with
:
submodules
:
true
-
name
:
Automatic core dumper analysis
uses
:
mdavidsaver/ci-core-dumper@master
-
name
:
"
apt-get
install"
run
:
|
sudo apt-get update
sudo apt-get -y install qemu-system-x86 g++-mingw-w64-x86-64 gdb
if
:
runner.os == 'Linux'
-
name
:
"
apt-get
install
${{
matrix.cmp
}}"
run
:
|
sudo apt-get -y install software-properties-common
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get -y install ${{ matrix.cmp }}
if
:
matrix.utoolchain
-
name
:
Sanity Check
run
:
python .ci-local/github-actions/sanity-check.py
-
name
:
Prepare and compile dependencies
run
:
python .ci/cue.py prepare
-
name
:
Patch main module
run
:
python .ci-local/github-actions/post-prepare.py
-
name
:
Build main module
run
:
python .ci/cue.py build
-
name
:
Run main module tests
run
:
python .ci/cue.py test
-
name
:
Upload tapfiles Artifact
uses
:
actions/upload-artifact@v2
with
:
name
:
tapfiles ${{ matrix.name }}
path
:
'
**/O.*/*.tap'
-
name
:
Collect and show test results
run
:
python .ci/cue.py test-results
.github/workflows/ci-scripts-build.yml
0 → 100644
View file @
c3d9edc9
# .github/workflows/ci-scripts-build.yml for use with EPICS Base ci-scripts
# (see: https://github.com/epics-base/ci-scripts)
# This is YAML - indentation levels are crucial
# Set the 'name:' properties to values that work for you (MYMODULE)
name
:
"
GHA
build"
# Trigger on pushes to the master branch and PRs
on
:
push
:
paths-ignore
:
-
'
documentation/*'
-
'
**/*.html'
-
'
**/*.md'
-
'
.github/workflows/ci-scripts-build-full.yml'
branches
:
-
master
pull_request
:
env
:
SETUP_PATH
:
.ci-local:.ci
# For the sequencer on Linux/Windows/MacOS
APT
:
re2c
CHOCO
:
re2c
BREW
:
re2c
jobs
:
build-base
:
name
:
${{ matrix.name }}
runs-on
:
${{ matrix.os }}
# Set environment variables from matrix parameters
env
:
CMP
:
${{ matrix.cmp }}
BCFG
:
${{ matrix.configuration }}
WINE
:
${{ matrix.wine }}
RTEMS
:
${{ matrix.rtems }}
RTEMS_TARGET
:
${{ matrix.rtems_target }}
EXTRA
:
${{ matrix.extra }}
TEST
:
${{ matrix.test }}
SET
:
${{ matrix.set }}
strategy
:
fail-fast
:
false
matrix
:
# Job names also name artifacts, character limitations apply
include
:
-
os
:
ubuntu-20.04
cmp
:
gcc
configuration
:
default
base
:
"
7.0"
set
:
modules
name
:
"
7.0
Ub-20
gcc-9"
-
os
:
macos-latest
cmp
:
clang
configuration
:
default
base
:
"
3.15"
set
:
modules
name
:
"
3.15
MacOS
clang-12"
-
os
:
windows-2019
cmp
:
vs2019
configuration
:
static
base
:
"
3.15"
set
:
modules
name
:
"
3.15
Win
VS2019,
static"
steps
:
-
uses
:
actions/checkout@v2
with
:
submodules
:
true
-
name
:
Automatic core dumper analysis
uses
:
mdavidsaver/ci-core-dumper@master
-
name
:
"
apt-get
install"
run
:
|
sudo apt-get update
sudo apt-get -y install qemu-system-x86 g++-mingw-w64-x86-64 gdb
if
:
runner.os == 'Linux'
-
name
:
"
apt-get
install
${{
matrix.cmp
}}"
run
:
|
sudo apt-get -y install software-properties-common
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get -y install ${{ matrix.cmp }}
if
:
matrix.utoolchain
-
name
:
Sanity Check
run
:
python .ci-local/github-actions/sanity-check.py
-
name
:
Prepare and compile dependencies
run
:
python .ci/cue.py prepare
-
name
:
Patch main module
run
:
python .ci-local/github-actions/post-prepare.py
-
name
:
Build main module
run
:
python .ci/cue.py build
-
name
:
Run main module tests
run
:
python .ci/cue.py test
-
name
:
Upload tapfiles Artifact
uses
:
actions/upload-artifact@v2
with
:
name
:
tapfiles ${{ matrix.name }}
path
:
'
**/O.*/*.tap'
-
name
:
Collect and show test results
run
:
python .ci/cue.py test-results
README.md
View file @
c3d9edc9
# motorPhytron
EPICS motor drivers for the following
[
Phytron GmbH
](
https://www.phytron.eu/
)
controllers: I1AM01 Stepper Motor Controller
[

](https://travis-ci.org/epics-motor/motorPhytron)
[

](https://github.com/epics-motor/motorPhytron/actions/workflows/ci-scripts-build.yml)
<!--[](https://travis-ci.org/epics-motor/motorPhytron)-->
motorPhytron is a submodule of
[
motor
](
https://github.com/epics-modules/motor
)
. When motorPhytron is built in the
``motor/modules``
directory, no manual configuration is needed.
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment