319 Commits

Author SHA1 Message Date
Martin Pulec
d13024feb6 CI: handle deprecation of actions/checkout@v4
use main branch instead

As for the other GH actions, use rather the main branch than a fixed
tag. The advantage is that we can avoid these technical commits because
the Node.js actions are gradually deprecated so that we'd need to update
every time it happens (although not often).

Although the actions example suggest using the fixed tags, this
doesn't seem to cause any problems while soe time used eg for
actions/cache. Otherwise, fixed tags may be returned at any time.
2026-03-11 11:22:58 +01:00
Martin Pulec
30b0fc9c96 CI L/W/m: allow running by pushing to the branch 2026-03-06 16:21:08 +01:00
Martin Pulec
a1a16712d7 CI: split ccpp.yml per platforms
The advantages:
- shorter files and more transparent changes (eg. in Git)
- allowing running the job for one platform

This should be mostly a pure refactor - the platform jobs were split as
they were:
- the actual build jobs macOS/Linux/Windows moved to separate files
- the new workflows can (and are) triggered by worflow_call
- in ccpp.yml, the original jobs are now only dispatchedi with uses:
2026-03-06 16:21:01 +01:00
Martin Pulec
1e13d3c938 Revert "CI: run on pull request"
Actually not sure why I've added this since there is no rationale.

Anyways, this seems not to be a good idea at least from the security
POV - can the pull requester modify the workflow files? If so, it can
steal GITHUB_TOKEN and/or do something nesty with the repo.

This reverts commit 656e6fa107.
2026-03-06 11:25:06 +01:00
Martin Pulec
a3661006ab update ARM runners to bookworm 2026-02-27 10:57:11 +01:00
Martin Pulec
0eda833282 CI ARM debootstrap: do not check sigs
not really needed (the risk is low) and so remove to simplify

(--no-check-gpg is --no-check-sigs in newer debootstrap versions)
2026-02-27 10:05:07 +01:00
Martin Pulec
9b6e7e3a35 CI Linux: mark the validation step correctly
is certainly not Docker test
2026-02-25 10:03:43 +01:00
Martin Pulec
a46429087c add semi-weekly CI tests
for additional testing in addition to what is done by dist check

tested is eg. the Reed-Solomon problem that occured between 1.8.5 and 1.8.6
2026-02-17 16:21:39 +01:00
Martin Pulec
f230d35c52 Revert "CI Win: use pre-built Spout"
This reverts commit b300fa64f4.

we would need to patch the upstream Spout code
2026-02-17 10:56:34 +01:00
Martin Pulec
e4d3035c1f CI Arch Linux Docker test: add -u to -Sy
It seems like some install fail if we do not upgrade at the same time.

fixes the error:
<https://gist.github.com/MartinPulec/602c195ec03933f826668b3ec1239d02>

+ use more descriptive name for the CI step
+ drop final \ in the Dockerfile (as mentioned in the CI output linked above)
2026-02-17 09:32:22 +01:00
Martin Pulec
426382bc12 Coverity CI: set -u
If the curl for filename fails, do not succeed with restoring the cache
with partial match. This will return false which may be unexpected
(typically this is correlated when the Coverity servers are down).
2026-02-03 09:11:59 +01:00
Martin Pulec
c758c38772 ARM CI: use NDI v6
With v5, NDI doesn't compile because of NDIlib_frame_type_source_change
missing. According to the NDI license, the most recent version should
be used, anyways.
2026-01-20 10:02:30 +01:00
Martin Pulec
b300fa64f4 CI Win: use pre-built Spout
instead of building own Spout, use pre-built release on GH

This actually reverts the commit b98b5ab0 from 2023-11-06.
Date:   Mon Nov 6 09:08:46 2023 +0100
2026-01-09 15:29:01 +01:00
Martin Pulec
040c5c7eb5 CI: use macos-15-intel
screen must be disabled here because the Core Graphics API for screen
capture is being deprecated/removed in macOS 15.

closes <https://github.com/CESNET/UltraGrid/issues/485>
2026-01-02 09:42:59 +01:00
Martin Pulec
566585c7b8 CI delta SDK: output name explicitly
When non-free SDK path is provided but the server curl automatic path
with -O doesn't work (eg. the downloaded file name is passed in a GET
variable).
2025-12-04 16:50:31 +01:00
Martin Pulec
9832f9d52d ccpp.yml mac: move the items to hide in single cmd 2025-12-02 09:38:18 +01:00
Martin Pulec
709276a8af CI: mv AppImage Docker tests to standalone script 2025-11-25 11:55:42 +01:00
Martin Pulec
b731a43f4c CI macOS: hide also arm64 Homebrew for distcheck
Make the bug <https://github.com/CESNET/UltraGrid/issues/478> fail
with distcheck.

