Skip to content

Commit 0805edc

Browse files
committed
Fix CI Builds 1/2
Update run-on-arch to v3 This should finally fix the segfaults Fix x265 builds Fix cloudsmith uploads for Fedora Ensure new x265 flags are used Fix native builds Update libx265
1 parent 653bd04 commit 0805edc

17 files changed

Lines changed: 144 additions & 102 deletions

.github/workflows/build-ci.yml

Lines changed: 61 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,13 @@ jobs:
4747
import_github_env: true
4848
commands: |
4949
sudo apt-get update -y
50-
sudo apt-get install --force-yes -y cmake git build-essential pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev wget bzip2 git-core liburiparser-dev libdvbcsa-dev python3 python3-requests debhelper ccache lsb-release
50+
sudo apt-get install --force-yes -y cmake git build-essential pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev wget bzip2 git-core liburiparser-dev libdvbcsa-dev python3 python3-requests debhelper ccache lsb-release libc6-dev-armel-cross
5151
DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre3-dev || DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre2-dev
5252
AUTOBUILD_CONFIGURE_EXTRA=--enable-ccache\ --enable-ffmpeg_static\ --enable-hdhomerun_static\ --python=python3 ./Autobuild.sh -p raspios
5353
support/cloudsmith.sh -n -p raspios -f '../tvheadend*.deb'
54-
- uses: actions/upload-artifact@v3
54+
- uses: actions/upload-artifact@v4
5555
with:
56-
name: Tvheadend-deb
56+
name: Tvheadend-RPiOS-${{ matrix.arch }}
5757
path: tvheadend*.deb
5858
if-no-files-found: error
5959

@@ -68,22 +68,18 @@ jobs:
6868
arch: [ armv7, aarch64]
6969
distro: [ stretch, buster, bullseye, bookworm, ubuntu16.04, ubuntu18.04, ubuntu20.04, ubuntu22.04, ubuntu_latest ]
7070
include:
71-
- arch: armv6
72-
distro: jessie
7371
- arch: armv6
7472
distro: stretch
7573
- arch: armv6
7674
distro: buster
7775
- arch: armv6
7876
distro: bullseye
79-
- arch: armv7
80-
distro: jessie
8177

8278
steps:
8379
- uses: actions/checkout@v3
8480
with:
8581
fetch-depth: 0
86-
- uses: uraimo/run-on-arch-action@v2
82+
- uses: uraimo/run-on-arch-action@v3
8783
name: Build artifact
8884
id: build
8985
with:
@@ -125,9 +121,9 @@ jobs:
125121
if [ '${{ matrix.distro }}' = 'stretch' ]; then sed -i 's/security.debian.org/archive.debian.org/g' /etc/apt/sources.list; fi
126122
if [ '${{ matrix.distro }}' = 'stretch' ]; then sed -i '/stretch-updates/d' /etc/apt/sources.list; fi
127123
case "${{ matrix.distro }}" in
128-
ubuntu*|jessie|stretch|buster|bullseye|bookworm)
124+
ubuntu*|jessie|stretch|buster|bullseye|bookworm|trixie)
129125
apt-get update -y
130-
DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y cmake git build-essential pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev wget bzip2 git-core liburiparser-dev libdvbcsa-dev python3 python3-requests debhelper ccache lsb-release
126+
DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y cmake git build-essential pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev wget bzip2 git-core liburiparser-dev libdvbcsa-dev python3 python3-requests debhelper ccache lsb-release libc6-dev-armel-cross
131127
DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre3-dev || DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre2-dev
132128
;;
133129
fedora*)
@@ -145,72 +141,91 @@ jobs:
145141
git config --global --add safe.directory /home/runner/work/tvheadend/tvheadend || true
146142
AUTOBUILD_CONFIGURE_EXTRA=--enable-ccache\ --enable-ffmpeg_static\ --enable-hdhomerun_static\ --python=python3 ./Autobuild.sh
147143
cp ../tvheadend*.deb /artifacts/
144+
if [ '${{ matrix.distro }}' = 'buster' ] && [ '${{ matrix.arch }}' = 'armv7' ]; then update-ca-certificates --fresh; fi
148145
support/cloudsmith.sh -n -f '../tvheadend*.deb'
149-
- uses: actions/upload-artifact@v3
146+
- uses: actions/upload-artifact@v4
150147
with:
151-
name: Tvheadend-deb
148+
name: Tvheadend-${{ matrix.distro }}-${{ matrix.arch }}
152149
path: artifacts/tvheadend*.deb
153150
if-no-files-found: error
154151

