312 Commits

Author SHA1 Message Date
Kacper Michajłow 0b3ad514d9 ci/mingw: build in an Ubuntu 26.10 container
Ubuntu 24.04 has mingw-w64 11.0.1, whose 32 bit import library lacks
CoIncrementMTAUsage, and 26.04 pairs mingw-w64 13.0.0 with GCC 13.2,
which checks the gnu_printf prototypes of those headers as ms_printf
(fixed in GCC 14). 26.10 has GCC 16 with mingw-w64 13.0.0.
2026-10-16 20:06:01 +02:00
Kacper Michajłow c3ac7f3951 ci/msys2: remove deprecated mingw64 build 2026-10-13 02:22:10 +02:00
Kacper Michajłow 21bae81ac3 ci: enable sixel 2026-10-11 16:45:32 +02:00
der richter 570be2b19b ci/mac: rename arch matrix variable to target-os, use as artifact name
the runners aren't named like the OS version anymore but instead use
the xcode + version.

rename the arch to taget-os and make it represent the whole target OS
name, with version and architecture. use this as artifact name instead.
2026-10-10 13:55:38 +02:00
der richter 6c8e207cda ci/mac: add macOS 27 runner 2026-10-10 13:55:38 +02:00
der richter a251e5d457 ci/mac: remove deprecated macOS 14 runner
the macOS 14 runners were officially deprecated with the release of
macOS 27. a brownout phase will start on the 5th October making the
runner on several days for many hours throughout October unusable, till
it is finally removed on the 2nd November.

remove it beforehand so our CI doesn't fail unnecessarily.
2026-10-10 13:55:38 +02:00
dependabot[bot] 0ea9365df8 ci: bump python/mypy from 2.3.1 to 2.4.0
Bumps [python/mypy](https://github.com/python/mypy) from 2.3.1 to 2.4.0.
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python/mypy/compare/v2.3.1...v2.4.0)

---
updated-dependencies:
- dependency-name: python/mypy
  dependency-version: 2.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-10-04 15:51:50 +02:00
Kacper Michajłow 413ff0b1cd ci: enable vapoursynth 2026-10-03 03:17:46 +02:00
der richter dfeb91b646 ci/mac: remove openssl@1.1 to work around a runner problem
openssl@1.1 is now manually linked on the macOS runners, which conflicts
with a dependency of openssl@3. remove the old version before installing
our required dependencies.

see https://github.com/actions/runner-images/commit/6b5924aa06aa6918031245c4bcd6ecfc15a6db34
2026-10-03 02:40:00 +02:00
Kacper Michajłow 35af06172b ci: attach build artifacts to tagged releases
Run the build workflow for v0.* tags and let the publish job upload the
artifacts to the release of that tag, with the run id stripped from the
asset names to match the previous hand-made uploads. The release is
created as a draft when it does not exist yet, so the notes can be
filled in before publishing.
2026-09-26 00:49:37 +02:00
Kacper Michajłow 42564b21ba ci/publish-release: publish the full builds and libmpv
Attach the full x86_64 and aarch64 builds instead of the shared x86_64
mingw-w64 build, which they supersede. The i686 build stays, it exists
only as the shared build. Add a libmpv section with the GPL and LGPL
packages, label every entry by architecture and flavour.
2026-09-26 00:49:37 +02:00
Kacper Michajłow 639ae83f04 ci: move release publishing into ci/publish-release.sh 2026-09-26 00:49:37 +02:00
Kacper Michajłow 76234f58af ci/mingw64-full: add full static mingw64 builds
Build mpv and libmpv inside the FFmpeg-Builds container images, which
ship a mingw-w64 cross toolchain and every FFmpeg dependency as a static
library. FFmpeg itself, LuaJIT, subrandr and the C++/WinRT projection
are built on top. One day we might fork the FFmpeg-Builds and do
mpv-Builds, but the overhead of maintaining that is bigger than current
cost of building few deps on top.

x86_64 and aarch64 are built in the GPL and the LGPL variant. The GPL
variant publishes mpv.exe, both variants publish a libmpv package with
the DLL, its import library and the headers.