The arm64 Homebrew uses different location than x86_64 so that it didn't
catch the problems (Homebrew libs were still visible).
2025-11-25 09:39:01 +01:00
Martin Pulec
17eb5a0f3a CI Mac: fail if SDK_NONFREE_PATH but no delta SDK
Co not continue if SDK_NONFREE_PATH is set but deltacast
SDK not present there. At this time, this will fail later in
.github/scripts/install-common-deps.sh, anyways. Also the DELTACAST
SDK remains the last non-free SDK so it doesn't make sense to define
SDK_NONFREE_PATH GH variable while not having that SDK.
2025-11-14 13:47:04 +01:00
Martin Pulec
960a36288d CI: compute checksums
compute SHA256 checksums for builds

this is useful at least for 2 reasons:
1. user can ensure that the build comes really from the CI (isn't
tampered)
2. can identify or match version with appropriate action run (the $VERSION
is usually always "continuous", except for releases)

The sha256 sum is currently only show in the protocol, not uploaded
to GH releases - this doesn't seem to be needed because GH currently
already prints the checksum by itself on the download (releases) page.

Skip computing checksum in Win when uplad-artifact is used - the zip
is actually created by the Action so we cannot compute the checksum
on it.

/sbin/sha256sum is not present in CI mac workers for some reason
2025-10-31 16:18:57 +01:00
Martin Pulec
c13daa7f16 CI win make bundle: remove unused commands
Remove commands that actually do nothing because uv-qt.exe is installed
by make install and the contents of bin/ subdirectory is not copied
"as is" as the command seem to imply.

+ use $(TARGET) in Makefile instead of bin/uv (which will be bin/uv.exe
in MSW but obviously it worked even without the extension)
2025-10-31 16:18:46 +01:00
Martin Pulec
9c9b28edc0 CI Win make bundle: reindent
shorter lines + respect shell formatting

+ dot before "exe" (glob)
+ leading 2 spaces instead of 4 to be consistent with the rest
2025-10-31 16:18:39 +01:00
Martin Pulec
193c8d5ab1 minor fixes
- coverity-scan.yml: typo
- configure.ac: misleading message if SDL not found -> do not mention
version at all, it was perhaps meant "didn't found any version" but it
might have also been that did't found specified version...
- configure.ac: removed sdl_mixer from summary
2025-09-04 10:40:22 +02:00
Martin Pulec
7fc5380d18 Coverity CI: use own caches
Coverity CI uses ubuntu-latest but C/C++ CI ubuntu-22.04, so that the
builds won't be compatible.
2025-09-03 09:49:34 +02:00
Martin Pulec
28e8ca872b Coverity CI: do not check coverity_token in every step
This reverts 960d2315 (2022-02-21) because the commit 18f049608
(2022-04-20) already restricts the scheduled run to CESNET Git repository
or manual push.

So that the token unavailability should be considered error and thus the
condition doesn't need to be re-iterated in every step.
2025-09-03 09:13:58 +02:00
Martin Pulec
a3906013e1 Coverity CI: sync with master YAML 2025-09-03 08:58:18 +02:00
Martin Pulec
d473bc00d0 CI Linux: fix wrong token name for cache
not a big problem - hash of appropriate fie included in the key
2025-09-01 08:45:24 +02:00
Martin Pulec
14b41852d2 CI Linux: build up-to-date glfw 2025-08-28 09:20:28 +02:00
Martin Pulec
1a1bee8a29 CI Linux: simplify caches
handle cache build/install (transitively) in prepare.sh
2025-08-28 09:19:55 +02:00
Martin Pulec
ed78a761fe CI Linux FFmpeg: consolidate to a single script
in similar fashion as already done for install_sdl.sh

As a bonus, we do not need to depend on whole prepare.sh for cache
rebuild but only on this script, which is perhaps cleaner and may
yield less rebuilds. Also prepare.sh is slightly easier.
2025-08-28 08:48:18 +02:00
Martin Pulec
0cfe4b6b0f CI Linux SDL: consolidate
add all to one script with deps/build_install/install_cached actions