155152
build-deb-native:
156153
runs-on: ubuntu-latest
157154
continue-on-error: true
158-
name: Build on native ${{ matrix.container }}
155+
name: Build on native ${{ matrix.container[1] }}
159156
strategy:
160157
matrix:
161-
container: ["i386/ubuntu:trusty", "ubuntu:trusty", "i386/ubuntu:xenial", "ubuntu:xenial", "ubuntu:bionic", "ubuntu:focal", "ubuntu:jammy", "ubuntu:lunar", "ubuntu:mantic", "ubuntu:noble", "i386/debian:stretch", "debian:stretch", "i386/debian:buster", "debian:buster", "i386/debian:bullseye", "debian:bullseye", "i386/debian:bookworm", "debian:bookworm", "i386/debian:trixie", "debian:trixie", "debian:sid"]
162-
container:
163-
image: ${{ matrix.container }}
164-
env:
165-
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
158+
container: [["i386/ubuntu:trusty", "i386-ubuntu-trusty"], ["ubuntu:trusty", "ubuntu-trusty"], ["i386/ubuntu:xenial", "i386-ubuntu-xenial"], ["ubuntu:xenial", "ubuntu-xenial"], ["ubuntu:bionic", "ubuntu-bionic"], ["ubuntu:focal", "ubuntu-focal"], ["ubuntu:jammy", "ubuntu-jammy"], ["ubuntu:noble", "ubuntu-noble"], ["i386/debian:stretch", "i386-debian-strech"], ["debian:stretch", "debian-stretch"], ["i386/debian:buster", "i386-debian-buster"], ["debian:buster", "debian-buster"], ["i386/debian:bullseye", "i386-debian-bullseye"], ["debian:bullseye", "debian-bullseye"], ["i386/debian:bookworm", "i386-debian-bookworm"], ["debian:bookworm", "debian-bookworm"], ["i386/debian:trixie", "i386-debian-trixie"], ["debian:trixie", "debian-trixie"], ["i386/debian:sid", "i386-debian-sid"], ["debian:sid", "debian-sid"]]
166159
steps:
167-
- name: Fix old debian apt
168-
if: matrix.container == 'debian:stretch' || matrix.container == 'i386/debian:stretch'
160+
- name: Setup container
169161
run: |
170-
sed -i 's/deb.debian.org/archive.debian.org/g' /etc/apt/sources.list
171-
sed -i 's/security.debian.org/archive.debian.org/g' /etc/apt/sources.list
172-
sed -i '/stretch-updates/d' /etc/apt/sources.list
162+
docker pull ${{ matrix.container[0] }}
163+
docker run --name build-container -d -v ${{ github.workspace }}:/workspace ${{ matrix.container[0] }} tail -f /dev/null
164+
- name: Fix old debian apt
165+
if: matrix.container[0] == 'debian:stretch' || matrix.container[0] == 'i386/debian:stretch'
166+
env:
167+
SCRIPT: |
168+
sed -i 's/deb.debian.org/archive.debian.org/g' /etc/apt/sources.list
169+
sed -i 's/security.debian.org/archive.debian.org/g' /etc/apt/sources.list
170+
sed -i '/stretch-updates/d' /etc/apt/sources.list
171+
run: docker exec build-container bash -c "$SCRIPT"
173172
- name: Add git ppa
174-
if: startsWith(matrix.container, 'ubuntu') || startsWith(matrix.container, 'i386/ubuntu')
175-
run: |
176-
apt-get update -y
177-
DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y software-properties-common
178-
add-apt-repository ppa:git-core/ppa -y
173+
if: startsWith(matrix.container[0], 'ubuntu') || startsWith(matrix.container[0], 'i386/ubuntu')
174+
env:
175+
SCRIPT: |
176+
apt-get update -y
177+
DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y software-properties-common
178+
add-apt-repository ppa:git-core/ppa -y
179+
run: docker exec build-container bash -c "$SCRIPT"
179180
- name: dependencies
180-
run: |
181-
apt-get update -y
182-
DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y cmake git build-essential pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev wget bzip2 git-core liburiparser-dev libdvbcsa-dev python3 python3-requests debhelper ccache lsb-release
181+
env:
182+
SCRIPT: |
183+
apt-get update -y
184+
DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y cmake git build-essential pkg-config gettext libavahi-client-dev libssl-dev zlib1g-dev wget bzip2 git-core liburiparser-dev libdvbcsa-dev python3 python3-requests debhelper ccache lsb-release
185+
run: docker exec build-container bash -c "$SCRIPT"
183186
- name: pcre-dependency
184-
run: |
185-
DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre3-dev || DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre2-dev
187+
env:
188+
SCRIPT: |
189+
DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre3-dev || DEBIAN_FRONTEND=noninteractive apt-get install --force-yes -y libpcre2-dev
190+
run: docker exec build-container bash -c "$SCRIPT"
186191
- uses: actions/checkout@v3
187-
if: startsWith(matrix.container, 'i386') != true && matrix.container != 'debian:stretch'
188192
with:
189193
fetch-depth: 0
190-
- uses: actions/checkout@v1
191-
if: startsWith(matrix.container, 'i386') || matrix.container == 'debian:stretch'
192194
- name: Workaround safe directory
193-
run: git config --global --add safe.directory /__w/tvheadend/tvheadend
195+
env:
196+
SCRIPT: |
197+
git config --global --add safe.directory /workspace
198+
run: docker exec build-container bash -c "$SCRIPT"
194199
- name: build
195-
run: AUTOBUILD_CONFIGURE_EXTRA=--enable-ccache\ --enable-ffmpeg_static\ --enable-hdhomerun_static\ --python=python3 ./Autobuild.sh ${{ (startsWith(matrix.container, 'i386') && '-a i386') || '' }}
200+
env:
201+
SCRIPT: |
202+
cd /workspace
203+
AUTOBUILD_CONFIGURE_EXTRA=--enable-ccache\ --enable-ffmpeg_static\ --enable-hdhomerun_static\ --python=python3 ./Autobuild.sh ${{ (startsWith(matrix.container[0], 'i386') && '-a i386') || '' }}
204+
run: docker exec build-container bash -c "$SCRIPT"
196205
- name: copy-result
197-
run: cp ../tvheadend*.deb .
198-
- uses: actions/upload-artifact@v3
199-
if: startsWith(matrix.container, 'i386') != true
206+
env:
207+
SCRIPT: |
208+
cp tvheadend*.deb workspace/
209+
run: docker exec build-container bash -c "$SCRIPT"
210+
- uses: actions/upload-artifact@v4
200211
with:
201-
name: Tvheadend-deb
212+
name: Tvheadend-${{ matrix.container[1] }}
202213
path: tvheadend*.deb
203214
if-no-files-found: error
204215
- name: upload-cloudsmith
205-
run: support/cloudsmith.sh -n -f 'tvheadend*.deb'
216+
env:
217+
SCRIPT: |
218+
cd /workspace
219+
support/cloudsmith.sh -n -f 'tvheadend*.deb'
220+
run: docker exec build-container bash -c "$SCRIPT"
206221

