Commit Graph

84 Commits

Author SHA1 Message Date
sfan5 9b9409196b ci/mingw: move functional test to workflow
Arguably the better place for this as it provides fine-grained feedback.
2023-08-21 16:43:38 +02:00
Niklas Haas ac4c88b7c1 ci: update freebsd to latest release channel
Instead of `quarterly`, to get access to recent packages.
2023-08-18 16:39:57 +02:00
Kacper Michajłow 089a8480a2 Revert "ci/msys2: double down on running meson through python3.11"
Python 3.11 will be released soon as default Python package, and
actually python3.11 package already disappeared from the repository.

This reverts commit c637beb522.
2023-07-29 12:33:50 +03:00
Kacper Michajłow 95a2d5b044 ci/mingw: use ccache
Can significantly reduce build time, most of dependencies have fixed
versions, so they can be cached fully. Others will be incrementally
build.

Cache is saved on every run and restored from the newest one. Size is
limited to 500M (compressed) to keep cache save/restore fast. Clean
cached build is little over 100M, so we have a headroom as things will
grow. ccache will automatically evict least recently used entries.

It is unlikely that clean build will exceed the limit anytime soon, but
it is something to keep in mind, as we do not want to evict cache
entries from current build, so the cache size need to be set correctly.
2023-07-25 11:34:59 +02:00
Kacper Michajłow 0e0b396af4 ci/mingw: disable fail-fast
Those builds should be evaluated separately, no need to fail other one.
2023-07-25 11:34:59 +02:00
Kacper Michajłow d521ba38d1 ci/mingw: check if binary is runnable before packaging 2023-07-25 11:34:59 +02:00
LaserEyess f2cce5f38f waf: remove waf as a build system
Remove waf entirely in favor of meson as the only supported build
system. Waf was officially deprecated in 0.36.0, and has not been
preferred over meson since 0.35.0.
2023-07-23 19:55:51 +00:00
Kacper Michajłow c637beb522 ci/msys2: double down on running meson through python3.11
Run not only scripts inside build system, but also meson itself with
Python 3.11.

Fixes: eb4da3400a
2023-07-02 15:15:43 +02:00
Kacper Michajłow e7902eb83d github/workflows: do not copyback files from freebsd VM
It is unstable and fails quite often. Just disable it and remove log
printing of failure.
2023-06-27 09:33:30 +02:00
Kacper Michajłow a6a72f2c86 github/workflows: bump freebsd VM memory size to 8GB 2023-06-27 09:33:30 +02:00
Kacper Michajłow eb4da3400a ci/msys2: switch to Python 3.11 to fix crashes during build
There is a long-standing bug with random crashes of Python 3.10 on CI.

See:
https://github.com/python/cpython/issues/105400
https://github.com/msys2/MINGW-packages/issues/11864
https://github.com/msys2/MINGW-packages/issues/17415
2023-06-26 19:07:18 +02:00
Kacper Michajłow 6ff131add0 ci/mingw: remove cache
To avoid building against stale version of dependencies. In particular
libplacebo is moving target and as we can see the build has been broken
few times recently, so let the CI validate it for us.

The time to build everything is under 30 minutes, which is acceptable in
my opinion, not much longer than macos build.
2023-06-08 06:26:06 -04:00
Leo Izen 6932a27781 github/workflows/build.yml: install ca-certificates package on msys2
Allows python to download waf correctly, fixing CI failure due to its
outdated built-in certificate pool.
2023-06-08 12:09:57 +02:00
Kacper Michajłow 7668361685 ci: switch to lua51 for MSYS build
luajit is currently crashing on 32-bit build:
https://github.com/msys2/MINGW-packages/issues/17042
2023-04-29 19:07:45 +00:00
sfan5 9a8b31707e ci: add a workflow that lints commit messages 2023-04-08 17:08:57 +02:00
Kacper Michajłow 6a62aa0330 ci: bump cache version to rebuild libplacebo
libplacebo-next version requirement was increased recently, need to
rebuild it to fix mingw CI builds.
2023-03-28 09:23:38 -07:00
Kacper Michajłow 1ea74f10a7 ci/mingw: update meson
libplacebo requires >= 0.63
2023-03-28 09:23:38 -07:00
Dudemanguy c7395970df github/workflows: fix failure conditions
It turns out that you actually have to add failure() to each condition
otherwise a default status check of success() is applied (thanks
github). Looks redundant but whatever. Thanks to @kasper93 for actually
reading the documentation.
2023-03-15 00:25:11 +02:00
Dudemanguy e82d9045a4 ci: separate meson tests and reorganize build steps
Instead of running the test directly in the build script, we can make a
separate step in the workflow so it looks a little prettier. For running
the actual tests, we skip mingw since they will never be run (cross
compiled). Additionally, improve the github workflow logic a bit so that
way logs on failure are only shown when that specific step fails. The
freebsd job still has to be less elegant since it's in a weird vm
thingy.

