Skip to content

Commit

Permalink
Add Linux CI Support
Browse files Browse the repository at this point in the history
Signed-off-by: Michael Jackson <mike.jackson@bluequartz.net>
  • Loading branch information
imikejackson committed Jun 24, 2023
1 parent dc41bff commit 455921d
Show file tree
Hide file tree
Showing 8 changed files with 416 additions and 0 deletions.
68 changes: 68 additions & 0 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: linux

on:
pull_request:
branches:
- develop
- master
push:
branches:
- develop
- master

jobs:
build:
env:
VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite'
strategy:
fail-fast: false
matrix:
os:
- ubuntu-22.04
cxx:
- g++-12
- g++-12
- clang++-14
include:
- cxx: g++-12
cc: gcc-12
- cxx: g++-12
cc: gcc-12
- cxx: clang++-14
cc: clang-14
runs-on: ${{matrix.os}}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: true
- name: Add C++ Problem Matcher
uses: ammaraskar/gcc-problem-matcher@0.2.0
- name: Install Dependencies
run: |
sudo apt-get -y install ninja-build
- name: Setup NuGet Credentials
shell: bash
run: |
mono `vcpkg fetch nuget | tail -n 1` \
sources add \
-source "https://nuget.pkg.github.com/BlueQuartzSoftware/index.json" \
-storepasswordincleartext \
-name "GitHub" \
-username "BlueQuartzSoftware" \
-password "${{secrets.GITHUB_TOKEN}}"
mono `vcpkg fetch nuget | tail -n 1` \
setapikey "${{secrets.GITHUB_TOKEN}}" \
-source "https://nuget.pkg.github.com/BlueQuartzSoftware/index.json"
- name: Configure
env:
CC: ${{matrix.cc}}
CXX: ${{matrix.cxx}}
run: |
cmake --preset ci-linux-x64 ${{github.workspace}}
- name: Build
run: |
cmake --build --preset ci-linux-x64
- name: Test
run: |
ctest --preset ci-linux-x64
279 changes: 279 additions & 0 deletions CMakePresets.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,279 @@
{
"version": 3,
"cmakeMinimumRequired": {
"major": 3,
"minor": 24,
"patch": 0
},
"configurePresets": [
{
"name": "ci",
"displayName": "CI build",
"description": "Build configuration for GitHub Actions CI",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": {
"type": "FILEPATH",
"value": "$env{VCPKG_INSTALLATION_ROOT}/scripts/buildsystems/vcpkg.cmake"
},
"DREAM3D_ANACONDA": {
"type": "BOOL",
"value": "ON"
},
"CMP_TBB_ENABLE_COPY_INSTALL": {
"type": "BOOL",
"value": "OFF"
},
"EbsdLib_ENABLE_TESTING": {
"type": "BOOL",
"value": "ON"
},
"EbsdLib_BUILD_TOOLS": {
"type": "BOOL",
"value": "ON"
},
"EbsdLib_ENABLE_HDF5": {
"type": "BOOL",
"value": "ON"
},
"EbsdLib_BUILD_H5SUPPORT": {
"type": "BOOL",
"value": "OFF"
},
"EbsdLib_CMAKE_CONFIG_INSTALL_DIR": {
"type": "STRING",
"value": "EbsdLib"
},
"TBB_STATUS_PRINTED": {
"type": "BOOL",
"value": "ON"
},
"GVS_GIT_HASH": {
"type": "STRING",
"value": "6c0e5ec992472eeae5df9d627de524b59b971fab"
},
"VCPKG_MANIFEST_FEATURES": {
"type": "STRING",
"value": "tests;parallel"
},
"VCPKG_OVERLAY_TRIPLETS": {
"type": "PATH",
"value": "${sourceDir}/cmake/triplets"
}
}
},
{
"name": "ci-asan",
"inherits": "ci",
"cacheVariables": {
"CMAKE_BUILD_TYPE": {
"type": "STRING",
"value": "Debug"
},
"CMAKE_CXX_FLAGS": {
"type": "STRING",
"value": "-O1 -fsanitize=address -fno-omit-frame-pointer"
},
"VCPKG_TARGET_TRIPLET": {
"type": "STRING",
"value": "x64-linux-dynamic"
},
"VCPKG_HOST_TRIPLET": {
"type": "STRING",
"value": "x64-linux-dynamic"
}
}
},
{
"name": "ci-windows-v142",
"displayName": "ci-windows-v142",
"description": "Build configuration for GitHub Actions CI",
"generator": "Visual Studio 17 2022",
"inherits": "ci",
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": {
"type": "STRING",
"value": "x64-windows-v142"
},
"VCPKG_HOST_TRIPLET": {
"type": "STRING",
"value": "x64-windows-v142"
}
}
},
{
"name": "ci-windows-v143",
"displayName": "ci-windows-v143",
"description": "Build configuration for GitHub Actions CI",
"generator": "Visual Studio 17 2022",
"inherits": "ci",
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": {
"type": "STRING",
"value": "x64-windows-v143"
},
"VCPKG_HOST_TRIPLET": {
"type": "STRING",
"value": "x64-windows-v143"
}
}
},
{
"name": "ci-macos-x64",
"displayName": "ci-macos-x64",
"description": "Build configuration for GitHub Actions CI",
"generator": "Ninja",
"inherits": "ci",
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": {
"type": "STRING",
"value": "x64-osx-v11"
},
"VCPKG_HOST_TRIPLET": {
"type": "STRING",
"value": "x64-osx-v11"
}
}
},
{
"name": "ci-macos-arm64",
"displayName": "ci-macos-arm64",
"description": "Build configuration for GitHub Actions CI",
"generator": "Ninja",
"inherits": "ci",
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": {
"type": "STRING",
"value": "arm64-osx-dynamic"
},
"VCPKG_HOST_TRIPLET": {
"type": "STRING",
"value": "arm64-osx-dynamic"
}
}
},
{
"name": "ci-linux-x64",
"displayName": "ci-linux-x64",
"description": "Build configuration for GitHub Actions CI",
"generator": "Ninja",
"inherits": "ci",
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": {
"type": "STRING",
"value": "x64-linux-dynamic"
},
"VCPKG_HOST_TRIPLET": {
"type": "STRING",
"value": "x64-linux-dynamic"
}
}
}
],
"buildPresets": [
{
"name": "ci-windows-v142",
"displayName": "ci-windows-v142 Release build",
"description": "Build configuration for GitHub actions CI",
"configurePreset": "ci-windows-v142",
"configuration": "Release"
},
{
"name": "ci-windows-v143",
"displayName": "ci-windows-v143 CI build",
"description": "Build configuration for GitHub actions CI",
"configurePreset": "ci-windows-v143",
"configuration": "Release"
},
{
"name": "ci-macos-x64",
"displayName": "ci-macos-x64 CI build",
"description": "Build configuration for GitHub actions CI",
"configurePreset": "ci-macos-x64",
"configuration": "Release"
},
{
"name": "ci-macos-arm64",
"displayName": "ci-macos-arm64 CI build",
"description": "Build configuration for GitHub actions CI",
"configurePreset": "ci-macos-arm64",
"configuration": "Release"
},
{
"name": "ci-linux-x64",
"displayName": "ci-linux-x64 CI build",
"description": "Build configuration for GitHub actions CI",
"configurePreset": "ci-linux-x64",
"configuration": "Release"
},
{
"name": "ci-asan",
"displayName": "asan CI build",
"description": "Build configuration for GitHub actions CI",
"configurePreset": "ci-asan"
}
],
"testPresets": [
{
"name": "ci-windows-v142",
"displayName": "ci-windows-v142 CI build",
"description": "Build configuration for GitHub actions CI",
"configurePreset": "ci-windows-v142",
"configuration": "Release",
"output": {
"outputOnFailure": true
}
},
{
"name": "ci-windows-v143",
"displayName": "ci-windows-v143 CI build",
"description": "Build configuration for GitHub actions CI",
"configurePreset": "ci-windows-v143",
"configuration": "Release",
"output": {
"outputOnFailure": true
}
},
{
"name": "ci-macos-x64",
"displayName": "ci-macos-x64 CI build",
"description": "Build configuration for GitHub actions CI",
"configurePreset": "ci-macos-x64",
"configuration": "Release",
"output": {
"outputOnFailure": true
}
},
{
"name": "ci-macos-arm64",
"displayName": "ci-macos-arm64 CI build",
"description": "Build configuration for GitHub actions CI",
"configurePreset": "ci-macos-arm64",
"configuration": "Release",
"output": {
"outputOnFailure": true
}
},
{
"name": "ci-linux-x64",
"displayName": "ci-linux-x64 CI build",
"description": "Build configuration for GitHub actions CI",
"configurePreset": "ci-linux-x64",
"configuration": "Release",
"output": {
"outputOnFailure": true
}
},
{
"name": "ci-asan",
"displayName": "asan CI build",
"description": "Build configuration for GitHub actions CI",
"configurePreset": "ci-asan",
"output": {
"outputOnFailure": true
}
}
]
}