207222
build-rpm-native:
208223
runs-on: ubuntu-latest
209224
continue-on-error: true
210225
name: Build on native fedora:${{ matrix.releasever }}
211226
strategy:
212227
matrix:
213-
releasever: ["37", "38", "39", "rawhide"]
228+
releasever: ["37", "38", "39", "40", "41", "42", "rawhide"]
214229
container:
215230
image: "fedora:${{ matrix.releasever }}"
216231
steps:
@@ -228,9 +243,9 @@ jobs:
228243
run: ./configure --disable-dvbscan --disable-libfdkaac_static --disable-ffmpeg_static --disable-hdhomerun_static --disable-libfdkaac_static --disable-libopus_static --disable-libtheora_static --disable-libvorbis_static --disable-libvpx_static --disable-libx264_static --disable-libx265_static --enable-libfdkaac --enable-hdhomerun_client --enable-libsystemd_daemon --python=/usr/bin/python3 && make -C rpm build -j$(nproc)
229244
- name: copy-result
230245
run: cp rpm/RPMS/*/tvheadend*.rpm .
231-
- uses: actions/upload-artifact@v3
246+
- uses: actions/upload-artifact@v4
232247
with:
233-
name: Tvheadend-RPM
248+
name: Tvheadend-Fedora-${{ matrix.releasever }}
234249
path: tvheadend*.rpm
235250
if-no-files-found: error
236251
- name: upload-cloudsmith

0 commit comments

Comments
 (0)