Not really related but the location of various build directories
(particularly waf) are corrected as well (might as well).
2023-03-02 15:45:27 +00:00
Kacper Michajłow e4e3a8fc0b ci: pack mingw64 meson build instead of waf 2023-01-31 14:50:26 +00:00
Kacper Michajłow bc1af592db ci: migrate MSYS2 build to GitHub Actions 2023-01-28 01:03:12 +00:00
Dudemanguy 3858a8102b build: officially deprecate waf
While the waf build has served us well for many years, it's time to
officially consider it deprecated. The meson build was added fully with
the intention to eventually replace waf and its current state is more
than good enough to do that. Let's start the deprecation period now to
give users a heads up to switch before we remove waf for good.
2023-01-15 16:46:11 +00:00
Jan Ekström 8758d96a33 github/workflows: force deletion of existing upstream python symlinks on macOS
This way each time a new Python version is installed via Homebrew
, we don't get CI failures due to the upstream Python distribution
also being installed.

Ref: actions/runner-images#6459
Ref: actions/runner-images#6507
Ref: actions/runner-images#2322
2022-11-11 21:25:03 +02:00
Jan Ekström 25906514c3 github/workflows: remove seccomp disablement
Workflow virtual machines have now been updated so that moby package
contains rule for the newly added syscalls, such as 'clone3'.

Effectively reverts 64fa440c69 .
2022-11-05 23:54:27 +02:00
Jan Ekström 9087213916 github/workflows: bump linux jobs to Ubuntu 22.04 base VM
These utilize a custom docker container in any case, but this brings
us to consistency with the mingw-w64 jobs.
2022-11-05 23:54:27 +02:00
Jan Ekström f50cafd2cb github/workflows: move all build jobs to checkout V3
mingw-w64 has utilized this for a while so might as well make it
consistent.
2022-11-05 23:54:27 +02:00
Jan Ekström d525c3c6c2 github/workflows: remove xcode 13.0 to xcode 13.1 override
Thankfully, this version is no longer the default on any of the
macOS runners.

Effectively reverts a76527772e .
2022-11-05 23:54:27 +02:00
Jan Ekström 0076b51dd2 github/workflows: remove macOS 10.15 image usage
This older image has been deprecated and will be removed in December.
The images have also already had planned outages during which the CI
flow has been affected. Thus it feels like a good idea to clean
this up at this point.

Ref: actions/runner-images#5583
2022-11-05 23:54:27 +02:00
Dudemanguy 806dddc7d9 github/workflows: remove pip usage in mingw CI
This was only needed because the mingw CI used to run on Ubuntu 20.04
which had a version of meson too old for mpv. This hasn't been the case
since we switched to 22.04 in f7164fcfac
and can now just use the package manager version.
2022-11-02 21:03:29 +02:00
sfan5 7f5bcd7244 ci: upload resulting binary of mingw64 build 2022-11-01 16:30:59 +01:00
sfan5 f67a56b830 ci/mingw64: refresh build scripts
- newer library versions
- use libplacebo submodules
- prefer meson where possible
- fix minor details
2022-11-01 16:30:59 +01:00
Dudemanguy 0f1ae8896e github/workflows: print error logs on freebsd
Despite being run in a VM, the workflow actually copies the files back
to the host. We can then explictly print the error logs on failure in
their own separate section for visibility instead of it being hidden
within all the vm output.
2022-10-27 18:42:12 +00:00
Jan Ekström 3f32dfe981 github/workflows: explicitly install Xinerama on FreeBSD
Apparently an implicit dependency on it through one of the
otherwise installed packages is no longer there.
2022-10-09 17:09:06 +03:00
Thomas Weißschuh 891c9c869f ao_pipewire: test on FreeBSD 2022-08-18 09:16:52 -07:00
Jan Beich a3b2d3f930 github/workflows: auto-update freebsd-vm within major version
Reduce the churn by transparently picking up bustage fixes.
2022-08-12 09:18:45 +02:00
SukkaW cb98d8d71c ci: bump macos runner version 2022-07-26 14:20:00 -04:00
Jan Beich 59ee10e3c7 github/workflows: upgrade FreeBSD to 13.1
FreeBSD doesn't support /latest and /quarterly package repos on EOL
versions. 13.0 reaches EOL on 2022-08-31, so avoid CI breakage.
2022-07-15 22:02:44 +00:00
Dudemanguy 7e921e9939 github/workflows: install libxpresent on freebsd
This is needed for x11 which is in turn needed for vdpau.
2022-06-19 18:13:55 +00:00
Mia Herkt 07d78f8c8b
ci/build: Do not manually install Meson in openSUSE container
Newer image builds already include Meson.
2022-06-19 02:56:28 +02:00
Jan Ekström 5d9af3a9dd ci/build-mingw64: bump dependencies 2022-06-15 21:19:10 +03:00
Jan Ekström f7164fcfac github/workflows: move mingw CI to ubuntu 22.04
Updates mingw-w64 to 8.0 as well as generally bumps the toolchain
to gcc 10.x.
2022-06-07 21:02:37 +03:00
Jan Ekström 6f7a0675b0 github/workflows: add macOS 12 build
Apparently it is now in public beta.

