diff --git a/.appveyor.yml b/.appveyor.yml index 527781b..a197679 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -30,6 +30,7 @@ skip_commits: files: - 'documentation/*' - '**/*.md' + - '.github/**' # Build Configurations: dll/static, regular/debug configuration: diff --git a/.ci b/.ci index ecb7e43..ad8dd4a 160000 --- a/.ci +++ b/.ci @@ -1 +1 @@ -Subproject commit ecb7e43660200bd5d69e4ffa2a402046cd46e36b +Subproject commit ad8dd4a136348c7dc889fdc03a645e0f0358a2dc diff --git a/.github/workflows/ci-scripts-build.yml b/.github/workflows/ci-scripts-build.yml new file mode 100644 index 0000000..eb8297e --- /dev/null +++ b/.github/workflows/ci-scripts-build.yml @@ -0,0 +1,151 @@ +# .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: + - .appveyor.yml + pull_request: + +env: + SETUP_PATH: .ci-local:.ci + EPICS_TEST_IMPRECISE_TIMING: YES + +jobs: + build-base: + name: ${{ matrix.base }}/${{ matrix.os }}/${{ matrix.cmp }}/${{ matrix.configuration }}/${{ matrix.wine }}${{ matrix.rtems }}/${{ matrix.extra }} + 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 }} + EXTRA: ${{ matrix.extra }} + TEST: ${{ matrix.test }} + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-20.04 + cmp: gcc + configuration: default + base: "7.0" + wine: "64" + + - os: ubuntu-20.04 + cmp: gcc + configuration: static + base: "7.0" + wine: "64" + + - os: ubuntu-20.04 + cmp: gcc + configuration: default + base: "3.15" + wine: "64" + + - os: ubuntu-20.04 + cmp: gcc + configuration: static + base: "7.0" + extra: "CMD_CXXFLAGS=-std=c++11" + + - os: ubuntu-16.04 + cmp: clang + configuration: default + base: "7.0" + + - os: ubuntu-20.04 + cmp: clang + configuration: default + base: "7.0" + extra: "CMD_CXXFLAGS=-std=c++11" + + - os: ubuntu-20.04 + cmp: gcc + configuration: default + base: "7.0" + rtems: "4.10" + + - os: ubuntu-20.04 + cmp: gcc + configuration: default + base: "7.0" + rtems: "4.9" + + - os: ubuntu-16.04 + cmp: gcc-4.8 + utoolchain: true + configuration: default + base: "7.0" + + - os: ubuntu-16.04 + cmp: gcc-4.9 + utoolchain: true + configuration: default + base: "7.0" + + - os: ubuntu-20.04 + cmp: gcc-8 + utoolchain: true + configuration: default + base: "7.0" + + - os: ubuntu-20.04 + cmp: clang + configuration: default + base: "7.0" + + - os: macos-latest + cmp: clang + configuration: default + base: "7.0" + + - os: windows-2019 + cmp: vs2019 + configuration: default + base: "7.0" + + - os: windows-2019 + cmp: vs2019 + configuration: static + base: "7.0" + + 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.extra }} + - 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: 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 test + - name: Collect and show test results + run: python .ci/cue.py test-results diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 973e593..0000000 --- a/.travis.yml +++ /dev/null @@ -1,108 +0,0 @@ -# .travis.yml for use with EPICS Base ci-scripts -# (see: https://github.com/epics-base/ci-scripts) - -# This is YAML - indentation levels are crucial - -language: cpp -compiler: gcc -dist: bionic - -cache: - directories: - - $HOME/.cache - -env: - global: - - SETUP_PATH=.ci-local:.ci - -addons: - apt: - packages: - # for all EPICS builds - - libreadline6-dev - - libncurses5-dev - - perl - # for clang compiler - - clang - # for mingw builds (32bit and 64bit) - - g++-mingw-w64-i686 - - g++-mingw-w64-x86-64 - # for RTEMS cross builds - - qemu-system-x86 - -install: - - ./.ci/travis/prepare.sh - -script: - - ./.ci/travis/build.sh - -# If you need to do more during install and build, -# add a local directory to your module and do e.g. -# - ./.ci-local/travis/install-extras.sh - -# Define build jobs - -# Well-known variables to use -# SET source setup file -# EXTRA content will be added to make command line -# STATIC set to YES for static build (default: NO) -# TEST set to NO to skip running the tests (default: YES) -# VV set to make build scripts verbose (default: unset) - -# Usually from setup files, but may be specified or overridden -# on a job line -# MODULES list of dependency modules -# BASE branch or release tag name of the EPICS Base to use -# branch or release tag for a specific module -# ... see README for setup file syntax description - -jobs: - include: - -# Different configurations of default gcc and clang - - - env: BASE=7.0 - - - env: BASE=7.0 - compiler: clang - - - env: BASE=7.0 EXTRA="CMD_CXXFLAGS=-std=c++11" - - - env: BASE=7.0 EXTRA="CMD_CXXFLAGS=-std=c++11" - compiler: clang - -# Trusty: compiler versions very close to RHEL 7 - - - env: BASE=7.0 - dist: trusty - - - env: BASE=7.0 EXTRA="CMD_CXXFLAGS=-std=c++11" - dist: trusty - - - env: BASE=3.15 EXTRA="CMD_CXXFLAGS=-std=c++11" - dist: trusty - -# Cross-compilations to Windows using MinGW and WINE - - - env: BASE=7.0 WINE=32 TEST=NO STATIC=YES - compiler: mingw - - - env: BASE=7.0 WINE=64 TEST=NO STATIC=NO - compiler: mingw - -# Other gcc versions (added as an extra package) - - - env: BASE=7.0 - compiler: gcc-6 - addons: { apt: { packages: ["g++-6"], sources: ["ubuntu-toolchain-r-test"] } } - - - env: BASE=7.0 - compiler: gcc-7 - addons: { apt: { packages: ["g++-7"], sources: ["ubuntu-toolchain-r-test"] } } - -# MacOS build - - - env: BASE=7.0 - os: osx - compiler: clang - addons: { homebrew: { packages: ["re2c"], update: true } }