rav1e and librsvg are Rust libraries with their own copy of the Rust
standard library, which collides with subrandr's at link time, so both
are left out of FFmpeg for now.
2026-09-26 00:49:37 +02:00
Kacper Michajłow f9850ee727 ci: pin Windows runners to windows-2025
windows-latest and windows-2025 ship the Visual Studio 2026 image since
June 2026.
2026-09-23 14:46:07 +02:00
Kacper Michajłow ff7365b13c ci: run lightweight jobs on ubuntu-slim
ubuntu-slim is a single vCPU container runner meant for short jobs.
2026-09-23 14:46:07 +02:00
Kacper Michajłow 1768fc9840 ci/lint: run pre-commit directly instead of through pre-commit/action
The action is in maintenance-only mode, its last release is from
February 2024, and it wraps actions/cache@v4, which still targets Node
20 and warns on every run. It only installs pre-commit, caches its
environments and runs it, so do that in the job directly.
2026-09-23 14:46:07 +02:00
Kacper Michajłow 3dcfd57ec7 ci/lint: pin editorconfig-checker action to v3.0.0
We can update it as needed.
2026-09-23 14:46:07 +02:00
Kacper Michajłow 2d929ea98c ci/lint: pin python/mypy to v2.3.1
Just to not have floating version, we can update it as needed.
2026-09-23 14:46:07 +02:00
Kacper Michajłow 464c9f47bd ci/lint: update astral-sh/ruff-action to v4.1.0
It is published as immutable releases without a floating major tag,
which is why Dependabot never proposed it, so pin the exact tag and let
Dependabot follow it from here.

