Skip to content

install_vcpkg_packages #83

install_vcpkg_packages

install_vcpkg_packages #83

name: install_vcpkg_packages
on:
workflow_dispatch:
jobs:
job:
runs-on: ${{ matrix.os }}
name: ${{ matrix.full_name }}-install_vcpkg_packages
env:
VCPKG_BINARY_SOURCES: 'clear;nuget,github,readwrite'
FRAMEWORKCI_ROOT_PATH: '${{ github.workspace }}/../../build_base/framework-ci'
BUILD_COMMANDS_ROOT: '${{ github.workspace }}/../../build_base/framework-ci/_build'
VCPKG_DEFAULT_BINARY_CACHE: ${{ github.workspace }}/builddir/vcpkg_archives
VCPKG_OVERLAY_PORTS: ${{ github.workspace }}/../../build_base/framework-ci/vcpkg_overlays/${{ matrix.vcpkg_overlay }}
VCPKG_DISABLE_METRICS: 1
VCPKG_BUILD_DIR: '${{ github.workspace }}/../../build_base/framework-ci/vcpkg'
VCPKG_PREINSTALL_HASH_PACKAGE_NAME: '1.5.5-${{ matrix.full_name }}-${{ matrix.triplet }}'
VCPKG_PUSH_HASH_PACKAGE_NAME: '1.5.7-${{ matrix.full_name }}-${{ matrix.triplet }}'
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
DOTNET_CLI_TELEMETRY_OPTOUT: true
DOTNET_VERSION: '6.x'
strategy:
fail-fast: false
matrix:
include:
- os: 'windows-2019'
full_name: 'windows-2019-msmpi'
triplet: x64-windows
nugetexe: nuget.exe
vcpkg_overlay: none
mono: ''
- os: 'windows-2019'
full_name: 'windows-2019-intelmpi'
triplet: x64-windows
nugetexe: nuget.exe
vcpkg_overlay: win32-intelmpi
mono: ''
- os: 'windows-2022'
full_name: 'windows-2022-intelmpi'
triplet: x64-windows
nugetexe: nuget.exe
vcpkg_overlay: win32-intelmpi
mono: ''
- os: 'ubuntu-20.04'
full_name: 'ubuntu-20.04'
triplet: 'x64-linux-dynamic'
nugetexe: /usr/local/bin/nuget.exe
vcpkg_overlay: none
# To run `nuget.exe` on non-Windows platforms, we must use `mono`.
mono: 'mono'
- os: 'ubuntu-22.04'
full_name: 'ubuntu-22.04'
triplet: 'x64-linux-dynamic'
nugetexe: /usr/local/bin/nuget.exe
vcpkg_overlay: none
# To run `nuget.exe` on non-Windows platforms, we must use `mono`.
mono: 'mono'
# - os: 'ubuntu-24.04'
# full_name: 'ubuntu-24.04'
# triplet: 'x64-linux-dynamic'
# nugetexe: /usr/local/bin/nuget.exe
# vcpkg_overlay: none
# # To run `nuget.exe` on non-Windows platforms, we must use `mono`.
# mono: 'mono'
steps:
- name: Checkout repo
uses: actions/checkout@v3
with:
submodules: true
- name: Move framework-ci
shell: 'bash'
run: |
mkdir -p '${{ env.FRAMEWORKCI_ROOT_PATH }}'
ls -lart '${{ github.workspace }}'
cd '${{ github.workspace }}' && mv _build docs nuget.config vcpkg vcpkg_overlays '${{ env.FRAMEWORKCI_ROOT_PATH }}'
ls -lart '${{ env.FRAMEWORKCI_ROOT_PATH }}'
- name: Setup environment
shell: 'bash'
run: |
echo "${RUNNER_TEMP}/local_bin_dir/bin" >> $GITHUB_PATH
echo "${RUNNER_TEMP}/local_bin_dir/cmake/bin" >> $GITHUB_PATH
echo Path variable is: ${PATH}
echo CMake path is: `which cmake`
cmake --version
cmake -DNUGET_PASSWORD="${{ secrets.GITHUB_TOKEN }}" -DSETUP_VCPKG_OVERLAY=${{ matrix.vcpkg_overlay }} -P '${{ env.BUILD_COMMANDS_ROOT }}/Setup.cmake'
- name: Remove installed version of cmake if needed
shell: 'bash'
if: ${{ matrix.os == 'windows-2019' || matrix.os == 'windows-2022' }}
run: |
rm '/c/Program Files/CMake/bin/cmake'
- name: 'Display environment after setup'
shell: 'bash'
continue-on-error: true
run: |
echo 'VCPKG_OVERLAYS_PORTS = {{ env.VCPKG_OVERLAY_PORTS }}'
ls -lart '${{ env.VCPKG_OVERLAY_PORTS }}'
echo 'VCPKG_BUILD_DIR=${VCPKG_BUILD_DIR}'
echo 'Content of local_bin_dir'
ls -lart "${RUNNER_TEMP}/local_bin_dir"
echo 'Content of local_bin_dir/bin'
ls -lart "${RUNNER_TEMP}/local_bin_dir/bin"
echo 'Content of local_bin_dir/cmake'
ls -lart "${RUNNER_TEMP}/local_bin_dir/cmake"
echo Path variable is: ${PATH}
echo CMake path is: `which cmake`
echo Ninja path is: `which ninja`
cmake --version
- name: 'Untar vcpkg bootstrap cache'
shell: 'bash'
continue-on-error: true
run: |
cmake -DHASH_PACKAGE_NAME="${{ env.VCPKG_PREINSTALL_HASH_PACKAGE_NAME }}" -DVCPKG_BUILD_DIR='${{ env.VCPKG_BUILD_DIR }}' -P '${{ env.BUILD_COMMANDS_ROOT }}/vcpkg_cache/DoUntar.cmake'
ls -lart '${{ env.VCPKG_BUILD_DIR }}'
ls -lart '${{ env.VCPKG_BUILD_DIR }}'/VcpkgCache*
ls -lart '${{ env.BUILD_COMMANDS_ROOT }}/vcpkg_cache'
- name: Bootstrap vcpkg
shell: 'bash'
run: |
mkdir -p "${{ env.VCPKG_DEFAULT_BINARY_CACHE }}"
ls -lart '${{ env.BUILD_COMMANDS_ROOT }}'
cmake -DVCPKG_BUILD_DIR='${{ env.VCPKG_BUILD_DIR }}' -P '${{ env.BUILD_COMMANDS_ROOT }}/BootstrapVcpkg.cmake'
- name: 'Install vpckg packages'
shell: 'bash'
run: |
${VCPKG_BUILD_DIR}/vcpkg --debug install glib libxml2 mpi parmetis hypre hdf5 hwloc bzip2 lz4 tbb boost-program-options boost-property-tree hiredis gtest --triplet ${{ matrix.triplet }}
- name: 'Create nuget package for vcpkg installed packages'
shell: 'bash'
continue-on-error: true
run: |
cmake -DHASH_PACKAGE_NAME="${{ env.VCPKG_PUSH_HASH_PACKAGE_NAME }}" -DNUGET_API_KEY="${{ secrets.GITHUB_TOKEN }}" -DVCPKG_BUILD_DIR='${{ env.VCPKG_BUILD_DIR }}' -P '${{ env.BUILD_COMMANDS_ROOT }}/vcpkg_cache/DoTar.cmake'
ls -lart '${{ env.VCPKG_BUILD_DIR }}'
du -sh '${{ env.VCPKG_BUILD_DIR }}'
ls -lart '${{ env.BUILD_COMMANDS_ROOT }}/vcpkg_cache'