-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #27 from epics-motor/github-actions
Configured to build with github-actions
- Loading branch information
Showing
6 changed files
with
398 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
#!/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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
#!/usr/bin/env python | ||
|
||
import os | ||
import pprint | ||
|
||
pprint.pprint(dict(os.environ), width = 1) | ||
|
||
#!print("{}", breakmehere) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,9 @@ | ||
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,210 @@ | ||
# .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 |
Oops, something went wrong.