diff --git a/.appveyor.yml b/.appveyor.yml index a79f81d39..e923ded37 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -38,6 +38,7 @@ skip_commits: - 'templates/*' - '**/*.html' - '**/*.md' + - '.github/*' #---------------------------------# # build matrix configuration # diff --git a/.ci b/.ci index e91a58837..ad8dd4a13 160000 --- a/.ci +++ b/.ci @@ -1 +1 @@ -Subproject commit e91a5883704e9fa57792953436eb7020baf37063 +Subproject commit ad8dd4a136348c7dc889fdc03a645e0f0358a2dc diff --git a/.github/workflows/ci-scripts-build.yml b/.github/workflows/ci-scripts-build.yml new file mode 100644 index 000000000..0afd27852 --- /dev/null +++ b/.github/workflows/ci-scripts-build.yml @@ -0,0 +1,125 @@ +# .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 + +name: Base + +# Trigger on pushes and PRs to any branch +on: + push: + paths-ignore: + - .appveyor.yml + pull_request: + +env: + SETUP_PATH: .ci-local:.ci + BASE: SELF + EPICS_TEST_IMPRECISE_TIMING: YES + +jobs: + build-base: + name: ${{ matrix.os }}/${{ matrix.cmp }}/${{ matrix.configuration }}/${{ matrix.wine }}${{ matrix.rtems }}/${{ matrix.extra }} + runs-on: ${{ matrix.os }} + # Set environment variables from matrix parameters + env: + CMP: ${{ matrix.cmp }} + BCFG: ${{ matrix.configuration }} + WINE: ${{ matrix.wine }} + RTEMS: ${{ matrix.rtems }} + EXTRA: ${{ matrix.extra }} + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-20.04 + cmp: gcc + configuration: default + wine: "64" + + - os: ubuntu-20.04 + cmp: gcc + configuration: static + wine: "64" + + - os: ubuntu-20.04 + cmp: gcc + configuration: static + extra: "CMD_CXXFLAGS=-std=c++11" + + - os: ubuntu-16.04 + cmp: clang + configuration: default + + - os: ubuntu-20.04 + cmp: clang + configuration: default + extra: "CMD_CXXFLAGS=-std=c++11" + + - os: ubuntu-20.04 + cmp: gcc + configuration: default + rtems: "4.10" + + - os: ubuntu-20.04 + cmp: gcc + configuration: default + rtems: "4.9" + + - os: ubuntu-16.04 + cmp: gcc-4.8 + utoolchain: true + configuration: default + + - os: ubuntu-16.04 + cmp: gcc-4.9 + utoolchain: true + configuration: default + + - os: ubuntu-20.04 + cmp: gcc-8 + utoolchain: true + configuration: default + + - os: ubuntu-20.04 + cmp: clang + configuration: default + + - os: macos-latest + cmp: clang + configuration: default + + - os: windows-2019 + cmp: vs2019 + configuration: default + + - os: windows-2019 + cmp: vs2019 + configuration: static + + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - 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 5edb00dcd..000000000 --- a/.travis.yml +++ /dev/null @@ -1,93 +0,0 @@ -# .travis.yml for use with EPICS Base ci-scripts -# (see: https://github.com/epics-base/ci-scripts) - -language: cpp -compiler: gcc -dist: xenial - -cache: - directories: - - $HOME/.cache - -env: - global: - - SETUP_PATH=.ci-local:.ci - - BASE=SELF - -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 - homebrew: - packages: - # for all EPICS builds - - bash - update: true - -install: - - ./.ci/travis/prepare.sh - -script: - - ./.ci/travis/build.sh - -# Define build jobs - -jobs: - include: - -# Different configurations of default gcc and clang -# (the DIST settings are just FYI on the travis-ci.org site) - - dist: bionic - env: DIST=bionic - - - env: DIST=xenial - - - dist: bionic - env: DIST=bionic EXTRA="CMD_CXXFLAGS=-std=c++11" - - - dist: trusty - env: DIST=trusty STATIC=YES EXTRA="CMD_CXXFLAGS=-std=c++11" - - - dist: bionic - compiler: clang - env: DIST=bionic - - - compiler: clang - env: DIST=xenial - - - dist: trusty - compiler: clang - env: DIST=trusty STATIC=YES - -# Cross-compilations to Windows using MinGW and WINE - - - env: WINE=32 TEST=NO STATIC=YES - compiler: mingw - - - env: WINE=32 TEST=NO STATIC=NO - compiler: mingw - -# Cross-compilation to RTEMS - - - env: RTEMS=4.10 TEST=NO - - - env: RTEMS=4.9 TEST=NO - -# MacOS build - - - os: osx - env: - - EXTRA="CMD_CFLAGS=-mmacosx-version-min=10.7" - - EXTRA1="CMD_CXXFLAGS=-mmacosx-version-min=10.7 -std=c++11 -stdlib=libc++" - - EXTRA2="CMD_LDXFLAGS=-mmacosx-version-min=10.7 -std=c++11 -stdlib=libc++" - compiler: clang