name: linux on: push: pull_request: schedule: - cron: '0 1 * * SUN' workflow_dispatch: jobs: build: strategy: matrix: include: - CC: gcc-4.8 CXX: g++-4.8 PackageDeps: g++-4.8 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU os: ubuntu-16.04 - CC: gcc-6 CXX: g++-6 PackageDeps: g++-6 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU os: ubuntu-18.04 - CC: gcc-7 CXX: g++-7 PackageDeps: g++-7 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU os: ubuntu-18.04 - CC: gcc-8 CXX: g++-8 PackageDeps: g++-8 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU os: ubuntu-18.04 - CC: gcc-9 CXX: g++-9 PackageDeps: g++-9 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU os: ubuntu-18.04 - CC: gcc-10 CXX: g++-10 PackageDeps: g++-10 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU os: ubuntu-18.04 - CC: clang-5.0 CXX: clang++-5.0 PackageDeps: clang-5.0 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux_clang.GNU os: ubuntu-16.04 - CC: clang-6.0 CXX: clang++-6.0 PackageDeps: clang-6.0 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux_clang.GNU os: ubuntu-18.04 - CC: clang-7 CXX: clang++-7 PackageDeps: clang-7 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux_clang.GNU os: ubuntu-18.04 - CC: clang-8 CXX: clang++-8 PackageDeps: clang-8 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux_clang.GNU os: ubuntu-18.04 - CC: clang-9 CXX: clang++-9 PackageDeps: clang-9 Repo: llvm-toolchain-$(lsb_release -cs)-9 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux_clang.GNU os: ubuntu-18.04 - CC: clang-10 CXX: clang++-10 PackageDeps: clang-10 Repo: llvm-toolchain-$(lsb_release -cs)-10 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux_clang.GNU os: ubuntu-20.04 - CC: clang-11 CXX: clang++-11 PackageDeps: clang-11 Repo: llvm-toolchain-$(lsb_release -cs)-11 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux_clang.GNU os: ubuntu-20.04 - feature: CORBA/e micro CC: gcc-10 CXX: g++-10 PackageDeps: g++-10 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU os: ubuntu-18.04 optional_feature: corba_e_micro=1 optional_macros: corba_e_micro=1 - feature: CORBA/e compact CC: gcc-10 CXX: g++-10 PackageDeps: g++-10 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU os: ubuntu-18.04 optional_feature: corba_e_compact=1 optional_macros: corba_e_compact=1 - feature: ACE for TAO CC: gcc-10 CXX: g++-10 PackageDeps: g++-10 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU os: ubuntu-20.04 optional_feature: ace_for_tao=1 optional_macros: ace_for_tao=1 - feature: wchar CC: gcc-10 CXX: g++-10 PackageDeps: g++-10 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU os: ubuntu-20.04 optional_feature: uses_wchar=1 optional_macros: inline=0 - feature: CodeQL CC: gcc-10 CXX: g++-10 PackageDeps: g++-10 platform_file: include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU os: ubuntu-20.04 runs-on: ${{ matrix.os }} name: ${{ matrix.os }} ${{ matrix.CXX }} ${{ matrix.feature }} env: ACE_ROOT: ${{ github.workspace }}/ACE TAO_ROOT: ${{ github.workspace }}/TAO MPC_ROOT: ${{ github.workspace }}/MPC CC: ${{ matrix.CC }} CXX: ${{ matrix.CXX }} steps: - name: checkout ACE/TAO uses: actions/checkout@v2 - name: checkout MPC uses: actions/checkout@v2 with: repository: DOCGroup/MPC path: ${{ env.MPC_ROOT }} - name: Add Repo run: | wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add - sudo apt-add-repository "deb http://apt.llvm.org/$(lsb_release -cs)/ ${{ matrix.Repo }} main" if: matrix.Repo != '' - name: Add packages run: | sudo apt-get --yes update sudo apt-get --yes install libxerces-c-dev libssl-dev ${{ matrix.PackageDeps }} - name: create $ACE_ROOT/ace/config.h run: | '#include "ace/config-linux.h"' > ${env:ACE_ROOT}/ace/config.h shell: pwsh - name: create $ACE_ROOT/include/makeinclude/platform_macros.GNU run: | 'ipv6=1' > ${env:ACE_ROOT}/include/makeinclude/platform_macros.GNU 'xerces3=1' >> ${env:ACE_ROOT}/include/makeinclude/platform_macros.GNU 'ssl=1' >> ${env:ACE_ROOT}/include/makeinclude/platform_macros.GNU shell: pwsh - name: add optional optional macros run: | '${{ matrix.optional_macros }}' >> ${env:ACE_ROOT}/include/makeinclude/platform_macros.GNU shell: pwsh if: matrix.optional_macros != '' - name: extend $ACE_ROOT/include/makeinclude/platform_macros.GNU run: | '${{ matrix.platform_file }}' >> ${env:ACE_ROOT}/include/makeinclude/platform_macros.GNU shell: pwsh - name: create $ACE_ROOT/bin/MakeProjectCreator/config/default.features run: | 'ipv6=1' > ${env:ACE_ROOT}/bin/MakeProjectCreator/config/default.features 'xerces3=1' >> ${env:ACE_ROOT}/bin/MakeProjectCreator/config/default.features 'ssl=1' >> ${env:ACE_ROOT}/bin/MakeProjectCreator/config/default.features 'versioned_namespace=1' >> ${env:ACE_ROOT}/bin/MakeProjectCreator/config/default.features shell: pwsh - name: add optional optional feature run: | '${{ matrix.optional_feature }}' >> ${env:ACE_ROOT}/bin/MakeProjectCreator/config/default.features if: matrix.optional_feature != '' shell: pwsh - name: initialize CodeQL uses: github/codeql-action/init@v1 with: languages: cpp if: matrix.feature == 'CodeQL' - name: Run mwc.pl on $(TAO_ROOT)/TAO_ACE.mwc run: | perl ${env:ACE_ROOT}/bin/mwc.pl -type gnuace ${env:TAO_ROOT}/TAO_ACE.mwc -workers 4 shell: pwsh - name: Run mwc.pl on $(ACE_ROOT)/tests/tests.mwc run: | perl ${env:ACE_ROOT}/bin/mwc.pl -type gnuace ${env:ACE_ROOT}/tests/tests.mwc -workers 4 shell: pwsh - name: Build TAO_ACE project run: | make -j 6 -C ${env:TAO_ROOT} shell: pwsh - name: Build ACE/tests project run: | make -j 6 -C ${env:ACE_ROOT}/tests shell: pwsh - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v1 if: matrix.feature == 'CodeQL'