Repository navigation
145 lines (140 loc) · 4.41 KB
/
Copy pathnative-packages.yml
File metadata and controls
145 lines (140 loc) · 4.41 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
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
name: Native package managers
on:
workflow_dispatch:
pull_request:
branches: [main]
paths:
- 'Cargo.lock'
- 'packaging/conan/**'
- 'packaging/vcpkg/**'
- '.github/workflows/native-packages.yml'
push:
branches: [main]
paths:
- 'Cargo.lock'
- 'packaging/conan/**'
- 'packaging/vcpkg/**'
- '.github/workflows/native-packages.yml'
permissions:
contents: read
env:
CONAN_VERSION: 2.31.1
VCPKG_COMMIT: ddd0023b0eee70986e42ed49d9d4afb8098f212e
jobs:
conan:
name: Conan - ${{ matrix.platform }}
runs-on: ${{ matrix.runner }}
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
include:
- platform: linux-x86_64
runner: ubuntu-24.04
- platform: linux-aarch64
runner: ubuntu-24.04-arm
- platform: macos-x86_64
runner: macos-15-intel
- platform: macos-aarch64
runner: macos-15
- platform: windows-x86_64
runner: windows-2022
steps:
- uses: actions/checkout@v7
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: '1.88.0'
- uses: actions/setup-python@v7
with:
python-version: '3.13'
- uses: actions/cache@v6
with:
path: |
~/.cargo/registry
~/.cargo/git
key: native-conan-${{ matrix.platform }}-${{ hashFiles('Cargo.lock') }}
- name: Install Conan
run: python -m pip install "conan==${{ env.CONAN_VERSION }}"
- name: Detect the native Conan profile
run: conan profile detect --force
- name: Build and test the static package
run: conan create packaging/conan/all --version=1.7.0 --build=missing
- name: Build and test the shared package
run: >-
conan create packaging/conan/all --version=1.7.0 --build=missing
-o "ironpress/*:shared=True"
vcpkg:
name: vcpkg - ${{ matrix.platform }}
runs-on: ${{ matrix.runner }}
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
include:
- platform: linux-x86_64
runner: ubuntu-24.04
static-triplet: x64-linux
shared-triplet: x64-linux-dynamic
- platform: linux-aarch64
runner: ubuntu-24.04-arm
static-triplet: arm64-linux
shared-triplet: arm64-linux-dynamic
- platform: macos-x86_64
runner: macos-15-intel
static-triplet: x64-osx
shared-triplet: x64-osx-dynamic
- platform: macos-aarch64
runner: macos-15
static-triplet: arm64-osx
shared-triplet: arm64-osx-dynamic
- platform: windows-x86_64
runner: windows-2022
static-triplet: x64-windows-static
shared-triplet: x64-windows
steps:
- uses: actions/checkout@v7
- uses: actions/checkout@v7
with:
repository: microsoft/vcpkg
ref: ${{ env.VCPKG_COMMIT }}
path: target/vcpkg
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: '1.88.0'
- uses: actions/cache@v6
with:
path: |
~/.cargo/registry
~/.cargo/git
key: native-vcpkg-${{ matrix.platform }}-${{ hashFiles('Cargo.lock') }}
- name: Bootstrap vcpkg
if: runner.os != 'Windows'
run: ./target/vcpkg/bootstrap-vcpkg.sh -disableMetrics
- name: Bootstrap vcpkg
if: runner.os == 'Windows'
shell: pwsh
run: ./target/vcpkg/bootstrap-vcpkg.bat -disableMetrics
- name: Test static C and C++ consumers
if: runner.os != 'Windows'
run: >-
./packaging/vcpkg/test/run.sh target/vcpkg
${{ matrix.static-triplet }}
- name: Test shared C and C++ consumers
if: runner.os != 'Windows'
run: >-
./packaging/vcpkg/test/run.sh target/vcpkg
${{ matrix.shared-triplet }}
- name: Test static C and C++ consumers
if: runner.os == 'Windows'
shell: pwsh
run: >-
./packaging/vcpkg/test/run.ps1
-VcpkgRoot target/vcpkg
-Triplet ${{ matrix.static-triplet }}
- name: Test shared C and C++ consumers
if: runner.os == 'Windows'
shell: pwsh
run: >-
./packaging/vcpkg/test/run.ps1
-VcpkgRoot target/vcpkg
-Triplet ${{ matrix.shared-triplet }}