- yml - use action @main
- cache: do not depend .github/scripts/Linux/prepare.sh, just the
catch-all SDL install file
- build SDL,SDL_ttf without entering the dir (as fluidsynth already does)
2025-08-28 08:48:16 +02:00
Martin Pulec
6eb185bda8 CI Linux: build SDL3
based on 9eb376ee38
2025-08-27 12:13:08 +02:00
Martin Pulec
3a60095d58 CI: enforce fluidsynth, do not require sdl_mixer 2025-08-27 09:00:21 +02:00
Martin Pulec
36ab104675 CI macos-14: fix /usr/local/opt not being present 2025-07-15 09:52:27 +02:00
Martin Pulec
194cb695e3 GH scripts: add -f to curl
to catch 4xx HTTP errors (curls returns 0 otherwise)
2025-07-15 09:20:42 +02:00
Martin Pulec
a10bc18ae4 GH arm+coverity builds: add -f to curl
in order to fail on 4xx HTTP errors
2025-07-15 09:20:42 +02:00
Martin Pulec
8adbafcda9 gh/arm/bootstrap.sh: pass GITHUB_TOKEN
to avoid GH rate-limit
2025-07-15 09:20:37 +02:00
Martin Pulec
1ba9fbd609 ccpp: update etags handling
Print the output variable assigned in the script in case that this
fails, otherwise it on the output without NL and will be prepended to
next var (if any).

This also simplifies the call in YAML.
2025-06-26 14:26:52 +02:00
Martin Pulec
64a3e9f31d ccpp.yml: XIMEA has separate pkg fox x64 and arm64
runner.os = macos
matrix.os = macos-13 or macos 14

(combination runner.os + runner.arch would also work)
2025-06-26 14:06:57 +02:00
Martin Pulec
fcda8ab72f coverity-scan.yml: use get-etag.sh
+ fail if not able to fetch (same as in ccpp.yml)
2025-06-20 14:59:19 +02:00
Martin Pulec
1d4dc17051 CI Mac,Win: set env prior to etags fetch
XIMEA_DOWNLOAD_URL is set by the environment.sh file
2025-06-20 14:59:18 +02:00
Martin Pulec
0a9bc4be68 CI improve etag handling
- simplify: do not handle more items (unneded)
- unless optional specified, fail early
2025-06-20 14:59:18 +02:00
Martin Pulec
98caf82455 Linux ARM CI: preserve env with sudo also for build
see the previous commit

This changes the manual handling introduced by the commit 925db63e. Also
$FEATURES are not passed explicitly as added in the commit 9eb29225.
2025-04-15 08:27:10 +02:00
Martin Pulec
30bc396d13 Linux ARM CI: pass env vars to chroot
fixes XIMEA_DOWNLOAD_URL not passed
2025-04-15 08:24:14 +02:00
Martin Pulec
937d07ded2 CI: fix XIMEA URL 2025-04-04 11:58:23 +02:00
Martin Pulec
fb022f2d1b CI Linux: switch to ubuntu-22.04
ubuntu-20.04 GH image is being deprecated and will be eventually removed
from GH
2025-03-07 09:03:06 +01:00
Martin Pulec
40f7bb76c2 CI (all workflows): rename cache check/fetch step
Instead of use "Cache XY" use more techical "Run action/cache for XY"
(similarly as implicit name when "name" key was not used).

Although the action is really actions/cache, the problem with the previous
name is that it actually doesn't cache the named item. It checks, and
if found loads, the item. But even if the item is not found, the action
reports success in GH web UI, which is quite misleading. So using rather
neutral name for the step should slightly decrease the confusion.
2025-01-03 11:23:05 +01:00
Martin Pulec
a4c1268ee0 ARM CI: use GH runner ubuntu-22.04
Use runner ubuntu-22.04 instead of ubuntu-latest. Because ubuntu-latest
has switched to ubuntu-24.04 recently, whiich breaks the build for arm64.

There seem to be an unresolved bug in QEMU >= 8.1
(U24.04 has v8.2.2) when using ARM64 and bullseye:
<https://gitlab.com/qemu-project/qemu/-/issues/2377>.

(ARM64 buster and bookworm, as well as ARMHF, may be fine as indicated
in the bug description.)

This can be reverted later (either when fixed in QEMU or when switched
the chroot to bookworm). But it shouldn't matter much, anyways, since this
is just the "host" environment.

Also include runner ver in chroot key because it seem to make a difference
from the above..
2025-01-03 10:38:17 +01:00
Martin Pulec
22c800d7e7 CI ARM: fix qemu not being present in U24.04
the package `qemu` is no longer present in U24.04, which is now
ubuntu-latest default Ubuntu version as a GH runner. But we don't need
it, we use just the static version (qemu-user-static).
2025-01-02 15:13:02 +01:00
Martin Pulec
1edef2b0c8 .github/scripts/macOS/prepare.sh: suppres brew out
suppress `brew list` output

It is used just to check if a package is installed and the output is
print is output to stdout. To stderr is print that it if the package is
not installed.
2024-11-25 09:06:41 +01:00