-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathaction.yml
More file actions
100 lines (88 loc) · 2.94 KB
/
action.yml
File metadata and controls
100 lines (88 loc) · 2.94 KB
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
name: "setup_conan"
description: "sets up conan"
inputs:
os_name:
required: true
description: "Operating system name"
os_version:
required: true
description: "Operating system version"
arch:
required: true
description: "Architecture"
compiler_name:
required: true
description: "Compiler name"
compiler_version:
required: true
description: "Compiler version"
build_type:
required: true
description: "Build type"
args:
description: "Additional conan args"
default: ""
recipe_repository:
description: "The conan recipe repository to be checked out and added as a conan remote"
default: ""
outputs:
home:
description: "The conan home path"
value: ${{ steps.output.outputs.home }}
host_profile:
description: "The conan host profile to be used"
value: ${{ steps.output.outputs.host_profile }}
build_profile:
description: "The conan build profile to be used"
value: ${{ steps.output.outputs.build_profile }}
args:
description: "The corresponding args that should be used in conan commands afterwards"
value: ${{ steps.output.outputs.args }}
runs:
using: "composite"
steps:
- name: Install conan
shell: bash
run: |
pip3 install conan
- name: Detect conan default profile (used as build profile afterwards)
shell: bash
run: |
conan profile detect
- name: Output
id: output
shell: bash
run: |
echo "home=$(conan config home)" >> "$GITHUB_OUTPUT"
export HOST_PROFILE=$(python3 script/match_conan_profile.py "${{ inputs.os_name }}-${{ inputs.os_version }}-${{ inputs.arch }}-${{ inputs.compiler_name }}-${{ inputs.compiler_version }}-${{ inputs.build_type }}")
echo "host_profile=$HOST_PROFILE" >> "$GITHUB_OUTPUT"
export BUILD_PROFILE=default
echo "build_profile=$BUILD_PROFILE" >> "$GITHUB_OUTPUT"
echo "args=-pr:b _common -pr:b '$BUILD_PROFILE' -s:b 'build_type=Release' -pr:h '$HOST_PROFILE' -s:h 'build_type=${{ inputs.build_type }}' ${{ inputs.args }}" >> "$GITHUB_OUTPUT"
- name: Install conan config folder
shell: bash
run: |
conan config install ./conan
- name: Checkout the specified recipe repository
if: inputs.recipe_repository != ''
uses: actions/checkout@v4
with:
repository: ${{ inputs.recipe_repository }}
path: conan_recipes
- name: Add the specified recipe repository as a remote
if: inputs.recipe_repository != ''
shell: bash
run: |
conan remote add local conan_recipes
- name: Cleanup conan system packages (they are not properly cached)
shell: bash
run: |
conan remove '*/system' -c
- name: Install conan packages
shell: bash
run: |
conan install . ${{ steps.output.outputs.args }} -b missing
- name: Clean 30 days unused conan caches
shell: bash
run: |
conan remove '*' --lru=30d