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.
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:
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.
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)
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
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).
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.
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
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)
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.
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)
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.
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.
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.
The file name has changed and --enable-deltacast was used just if the
download succeeded (which didn't).
Fixes the commit 98d4969b (2024-05-24) that disabled deltacast, because
the archive was not downloaded due to wrong name.
macOS 12 is no longer supported and as Homebrew has a policy, that it
compiles packages from sources on unsupported macOSes, it is needed to
switch to newer macOS to keep reasonable build times.
the message: `Error: No such keg: /opt/homebrew/Cellar/asciidoctor`
is now print on stderr, which disturbs GitHub CI (complains about it in
action summary annotations; just a warning).
`
Since we must now build the new libajantv2, which takes some 3 minutes,
cache the build in order not to increase the build time.
Also use libajantv2 path for the SDK instead of AJA (doesn't require
unneeded rename), which will be Windows specific.
Only do it in MSW, since the build is slowest. But it can be easily used
also for other platforms.
\+ error from the notarize script if called
Previously (since commit 1c7c3ac1), the script silently exitted without
cigning and notarizing the app, which may harden debugging. Now the skip
is explicit and if the script is called anyways, it returns error.
enhances the commit 1c7c3ac1 (2024-03-22)
Building rav1e requires nasm 2.15 (if asm is not disabled) while U20
has just 2.14.02, so that the build in CI currently fails, anyways.
Pick sse4 for now but expect using avx2 version later, depending on
UG_ARCH value.
\+ populate PKG_CONFIG_PATH immediately
Use the installer and rely on dylibbundler v2 to deploy the framework
correctly.
Note: in the macOS/install_others.sh script, make sure that the env var
modification is global (== not just in the subshell) in order to be updated
by subsequent commands in the same script.