This the runner images soon will remove Node 20, so this is needed
change.
2026-09-23 14:46:07 +02:00
Kacper Michajłow bde488eae1 ci/lint: run luacheck from its release binary
lunarmodules/luacheck is a Docker action, which cannot run on
ubuntu-slim where this job is about to move. The luacheck release ships
a standalone Linux binary that only needs libc, so download the same
1.2.0 the action's image contains and run it directly.
2026-09-23 14:46:07 +02:00
Kacper Michajłow 34bbe14fd5 ci/lint: run swiftlint from its official image
norio-nomura/action-swiftlint has not been updated since November 2020
and rebuilds a Docker image on every run from a base that is at
SwiftLint 0.63.0. Use the image SwiftLint publishes itself as a
container job instead, pinned to the current release.
2026-09-23 14:46:07 +02:00
dependabot[bot] c6c4c38d7f ci: bump cross-platform-actions/action from 1.5.0 to 1.6.0
Bumps [cross-platform-actions/action](https://github.com/cross-platform-actions/action) from 1.5.0 to 1.6.0.
- [Release notes](https://github.com/cross-platform-actions/action/releases)
- [Changelog](https://github.com/cross-platform-actions/action/blob/master/changelog.md)
- [Commits](https://github.com/cross-platform-actions/action/compare/v1.5.0...v1.6.0)

---
updated-dependencies:
- dependency-name: cross-platform-actions/action
  dependency-version: 1.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-21 23:53:14 +02:00
der richter ddb70d28dc ci/mac: pin homebrew for macOS 14 runner to last working version
there is no llvm@22 and tesseract bottle for macOS 14 anymore after this
commit. this causes our runner to fail, since homebrew won't
automatically build from source when no bottle is available.

pin the homebrew version to the last known working version.
2026-09-13 04:42:39 +02:00
dependabot[bot] 0f1019805e ci: bump cross-platform-actions/action from 1.4.0 to 1.5.0
Bumps [cross-platform-actions/action](https://github.com/cross-platform-actions/action) from 1.4.0 to 1.5.0.
- [Release notes](https://github.com/cross-platform-actions/action/releases)
- [Changelog](https://github.com/cross-platform-actions/action/blob/master/changelog.md)
- [Commits](https://github.com/cross-platform-actions/action/compare/v1.4.0...v1.5.0)

---
updated-dependencies:
- dependency-name: cross-platform-actions/action
  dependency-version: 1.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-06 19:48:56 +02:00
Kacper Michajłow 02a595ddc1 ci: enable DVD-A build 2026-08-31 12:59:58 +02:00
der richter 2ee0b2a04b ci/mac: pin homebrew for macOS 15 intel runner to last working version
there is no mujs bottle for intel macs anymore after this version. this
causes our action to fail, since homebrew won't automatically build from
source when no bottle is available.

pin the homebrew version to the last known working version.
2026-08-31 10:56:15 +02:00
der richter 7d7f77bfb7 ci/mac: remove test and -werror on build tests for lowest taget
the arch=test builds only checks if our code can be successfully
compiled to the lowest macOS target we support, so we can catch wrongs
guards usage of newer functionality, etc before any merge. the builds
are not supposed to be completely runnable, since they link to libs
not build for the lowest target.

running tests on those builds is a waste of resources. warnings as error
will be reintroduced in a follow up commit.
2026-08-31 10:56:15 +02:00
Kacper Michajłow 49418246f3 ci: port BSD jobs to new cross-platform-actions syntax
The run input is deprecated. Split the monolithic scripts into the same
step layout as the other jobs. Sync the sources once at VM start and
skip the per-step file synchronization, since everything runs inside the
VM anyway.

This will make reading logs easier.
2026-08-21 13:36:49 +02:00
dependabot[bot] e034d612cf ci: bump cross-platform-actions/action from 1.3.0 to 1.4.0
Bumps [cross-platform-actions/action](https://github.com/cross-platform-actions/action) from 1.3.0 to 1.4.0.
- [Release notes](https://github.com/cross-platform-actions/action/releases)
- [Changelog](https://github.com/cross-platform-actions/action/blob/master/changelog.md)
- [Commits](https://github.com/cross-platform-actions/action/compare/v1.3.0...v1.4.0)

---
updated-dependencies:
- dependency-name: cross-platform-actions/action
  dependency-version: 1.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-16 13:43:18 +02:00
Kacper Michajłow 55146ecd14 ci/cleanup_caches: prune setup-msys2 package caches
setup-msys2 saves the pacman package cache under a key ending in a hash
of its contents. So with each update it saves more caches, what's more
important it saves it per each PR ref. We don't want that. Keep only the
msys2 cache on main branch and only the latest one per each
configuration. If PR saves new one, it will be dropped, we prefer master
branch case that can be used by all PR, rather then per PR cache of
this. The few packages that will be refetched are ok.

This change is an atempt to keep our cache under 10GB limit, to avoid
evicting more important ccache caches.
2026-07-31 17:58:16 +02:00
Kacper Michajłow 612bf5b6e8 ci/cleanup_caches: rewrite the selection as a single jq program
The nested jq invocations were hard to extend and left no trace of what
they decided. Delete by id rather than by key, since a key is only
unique per ref, and log each deletion.

No change in which caches are selected.
2026-07-31 17:58:16 +02:00
Kacper Michajłow 22c09166d7 ci/cleanup_caches: group all cleanup runs together
A cleanup is not tied to the build that triggered it, it always operates
on the whole cache state. Just cancel them and let the newest one
finish.
2026-07-31 17:58:16 +02:00
llyyr c8c7d91a8e ci/freebsd: bump freebsd version to 15.1 2026-07-06 13:17:01 +02:00
dependabot[bot] 42149e9eac ci: bump cross-platform-actions/action from 1.2.0 to 1.3.0
Bumps [cross-platform-actions/action](https://github.com/cross-platform-actions/action) from 1.2.0 to 1.3.0.
- [Release notes](https://github.com/cross-platform-actions/action/releases)
- [Changelog](https://github.com/cross-platform-actions/action/blob/master/changelog.md)
- [Commits](https://github.com/cross-platform-actions/action/compare/v1.2.0...v1.3.0)

---
updated-dependencies:
- dependency-name: cross-platform-actions/action
  dependency-version: 1.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-28 15:57:06 +02:00
dependabot[bot] 508d25590d ci: bump actions/cache from 5 to 6
Bumps [actions/cache](https://github.com/actions/cache) from 5 to 6.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-28 15:56:36 +02:00
dependabot[bot] dde8d8c4a0 ci: bump actions/checkout from 6 to 7
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-21 12:36:13 +02:00
Kacper Michajłow efe8644a93 github/workflows/docs: update package index to fix install failures
When index is outdated some files may not exist, when we try to install
them.
2026-06-20 23:30:14 +02:00
dependabot[bot] f88bcd25c7 ci: bump cross-platform-actions/action from 1.1.0 to 1.2.0
Bumps [cross-platform-actions/action](https://github.com/cross-platform-actions/action) from 1.1.0 to 1.2.0.
- [Release notes](https://github.com/cross-platform-actions/action/releases)
- [Changelog](https://github.com/cross-platform-actions/action/blob/master/changelog.md)
- [Commits](https://github.com/cross-platform-actions/action/compare/v1.1.0...v1.2.0)

---
updated-dependencies:
- dependency-name: cross-platform-actions/action
  dependency-version: 1.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-16 16:20:38 +00:00
Kacper Michajłow f88f423829 meson: consider only 'v0.*' tags when computing the version
This allow creating other tags on the repository and don't interfere
with version string generated.
2026-06-05 07:21:58 +02:00
Kacper Michajłow 4013a3c9b6 ci/build.yml: add publish job for git prerelease 2026-06-04 19:44:44 +02:00
Kacper Michajłow 02273e9d9e ci: fix comment workflow permissions
We are commenting on pull requests.
2026-06-02 12:05:07 +02:00
Kacper Michajłow 1c29507822 ci/msys2: workaround crashing whisper.cpp after unload
When FFmpeg is built with whisper.cpp, the libmpv-lifetime test fails
with `GGML_ASSERT(prev != ggml_uncaught_exception)`. Avoid this by
disabling the problematic backtrace code.
2026-06-02 02:11:07 +02:00
dependabot[bot] 1ac687d791 ci: bump cross-platform-actions/action from 1.0.0 to 1.1.0
Bumps [cross-platform-actions/action](https://github.com/cross-platform-actions/action) from 1.0.0 to 1.1.0.
- [Release notes](https://github.com/cross-platform-actions/action/releases)
- [Changelog](https://github.com/cross-platform-actions/action/blob/master/changelog.md)
- [Commits](https://github.com/cross-platform-actions/action/compare/v1.0.0...v1.1.0)

---
updated-dependencies:
- dependency-name: cross-platform-actions/action
  dependency-version: 1.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-24 15:59:02 +02:00
sfan5 1fe37856cb ci: fix comment workflow permissions 2026-05-19 18:54:30 +02:00
sfan5 8fc1a10a44 ci: fix necessary permissions for cleanup_caches and comment
This undoes de5edca29c,
because I failed to read the documentation.
2026-05-18 21:13:09 +02:00
sfan5 de5edca29c ci: clarify that cleanup_caches and comment don't use token permissions 2026-05-18 20:53:29 +02:00
Kacper Michajłow f90dfd033f ci: install curl 2026-05-16 18:20:42 +02:00
sfan5 7b70999b62 ci/mingw: cache tar downloads 2026-05-13 20:45:41 +02:00
Aly Smith f5939d0b93 ci: ensure winget is available on windows-11-arm
per actions/partner-runner-images#95, manually install and repair winget module in windows-11-arm runner to ensure it is available for following dependency step
2026-04-22 04:15:29 +02:00
dependabot[bot] da4789c2dd ci: bump cross-platform-actions/action from 0.32.0 to 1.0.0
Bumps [cross-platform-actions/action](https://github.com/cross-platform-actions/action) from 0.32.0 to 1.0.0.
- [Release notes](https://github.com/cross-platform-actions/action/releases)
- [Changelog](https://github.com/cross-platform-actions/action/blob/master/changelog.md)
- [Commits](https://github.com/cross-platform-actions/action/compare/v0.32.0...v1.0.0)

---
updated-dependencies:
- dependency-name: cross-platform-actions/action
  dependency-version: 1.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-12 14:57:28 +02:00