-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Configure CI using ci-scripts for GHA and Appveyor
- Loading branch information
Showing
5 changed files
with
285 additions
and
0 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,93 @@ | ||
# .appveyor.yml for use with EPICS Base ci-scripts | ||
# (see: https://github.com/epics-base/ci-scripts) | ||
|
||
# This is YAML - indentation levels are crucial | ||
|
||
cache: | ||
- C:\Users\appveyor\.tools | ||
|
||
#---------------------------------# | ||
# repository cloning # | ||
#---------------------------------# | ||
|
||
init: | ||
# Set autocrlf to make batch files work | ||
- git config --global core.autocrlf true | ||
|
||
clone_depth: 5 | ||
|
||
# Build Configurations: dll/static, regular/debug | ||
configuration: | ||
- dynamic | ||
- static | ||
- dynamic-debug | ||
- static-debug | ||
|
||
# Default OS Image | ||
image: Visual Studio 2019 | ||
|
||
# Environment variables: compiler toolchain, base version, setup file, ... | ||
environment: | ||
# common / default variables for all jobs | ||
SETUP_PATH: .ci-local:.ci | ||
|
||
matrix: | ||
- BASE: 3.15 | ||
CMP: vs2019 | ||
- BASE: 7.0 | ||
CMP: vs2019 | ||
- BASE: 7.0 | ||
CMP: gcc | ||
- BASE: 7.0 | ||
CMP: vs2017 | ||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 | ||
|
||
# Platform: processor architecture | ||
platform: | ||
- x64 | ||
|
||
#---------------------------------# | ||
# building & testing # | ||
#---------------------------------# | ||
|
||
install: | ||
- cmd: git submodule update --init --recursive | ||
- cmd: pip install git+https://github.com/mdavidsaver/ci-core-dumper#egg=ci-core-dumper | ||
- cmd: python .ci/cue.py prepare | ||
|
||
build_script: | ||
- cmd: python .ci/cue.py build | ||
|
||
test_script: | ||
- cmd: python -m ci_core_dumper install | ||
- cmd: python .ci/cue.py -T 20M test | ||
|
||
on_finish: | ||
- ps: Get-ChildItem *.tap -Recurse -Force | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name } | ||
- cmd: python .ci/cue.py -T 5M test-results | ||
|
||
on_failure: | ||
- cmd: python -m ci_core_dumper report | ||
|
||
#---------------------------------# | ||
# debugging # | ||
#---------------------------------# | ||
|
||
## if you want to connect by remote desktop to a failed build, uncomment these lines | ||
## note that you will need to connect within the usual build timeout limit (60 minutes) | ||
## so you may want to adjust the build matrix above to just build the one of interest | ||
|
||
#on_failure: | ||
# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) | ||
# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) | ||
|
||
#---------------------------------# | ||
# notifications # | ||
#---------------------------------# | ||
|
||
notifications: | ||
- provider: Email | ||
to: | ||
- [email protected] | ||
on_build_success: false | ||
- provider: GitHubPullRequest |
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,14 @@ | ||
# EPICS Base | ||
BASE_DIRNAME=base | ||
BASE_REPONAME=epics-base | ||
BASE_REPOOWNER=epics-base | ||
BASE_VARNAME=EPICS_BASE | ||
BASE_RECURSIVE=NO | ||
|
||
MODULES=PVDATA PVACCESS | ||
|
||
PVDATA_REPONAME=pvDataCPP | ||
PVDATA_REPOOWNER=epics-base | ||
|
||
PVACCESS_REPONAME=pvAccessCPP | ||
PVACCESS_REPOOWNER=epics-base |
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,174 @@ | ||
# .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 (pvxs) | ||
|
||
name: Base | ||
|
||
# Trigger on pushes and PRs to any branch | ||
on: | ||
push: | ||
paths-ignore: | ||
- '.*.yml' | ||
- 'documentation/*' | ||
- '**/*.md' | ||
pull_request: | ||
paths-ignore: | ||
- '.*.yml' | ||
- 'documentation/*' | ||
- '**/*.md' | ||
|
||
env: | ||
SETUP_PATH: .ci-local:.ci | ||
EPICS_TEST_IMPRECISE_TIMING: YES | ||
|
||
jobs: | ||
build-base: | ||
name: ${{ matrix.name }} | ||
runs-on: ${{ matrix.os }} | ||
# Set environment variables from matrix parameters | ||
env: | ||
BASE: ${{ matrix.base }} | ||
CMP: ${{ matrix.cmp }} | ||
BCFG: ${{ matrix.configuration }} | ||
WINE: ${{ matrix.wine }} | ||
RTEMS: ${{ matrix.rtems }} | ||
RTEMS_TARGET: ${{ matrix.rtems_target }} | ||
EXTRA: ${{ matrix.extra }} | ||
TEST: ${{ matrix.test }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
# Job names also name artifacts, character limitations apply | ||
include: | ||
- os: ubuntu-20.04 | ||
cmp: gcc | ||
configuration: default | ||
base: "3.15" | ||
wine: "64" | ||
name: "3.15 Ub-20 gcc-9 + MinGW" | ||
|
||
- os: ubuntu-20.04 | ||
cmp: gcc | ||
configuration: default | ||
base: "7.0" | ||
wine: "64" | ||
name: "7.0 Ub-20 gcc-9 + MinGW" | ||
|
||
- os: ubuntu-20.04 | ||
cmp: gcc | ||
configuration: static | ||
base: "7.0" | ||
wine: "64" | ||
name: "7.0 Ub-20 gcc-9 + MinGW, static" | ||
|
||
- os: ubuntu-20.04 | ||
cmp: gcc | ||
configuration: static | ||
base: "7.0" | ||
extra: "CMD_CXXFLAGS=-std=c++11" | ||
name: "7.0 Ub-20 gcc-9 C++11, static" | ||
|
||
- os: ubuntu-20.04 | ||
cmp: clang | ||
configuration: default | ||
base: "7.0" | ||
name: "7.0 Ub-20 clang-10" | ||
|
||
- os: ubuntu-20.04 | ||
cmp: clang | ||
configuration: default | ||
base: "7.0" | ||
extra: "CMD_CXXFLAGS=-std=c++11" | ||
name: "7.0 Ub-20 clang-10 C++11" | ||
|
||
- os: ubuntu-20.04 | ||
cmp: gcc | ||
configuration: default | ||
base: "7.0" | ||
rtems: "5" | ||
rtems_target: RTEMS-pc686-qemu | ||
test: NO | ||
name: "7.0 Ub-20 gcc-9 + RT-5.1 pc686" | ||
|
||
- os: ubuntu-20.04 | ||
cmp: gcc | ||
configuration: default | ||
base: "7.0" | ||
rtems: "4.10" | ||
rtems_target: RTEMS-pc386-qemu | ||
test: NO | ||
name: "7.0 Ub-20 gcc-9 + RT-4.10" | ||
|
||
- os: ubuntu-20.04 | ||
cmp: gcc | ||
configuration: default | ||
base: "7.0" | ||
rtems: "4.9" | ||
rtems_target: RTEMS-pc386-qemu | ||
name: "7.0 Ub-20 gcc-9 + RT-4.9" | ||
|
||
- os: macos-latest | ||
cmp: clang | ||
configuration: default | ||
base: "7.0" | ||
name: "7.0 MacOS clang-12" | ||
|
||
- os: windows-2019 | ||
cmp: vs2019 | ||
configuration: default | ||
base: "7.0" | ||
name: "7.0 Win2019 MSC-19" | ||
|
||
- os: windows-2019 | ||
cmp: vs2019 | ||
configuration: static | ||
base: "7.0" | ||
name: "7.0 Win2019 MSC-19, static" | ||
|
||
- os: windows-2019 | ||
cmp: vs2019 | ||
configuration: debug | ||
base: "7.0" | ||
name: "7.0 Win2019 MSC-19, debug" | ||
|
||
- os: windows-2019 | ||
cmp: gcc | ||
configuration: default | ||
base: "7.0" | ||
name: "7.0 Win2019 mingw" | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
with: | ||
submodules: true | ||
- name: Cache Dependencies | ||
uses: actions/cache@v2 | ||
with: | ||
path: ~/.cache | ||
key: ${{ matrix.base }}/${{ matrix.os }}/${{ matrix.cmp }}/${{ matrix.configuration }}/${{ matrix.wine }}${{ matrix.rtems }}/${{ matrix.rtems_target }}/${{ matrix.extra }} | ||
- name: Automatic core dump 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: Prepare and compile dependencies | ||
run: python .ci/cue.py prepare | ||
- name: Build main module | ||
run: python .ci/cue.py build | ||
- name: Run main module tests | ||
run: python .ci/cue.py -T 20M test | ||
- name: Upload tapfiles Artifact | ||
if: ${{ always() }} | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: tapfiles ${{ matrix.name }} | ||
path: '**/O.*/*.tap' | ||
if-no-files-found: ignore | ||
- name: Collect and show test results | ||
if: ${{ always() }} | ||
run: python .ci/cue.py -T 5M test-results |
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,3 @@ | ||
[submodule ".ci"] | ||
path = .ci | ||
url = https://github.com/epics-base/ci-scripts |