13
13
required : false
14
14
type : string
15
15
default : " .build"
16
- conan_remote_name :
17
- description : " The name of the Conan remote to use."
18
- required : true
19
- type : string
20
- conan_remote_url :
21
- description : " The URL of the Conan endpoint to use."
22
- required : true
23
- type : string
24
16
dependencies_force_build :
25
17
description : " Force building of all dependencies."
26
18
required : false
45
37
codecov_token :
46
38
description : " The Codecov token to use for uploading coverage reports."
47
39
required : false
48
- conan_remote_username :
49
- description : " The username for logging into the Conan remote. If not provided, the dependencies will not be uploaded."
50
- required : false
51
- conan_remote_password :
52
- description : " The password for logging into the Conan remote. If not provided, the dependencies will not be uploaded."
53
- required : false
54
40
55
41
concurrency :
56
42
group : ${{ github.workflow }}-${{ github.ref }}-${{ inputs.os }}
@@ -63,20 +49,10 @@ defaults:
63
49
jobs :
64
50
# Generate the strategy matrix to be used by the following job.
65
51
generate-matrix :
66
- runs-on : ubuntu-latest
67
- steps :
68
- - name : Checkout repository
69
- uses : actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
70
- - name : Set up Python
71
- uses : actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
72
- with :
73
- python-version : 3.13
74
- - name : Generate strategy matrix
75
- working-directory : .github/scripts/strategy-matrix
76
- id : generate
77
- run : python generate.py ${{ inputs.strategy_matrix == 'all' && '--all' || '' }} --config=${{ inputs.os }}.json >> "${GITHUB_OUTPUT}"
78
- outputs :
79
- matrix : ${{ steps.generate.outputs.matrix }}
52
+ uses : ./.github/workflows/reusable-strategy-matrix.yml
53
+ with :
54
+ os : ${{ inputs.os }}
55
+ strategy_matrix : ${{ inputs.strategy_matrix }}
80
56
81
57
# Build and test the binary.
82
58
build-test :
@@ -148,40 +124,16 @@ jobs:
148
124
echo 'Checking nproc version.'
149
125
nproc --version
150
126
151
- - name : Set up Conan configuration
152
- run : |
153
- echo 'Installing configuration.'
154
- cat conan/global.conf ${{ inputs.os == 'linux' && '>>' || '>' }} $(conan config home)/global.conf
155
-
156
- echo 'Conan configuration:'
157
- conan config show '*'
158
- - name : Set up Conan profile
159
- run : |
160
- echo 'Installing profile.'
161
- conan config install conan/profiles/default -tf $(conan config home)/profiles/
162
-
163
- echo 'Conan profile:'
164
- conan profile show
165
- - name : Set up Conan remote
166
- shell : bash
167
- run : |
168
- echo "Adding Conan remote '${{ inputs.conan_remote_name }}' at ${{ inputs.conan_remote_url }}."
169
- conan remote add --index 0 --force ${{ inputs.conan_remote_name }} ${{ inputs.conan_remote_url }}
170
-
171
- echo 'Listing Conan remotes.'
172
- conan remote list
127
+ - name : Setup Conan
128
+ uses : ./.github/actions/setup-conan
173
129
174
130
- name : Build dependencies
175
131
uses : ./.github/actions/build-deps
176
132
with :
177
133
build_dir : ${{ inputs.build_dir }}
178
134
build_type : ${{ matrix.build_type }}
179
- conan_remote_name : ${{ inputs.conan_remote_name }}
180
- conan_remote_url : ${{ inputs.conan_remote_url }}
181
- conan_remote_username : ${{ secrets.conan_remote_username }}
182
- conan_remote_password : ${{ secrets.conan_remote_password }}
183
135
force_build : ${{ inputs.dependencies_force_build }}
184
- force_upload : ${{ inputs.dependencies_force_upload }}
136
+
185
137
- name : Build and test binary
186
138
uses : ./.github/actions/build-test
187
139
with :
0 commit comments