-
Notifications
You must be signed in to change notification settings - Fork 1
125 lines (110 loc) · 4.67 KB
/
build.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
name: HDPS-core
on:
push:
branches:
- master
- main
- release/*
- feature/*
pull_request:
workflow_dispatch:
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
# Get centrally defined build matrix
jobs:
prepare_matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.matrix_setup.outputs.matrix }}
steps:
- name: Get matrix from file
id: matrix_setup
uses: ManiVaultStudio/github-actions/matrix_setup@main
cross-platform-build:
name: Cross platform build
needs: prepare_matrix
# The CMake configure and build commands are platform agnostic and should work equally
# well on Windows or Mac. You can convert this to a matrix build if you need
# cross-platform coverage.
# See: https://docs.github.com/en/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ${{ matrix.os }}
strategy:
matrix:
include: ${{ fromJson(needs.prepare_matrix.outputs.matrix) }}
steps:
- name: Checkout the source
if: ${{ github.event_name != 'pull_request'}}
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
- name: Checkout the source (pull_request version)
if: ${{ github.event_name == 'pull_request'}}
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
submodules: recursive
fetch-depth: 0
- name: Select Xcode for Mac only
if: startsWith(runner.os, 'macOS')
run: |
sudo xcode-select -switch /Applications/Xcode_${{matrix.build-xcode-version}}.app
- name: Setup python version
uses: actions/setup-python@v5
with:
python-version: "3.11"
# windows-2016 need the SSHAgentFeature added
#- name: Start ssh key agent
# if: matrix.os == 'windows-2019'
# run: |
# choco install --no-progress -my openssh --params '"/SSHAgentFeature"'
# refreshenv
- name: Start ssh key agent
uses: webfactory/ssh-agent@v0.9.0
with:
ssh-private-key: ${{ secrets.RULESSUPPORT_DEPLOY_KEY }}
- name: Install SSH deploy key for rulessupport
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.RULESSUPPORT_DEPLOY_KEY }}
known_hosts: github.com AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
- name: Windows build
if: startsWith(runner.os, 'Windows')
uses: ManiVaultStudio/github-actions/conan_windows_build@main
with:
conan-visual-version: ${{matrix.build-cversion}}
conan-visual-runtime: ${{matrix.build-runtime}}
conan-build-type: ${{matrix.build-config}}
conan-user: ${{secrets.LKEB_UPLOAD_USER}}
conan-password: ${{secrets.LKEB_UPLOAD_USER_PASSWORD}}
conan-pem: ${{secrets.LKEB_UPLOAD_CERT_CHAIN}}
rs_ssh_key: ${{ secrets.RULESSUPPORT_DEPLOY_KEY }}
- name: Linux build
if: startsWith(matrix.os, 'ubuntu')
uses: ManiVaultStudio/github-actions/conan_linuxmac_build@main
with:
conan-compiler: ${{matrix.build-compiler}}
conan-cc: ${{matrix.build-cc}}
conan-cxx: ${{matrix.build-cxx}}
conan-compiler-version: ${{matrix.build-cversion}}
conan-libcxx-version: ${{matrix.build-libcxx}}
conan-build-type: ${{matrix.build-config}}
conan-build-os: ${{matrix.build-os}}
conan-user: ${{secrets.LKEB_UPLOAD_USER}}
conan-password: ${{secrets.LKEB_UPLOAD_USER_PASSWORD}}
conan-pem: ${{secrets.LKEB_UPLOAD_CERT_CHAIN}}
- name: Mac build
if: startsWith(matrix.os, 'macos')
uses: ManiVaultStudio/github-actions/conan_linuxmac_build@main
with:
conan-compiler: ${{matrix.build-compiler}}
conan-cc: ${{matrix.build-cc}}
conan-cxx: ${{matrix.build-cxx}}
conan-compiler-version: ${{matrix.build-cversion}}
conan-libcxx-version: ${{matrix.build-libcxx}}
conan-build-type: ${{matrix.build-config}}
conan-build-os: ${{matrix.build-os}}
conan-user: ${{secrets.LKEB_UPLOAD_USER}}
conan-password: ${{secrets.LKEB_UPLOAD_USER_PASSWORD}}
conan-pem: ${{secrets.LKEB_UPLOAD_CERT_CHAIN}}