Adds GitHub actions
* for building branches * for building releases
This commit is contained in:
parent
44e17163ae
commit
d408368433
106
.github/workflows/build.yml
vendored
Normal file
106
.github/workflows/build.yml
vendored
Normal file
|
@ -0,0 +1,106 @@
|
|||
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 }}
|
||||
|
112
.github/workflows/build_tags.yml
vendored
Normal file
112
.github/workflows/build_tags.yml
vendored
Normal file
|
@ -0,0 +1,112 @@
|
|||
name: C/C++ CI - tags
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*'
|
||||
|
||||
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 tag name
|
||||
id: get_tag_name
|
||||
run: echo ::set-output name=TAG_NAME::${GITHUB_REF/refs\/tags\//}
|
||||
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_tag_name.outputs.TAG_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_tag_name.outputs.TAG_NAME }}
|
||||
path: ddl_${{ matrix.os }}-${{ matrix.arch_value }}-${{ matrix.toolset_value }}-${{ steps.get_tag_name.outputs.TAG_NAME }}
|
||||
- name: Create Release package
|
||||
env:
|
||||
PACKAGE_NAME: ddl_${{ matrix.os }}-${{ matrix.arch_value }}-${{ matrix.toolset_value }}-${{ steps.get_tag_name.outputs.TAG_NAME }}
|
||||
run: |
|
||||
${{ matrix.compress_cmd }}
|
||||
${{ matrix.list_dir_cmd }}
|
||||
- name: Upload binaries to release
|
||||
uses: svenstaro/upload-release-action@v1-release
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: ddl_${{ matrix.os }}-${{ matrix.arch_value }}-${{ matrix.toolset_value }}-${{ steps.get_tag_name.outputs.TAG_NAME }}.${{ matrix.compressed_suffix }}
|
||||
asset_name: ddl_${{ matrix.os }}-${{ matrix.arch_value }}-${{ matrix.toolset_value }}-${{ steps.get_tag_name.outputs.TAG_NAME }}.${{ matrix.compressed_suffix }}
|
||||
tag: ${{ github.ref }}
|
||||
overwrite: true
|
Loading…
Reference in a new issue