-vcpkg is a submodule: useful to have versioning control of the dependencies; -use run-cmake action for building both linux and windows; -use vcpkg response file installing dependencies; same is to be used on CI and locally by devs;

This commit is contained in:
luca 2020-03-02 22:24:58 -08:00 committed by Magne Sjaastad
parent dde5d09791
commit d2e51bdb9b
5 changed files with 37 additions and 26 deletions

View File

@ -11,15 +11,13 @@ jobs:
include:
- os: windows-latest
triplet: x64-windows
vcpkgGitCommitId: '6282cab61d175974b1af06473db584b9b80dcd48'
vcpkgPackages: 'grpc'
- os: ubuntu-latest
triplet: x64-linux
vcpkgGitCommitId: '6282cab61d175974b1af06473db584b9b80dcd48'
vcpkgPackages: 'grpc'
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v1
with:
submodules: true
- name: Install Qt
uses: jurplel/install-qt-action@v2.5.0
with:
@ -37,36 +35,39 @@ jobs:
- name: Cache vcpkg artifacts
uses: actions/cache@v1
env:
cache-name: cache-vcpkg-modules
vcpkgResponseFile: '${{ github.workspace }}/vcpkg_${{ matrix.triplet }}.txt'
with:
path: ${{ github.workspace }}/vcpkg/
key: ${{ env.cache-name }}-${{ runner.os }}
# Ensure the cache is invalidated any time vcpkg version changes, or a different set of packages is being used.
key: ${{ hashFiles( env.vcpkgResponseFile ) }}-${{ hashFiles('.git/modules/vcpkg/HEAD') }}-${{ runner.os }}
- name: Run vcpkg
uses: lukka/run-vcpkg@v0.10
uses: lukka/run-vcpkg@v0
id: runvcpkg
env:
vcpkgResponseFile: '${{ github.workspace }}/vcpkg_${{ matrix.triplet }}.txt'
with:
vcpkgArguments: '${{ matrix.vcpkgPackages }}'
vcpkgTriplet: '${{ matrix.triplet }}'
vcpkgGitCommitId: '${{ matrix.vcpkgGitCommitId }}'
vcpkgArguments: '@${{ env.vcpkgResponseFile }}'
vcpkgDirectory: '${{ github.workspace }}/vcpkg'
- name: Prints outputs of run-vcpkg task
run: echo "'${{ steps.runvcpkg.outputs.RUNVCPKG_VCPKG_ROOT_OUT }}' '${{ steps.runvcpkg.outputs.RUNVCPKG_VCPKG_TRIPLET_OUT }}' "
- name: Build ResInsight-x64 Windows
if: "contains( matrix.os, 'windows')"
- name: Build ResInsight-x64
uses: lukka/run-cmake@v0
with:
cmakeListsOrSettingsJson: CMakeListsTxtAdvanced
cmakeAppendedArgs: -DRESINSIGHT_ENABLE_GRPC=true -DRESINSIGHT_GRPC_PYTHON_EXECUTABLE=python -DRESINSIGHT_ENABLE_PRECOMPILED_HEADERS=true -DRESINSIGHT_ENABLE_UNITY_BUILD=true
buildDirectory: ${{ github.workspace }}/cmakebuild
buildWithCMakeArgs: '--config Release --target package'
useVcpkgToolchainFile: true
- name: Remove packages/_CPack_Packages
shell: bash
run: |
mkdir cmakebuild
cd cmakebuild
cmake .. -DRESINSIGHT_ENABLE_GRPC=true -DRESINSIGHT_GRPC_PYTHON_EXECUTABLE=python -DRESINSIGHT_ENABLE_PRECOMPILED_HEADERS=true -DRESINSIGHT_ENABLE_UNITY_BUILD=true -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake -A x64
cmake --build . --config Release --target PACKAGE
rd packages/_CPack_Packages -Recurse
- name: Build ResInsight-x64 Linux
if: "contains( matrix.os, 'ubuntu')"
run: |
mkdir cmakebuild
cd cmakebuild
cmake .. -DRESINSIGHT_ENABLE_GRPC=true -DRESINSIGHT_GRPC_PYTHON_EXECUTABLE=python -DRESINSIGHT_ENABLE_PRECOMPILED_HEADERS=true -DRESINSIGHT_ENABLE_UNITY_BUILD=true -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake
cmake --build . --config Release
make package
rm -rf packages/_CPack_Packages
- name: dir
run: find ${{ runner.workspace }}
if: "!contains( matrix.os, 'windows')"
- name: dir
run: gci -recurse ${{ runner.workspace }}
if: contains( matrix.os, 'windows')
- name: Test with pytest
if: "contains( matrix.os, 'windows')" # To be used when RESINSIGHT_GRPC_PYTHON_EXECUTABLE can be 'python' without extention in PATH
env:

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "vcpkg"]
path = vcpkg
url = https://github.com/microsoft/vcpkg

1
vcpkg Submodule

@ -0,0 +1 @@
Subproject commit 6282cab61d175974b1af06473db584b9b80dcd48

3
vcpkg_x64-linux.txt Normal file
View File

@ -0,0 +1,3 @@
grpc
--triplet
x64-linux

3
vcpkg_x64-windows.txt Normal file
View File

@ -0,0 +1,3 @@
grpc
--triplet
x64-windows