# .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: PVXS # Trigger on pushes and PRs to any branch on: push: paths-ignore: - .appveyor.yml pull_request: env: SETUP_PATH: .ci-local CMP: gcc _PVXS_ABORT_ON_CRIT: 1 PVXS_LOG: pvxs.*=WARN jobs: build-pvxs: name: ${{ matrix.os }}/${{ matrix.cmp }}/${{ matrix.configuration }}/${{ matrix.base }}/${{ matrix.wine }}/${{ matrix.libevent }} runs-on: ${{ matrix.os }} # Set environment variables from matrix parameters env: CMP: ${{ matrix.cmp }} BCFG: ${{ matrix.configuration }} BASE: ${{ matrix.base }} WINE: ${{ matrix.wine }} LIBEVENT_TAG: ${{ matrix.libevent }} EXTRA: ${{ matrix.extra }} strategy: fail-fast: false matrix: include: - os: ubuntu-20.04 cmp: gcc configuration: default base: "7.0" extra: "CMD_CPPFLAGS=-Werror" - 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: clang configuration: default base: "7.0" - os: ubuntu-20.04 cmp: gcc configuration: default base: "7.0" libevent: "release-2.0.22-stable" - os: ubuntu-20.04 cmp: gcc configuration: default base: "3.15" - os: ubuntu-20.04 cmp: gcc configuration: default base: "3.14" - 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: "apt-get install" run: | sudo apt-get update sudo apt-get -y install g++-mingw-w64-x86-64 cmake 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 -y install ${{ matrix.cmp }} if: matrix.utoolchain - name: Prepare and compile dependencies run: python .ci/cue.py prepare - name: Build libevent run: python .ci/cue.py exec python .ci-local/libevent.py - name: Build main module run: python .ci/cue.py build - name: Host info run: python .ci/cue.py --add-path "{TOP}/bin/{EPICS_HOST_ARCH}" --add-path "{TOP}/bundle/usr/{EPICS_HOST_ARCH}/lib" exec pvxinfo -D - name: Run main module tests run: python .ci/cue.py --add-path "{TOP}/bundle/usr/{EPICS_HOST_ARCH}/lib" test - name: Collect and show test results run: python .ci/cue.py test-results - name: CDT Check run: ./.ci-local/cdt-check.sh if: runner.os == 'Linux'