Skip to content

Commit 32b81bc

Browse files
committed
CI: fix package dependency resolution for .deb packages on Github Actions
1 parent 7790b55 commit 32b81bc

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

.github/workflows/cppcmake.yml

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: C/C++ CI
33
on:
44
push:
55
branches: ['*']
6-
tags: ['*']
6+
tags:
77
pull_request:
88
release:
99
types: ['created', 'edited']
@@ -32,19 +32,29 @@ jobs:
3232
cd build
3333
cmake -DLSL_UNITTESTS=1 -DCPACK_PACKAGE_DIRECTORY=${PWD}/package ..
3434
- name: make
35+
run: cmake --build build --config Release -j --target install
36+
- name: package
3537
shell: bash
38+
if: "!startsWith(github.ref, 'refs/heads')"
3639
run: |
37-
cmake --build build --config Release -j --target install
3840
echo $GITHUB_REF
39-
if [ $GITHUB_REF != "refs/heads"* ]; then
40-
cmake --build build --config Release -j --target package
41-
cmake -E remove_directory build/uploadpkgs/_CPack_Packages
41+
cmake --build build --config Release -j --target package
42+
# On Debian / Ubuntu the dependencies can only be resolved for
43+
# already installed packages. Therefore, we have built all
44+
# packages without dependencies in the previous step,
45+
# install them and rebuild them with dependency discovery enabled
46+
if [ "${{ matrix.os }}" = "ubuntu-latest" ]; then
47+
cmake -DCPACK_DEBIAN_PACKAGE_SHLIBDEPS=ON .
48+
sudo dpkg -i build/package/*.deb
49+
cmake --build build --config Release -j --target package
4250
fi
51+
cmake -E remove_directory build/uploadpkgs/_CPack_Packages
4352
- name: upload install dir
4453
uses: actions/upload-artifact@master
4554
with:
4655
name: build-${{ matrix.os }}
4756
path: build/install
57+
4858
- name: upload package
4959
uses: actions/upload-artifact@master
5060
if: "!startsWith(github.ref, 'refs/heads')"

0 commit comments

Comments
 (0)