7 changes: 7 additions & 0 deletions cmake/triplets/arm64-osx-v11.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
set(VCPKG_TARGET_ARCHITECTURE arm64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE dynamic)

set(VCPKG_CMAKE_SYSTEM_NAME Darwin)
set(VCPKG_OSX_ARCHITECTURES arm64)
set(VCPKG_OSX_DEPLOYMENT_TARGET 11.0)
7 changes: 7 additions & 0 deletions cmake/triplets/x64-osx-v11.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE dynamic)

set(VCPKG_CMAKE_SYSTEM_NAME Darwin)
set(VCPKG_OSX_ARCHITECTURES x86_64)
set(VCPKG_OSX_DEPLOYMENT_TARGET 11.0)
4 changes: 4 additions & 0 deletions cmake/triplets/x64-windows-v142.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE dynamic)
set(VCPKG_PLATFORM_TOOLSET "v142")
4 changes: 4 additions & 0 deletions cmake/triplets/x64-windows-v143.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE dynamic)
set(VCPKG_PLATFORM_TOOLSET v143)
20 changes: 20 additions & 0 deletions vcpkg-configuration.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"default-registry": null,
"registries": [
{
"kind": "git",
"repository": "https://github.com/bluequartzsoftware/complex-registry",
"packages": [
"h5support",
"hdf5",
"lz4",
"tbb",
"vcpkg-cmake",
"vcpkg-cmake-config",
"zlib",
"zstd"
],
"baseline": "a7f8a05a400087e5dd4b0a5e46ece1b2123dc608"
}
]
}

0 comments on commit 455921d

Please sign in to comment.