Skip to content

Commit c547d83

Browse files
committed
Update zlib-ng-crossbuild.yml
1 parent b102346 commit c547d83

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

.github/workflows/zlib-ng-crossbuild.yml

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
matrix:
3434
name: [zlib-ng]
3535
os_id: [debian, ubuntu]
36-
os_codename: [bullseye, bookworm, focal, jammy, mantic]
36+
os_codename: [bullseye, bookworm, focal, jammy, noble]
3737
arch: [amd64, armhf, arm64]
3838
zlib_compat: ["", "-D ZLIB_COMPAT=ON"]
3939
include:
@@ -49,7 +49,7 @@ jobs:
4949
- os_id: debian
5050
os_codename: jammy
5151
- os_id: debian
52-
os_codename: mantic
52+
os_codename: noble
5353
- os_id: ubuntu
5454
os_codename: bullseye
5555
- os_id: ubuntu
@@ -77,6 +77,23 @@ jobs:
7777
- name: Host - upgrade
7878
run: sudo apt-get -y upgrade
7979

80+
# No action or other method to bootstrap binfmt-support and qemu-user-static on the host runner
81+
- name: Host - set up qemu-user-static binfmt-support
82+
run: sudo apt install libpipeline1 qemu-user-static binfmt-support
83+
84+
# Why are we doing it like this and not using a container setup? That's how you're supposed to do it, right?
85+
# qemu-user-static and binfmt-support are not part of the runner images https://github.com/actions/runner-images?tab=readme-ov-file#available-images
86+
# We would need to modify the runner to install these before the container starts. Which you cannot do as there is no way to bootstrap the host.
87+
# So we install them on the host then create/pull a custom docker image that we use to build the multiarch targets.
88+
# We are always on the host runner but can use any docker image we need with the access the qemu emulation when required.
89+
#
90+
# We are using these pre configured toolchain images that allows me to remove 50% of the code/time from this action.
91+
#
92+
# https://github.com/userdocs/dcb/blob/main/Dockerfile
93+
#
94+
# The image does not run as root and has password-less sudo. There are two users username:1000 /home/username and github:1001 /home/github
95+
# In the action it runs as 1001 /home/github and files should be available to the host. For local use, you might need -u 1000
96+
8097
- name: Host - Create docker multiarch ${{ matrix.arch }} container
8198
run: docker run --name multiarch -it -d -u 1001 -v ${{ github.workspace }}:/home/github ghcr.io/userdocs/dcb:${{ matrix.os_id }}-${{ matrix.os_codename }}-${{ matrix.arch }}
8299

@@ -192,7 +209,7 @@ jobs:
192209
replacesArtifacts: true
193210
tag: "${{ env.zlib_ng_version }}"
194211
name: "${{ matrix.name }} ${{ env.zlib_ng_version }}"
195-
body: "${{ matrix.name }} built from github master on amd64 arm64 armhf for Debian Bullseye Bookworm and Ubuntu Focal Jammy Mantic"
212+
body: "${{ matrix.name }} built from github master on amd64 arm64 armhf for Debian Bullseye Bookworm and Ubuntu Focal Jammy Noble"
196213
allowUpdates: true
197214

198215
rerun-on-failure:

0 commit comments

Comments
 (0)