name: C/C++ CI - branches and PRs on: push: branches: - '**' pull_request: jobs: build-matrix: runs-on: ${{ matrix.os }} strategy: matrix: os: ['windows-latest', 'windows-2016', 'ubuntu-latest'] include: - os: windows-latest install_req_packages: 'choco install doxygen.install ; choco install graphviz' cmake_generator: 'Visual Studio 16 2019' arch_key: '-A' arch_value: 'x64' toolset_key: '-T' toolset_value: 'v141' download_cmd: 'curl -L https://github.com/AEV/${NAME}/releases/download/${VERSION}/${PACKAGE_NAME} -o ./${PACKAGE_NAME_DOWNLOADED}' compress_cmd: '7z a -tzip "${env:PACKAGE_NAME}.zip" "${env:PACKAGE_NAME}"' decompress_cmd: 'unzip "${PACKAGE_NAME_DOWNLOADED}"' compressed_suffix: 'zip' list_dir_cmd: 'dir' workspace_dir: '${env:GITHUB_WORKSPACE}' - os: windows-2016 install_req_packages: 'choco install doxygen.install ; choco install graphviz' cmake_generator: 'Visual Studio 15 2017' arch_key: '-A' arch_value: 'x64' toolset_key: '-T' toolset_value: 'v140' download_cmd: 'curl -L https://github.com/AEV/${NAME}/releases/download/${VERSION}/${PACKAGE_NAME} -o ./${PACKAGE_NAME_DOWNLOADED}' compress_cmd: '7z a -tzip "${env:PACKAGE_NAME}.zip" "${env:PACKAGE_NAME}"' decompress_cmd: 'unzip "${PACKAGE_NAME_DOWNLOADED}"' compressed_suffix: 'zip' list_dir_cmd: 'dir' workspace_dir: '${env:GITHUB_WORKSPACE}' - os: ubuntu-latest install_req_packages: 'sudo apt-get -y install cmake && sudo apt-get -y install doxygen && sudo apt-get -y install graphviz' cmake_generator: 'Unix Makefiles' arch_key: '' arch_value: '' toolset_key: '' toolset_value: '' download_cmd: 'curl -L https://github.com/AEV/${NAME}/releases/download/${VERSION}/${PACKAGE_NAME} -o ${PACKAGE_NAME_DOWNLOADED}' compress_cmd: 'tar -cvzf ${PACKAGE_NAME}.tgz ./${PACKAGE_NAME}' decompress_cmd: 'tar -xvzf ${PACKAGE_NAME_DOWNLOADED}' compressed_suffix: 'tgz' list_dir_cmd: 'ls -la' workspace_dir: '${GITHUB_WORKSPACE}' steps: - uses: actions/checkout@v1 - name: Get the branch name id: get_branch_name run: echo ::set-output name=BRANCH_NAME::${GITHUB_REF/refs\/heads\//} shell: bash - name: get required packages run: ${{ matrix.install_req_packages }} - name: download and extract a_util env: NAME: 'a_util' VERSION: 'v5.6.0' PACKAGE_NAME: a_util_${{ matrix.os }}-${{ matrix.arch_value }}-${{ matrix.toolset_value }}-v5.6.0.${{ matrix.compressed_suffix }} PACKAGE_NAME_DOWNLOADED: a_util.${{ matrix.compressed_suffix }} run: | echo ${{ matrix.download_cmd }} ${{ matrix.download_cmd }} ${{ matrix.decompress_cmd }} ${{ matrix.list_dir_cmd }} shell: bash - name: configure CMake run: | mkdir _build cd _build cmake -G "${{ matrix.cmake_generator }}" ${{ matrix.arch_key }} ${{ matrix.arch_value }} ${{ matrix.toolset_key }} ${{ matrix.toolset_value }} -DCMAKE_BUILD_TYPE="Release" -DCMAKE_INSTALL_PREFIX="../ddl_${{ matrix.os }}-${{ matrix.arch_value }}-${{ matrix.toolset_value }}-${{ steps.get_branch_name.outputs.BRANCH_NAME }}" -Da_util_DIR="${{ matrix.workspace_dir }}/a_util_${{ matrix.os }}-${{ matrix.arch_value }}-${{ matrix.toolset_value }}-v5.6.0/lib/cmake/a_util" .. - name: cmake build run: | cd _build cmake --build . - name: cmake install run: | cd _build cmake --build . --target install #- name: test # run: | # cd _build # ctest - name: Upload artifacts to current run uses: actions/upload-artifact@master with: name: ddl_${{ matrix.os }}-${{ matrix.arch_value }}-${{ matrix.toolset_value }}-${{ steps.get_branch_name.outputs.BRANCH_NAME }} path: ddl_${{ matrix.os }}-${{ matrix.arch_value }}-${{ matrix.toolset_value }}-${{ steps.get_branch_name.outputs.BRANCH_NAME }} - name: Create compressed package env: PACKAGE_NAME: ddl_${{ matrix.os }}-${{ matrix.arch_value }}-${{ matrix.toolset_value }}-${{ steps.get_branch_name.outputs.BRANCH_NAME }} run: | ${{ matrix.compress_cmd }} ${{ matrix.list_dir_cmd }}