ref actions/virtual-environments#5446
2022-05-05 00:02:30 +03:00
Dudemanguy 9d133eb00b github/workflows: workaround git permissions error
Recently, git patched a CVE which makes it much more strict about
different users operating on directories they don't own. For us, this
causes breakage with version.sh and version.py since they both run a git
describe command to fetch the commit hash. Currently, this only affects
the tumbleweed container (likely because it was recently changed) and
thus the git describe command always errors out. Workaround this by just
explictly adding the mpv directory as a safe directory for git.
2022-04-21 22:14:27 +03:00
Mia Herkt a2d86333f4
ci: switch Tumbleweed build to openSUSE container registry 2022-04-19 05:19:31 +02:00
Dudemanguy 649556b2b6 github/workflows: use lua 5.1 on macos
LuaJIT is still actively developed, but upstream is allergic to making
new releases for whatever reason. The last tagged release was in May of
2017, so we probably shouldn't expect a new release anytime soon. Now
for mpv, this doesn't really matter except in the case of macOS where
2.0.5 is actually a bit broken (and of course the CI uses luajit). More
specifically, the 2.0.5 pc is broken and has a "-pagezero_size 10000"
flag which causes libmpv to fail (only executables are allowed to use
this). This magically works on waf. It's possible that it just happens
to ignore the link arguments. However on the meson build, this is broken
and led to a really ugly hack using a partial dependency so both mpv and
libmpv succeed. Fortunately, the 2.1 luajit branch fixes this.
Unfortunately, there's no actual release.

Instead, just use Lua 5.1. Note that lua 5.1 is technically deprecated
in homebrew, but the chances of this going away is pretty slim since
everyone knows that new lua versions are not backwards compatible.
Anyways, using 5.1 works fine and lets us get rid of a terrible hack in
the meson build. People really shouldn't be using 2.0 LuaJIT anyway.
2022-02-07 21:17:12 +00:00
Dudemanguy 8087e3371f build: remove aviocontext bytes_read check
This define was always just a stopgap for that two month period (August
2021 - October 2021) where the bytes_read field in ffmpeg was completely
missing. Before that time, it was a private member in a struct (which
mpv used). Afterwards, it officially became public. Fortunately, the
lack of this field never actually made it into a release, so it could
have only possibly affected people building from the master branch.
Since ffmpeg 5.0 came out recently, and it's been plenty of months since
that two month window, we can go ahead and drop this check. This
finishes up the work done in 78cfeee2b9.

Sidenote: the cached ffmpeg version in the mingw ci were from that time
period when the bytes_read field was missing. The N in the workflow is
bumped to force a full rebuild and fresh clone of ffmpeg.
2022-01-25 00:17:01 +02:00
Dudemanguy 95257eaa88 ci/build-freebsd: enable sndio ao during build
We have this ao again since #9298 so let's run it through the CI.
2022-01-22 19:06:31 +00:00
Dudemanguy 5ac8f85d3d github/workflows: remove some pip3 usages
When this was originally added, some OS package managers were slow and
behind the required meson version needed for mpv to build. Both opensuse
tumbleweed and freebsd now appear to carry meson 0.60.3 in their repos
so we no longer need to do the two-step process of installing pip3 and
then installing meson via pip. Instead, just use the OS package manager
version.
2022-01-09 16:34:50 +00:00
Dudemanguy 51da9d257e ci: fix the path for logs on failure in mingw
The old directory was wrong. The actual build directory has the matrix
prefix in its name.
2021-11-25 21:33:29 -06:00
Dudemanguy 31780a6db5 ci: add meson builds
Update the github workflows to also do meson builds for every OS.
Additionally, make every workflow execute the built mpv executable
(except for windows and FreeBSD's waf executable) to make sure that it
runs. As an aside, FreeBSD unfortunately is a bit less elegant since it
is in a VM.
2021-11-14 19:13:10 +00:00