summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/ISSUE_TEMPLATE/2_bug_report_linux.md22
-rw-r--r--.github/ISSUE_TEMPLATE/2_bug_report_macos.md26
-rw-r--r--.github/ISSUE_TEMPLATE/2_bug_report_windows.md21
-rw-r--r--.github/ISSUE_TEMPLATE/3_bug_report.md23
-rw-r--r--.github/ISSUE_TEMPLATE/4_bug_report_build.md17
-rw-r--r--.github/ISSUE_TEMPLATE/5_feature_request.md5
-rw-r--r--.github/ISSUE_TEMPLATE/6_question.md25
-rw-r--r--.github/ISSUE_TEMPLATE/config.yml8
-rw-r--r--.github/workflows/build.yml418
-rw-r--r--.github/workflows/comment.yml65
-rw-r--r--.github/workflows/docs.yml26
-rw-r--r--.github/workflows/lint.yml22
12 files changed, 609 insertions, 69 deletions
diff --git a/.github/ISSUE_TEMPLATE/2_bug_report_linux.md b/.github/ISSUE_TEMPLATE/2_bug_report_linux.md
index 46a5bf99f4..e8e30d1931 100644
--- a/.github/ISSUE_TEMPLATE/2_bug_report_linux.md
+++ b/.github/ISSUE_TEMPLATE/2_bug_report_linux.md
@@ -15,7 +15,7 @@ Provide following Information:
- Source of the mpv binary
- If known which version of mpv introduced the problem
- Window Manager and version
-- GPU driver and version
+- GPU model, driver and version
- Possible screenshot or video of visual glitches
If you're not using git master or the latest release, update.
@@ -26,9 +26,13 @@ Releases are listed here: https://github.com/mpv-player/mpv/releases
Try to reproduce your issue with --no-config first. If it isn't reproducible
with --no-config try to first find out which option or script causes your issue.
+If the issue is performance-related, try to reproduce it with --no-config
+--profile=fast, which is designed to work on lower-end mobile devices.
+Additionally, enable hardware decoding with --hwdec=yes or the Ctrl+h shortcut.
+
Describe the reproduction steps as precise as possible. It's very likely that
the bug you experience wasn't reproduced by the developer because the workflow
-differes from your own.
+differs from your own.
### Expected behavior
@@ -36,14 +40,16 @@ differes from your own.
### Log file
-Make a log file made with -v -v or --log-file=output.txt, paste it to
-https://0x0.st/ or attach it to the github issue, and replace this text with a
-link to it.
+Make a log file made with -v -v or --log-file=output.txt, attach it to
+the issue, and replace this text with a link to it.
+
+Without the log file, this issue will be closed for ignoring the issue template.
-The issue will be closed for ignoring the issue template.
+In the case of a crash, please provide a backtrace.
### Sample files
-Sample files needed to reproduce this issue can be uploaded to https://0x0.st/
-or similar sites. (Only needed if the issue cannot be reproduced without it.)
+Sample files needed to reproduce this issue can be attached to the issue
+(preferred), or be uploaded to https://0x0.st/ or similar sites.
+(Only needed if the issue cannot be reproduced without it.)
Do not use garbage like "cloud storage", especially not Google Drive.
diff --git a/.github/ISSUE_TEMPLATE/2_bug_report_macos.md b/.github/ISSUE_TEMPLATE/2_bug_report_macos.md
index 43620a3918..470b4a0922 100644
--- a/.github/ISSUE_TEMPLATE/2_bug_report_macos.md
+++ b/.github/ISSUE_TEMPLATE/2_bug_report_macos.md
@@ -24,9 +24,13 @@ Releases are listed here: https://github.com/mpv-player/mpv/releases
Try to reproduce your issue with --no-config first. If it isn't reproducible
with --no-config try to first find out which option or script causes your issue.
+If the issue is performance-related, try to reproduce it with --no-config
+--profile=fast, which is designed to work on lower-end mobile devices.
+Additionally, enable hardware decoding with --hwdec=yes or the Ctrl+h shortcut.
+
Describe the reproduction steps as precise as possible. It's very likely that
the bug you experience wasn't reproduced by the developer because the workflow
-differes from your own.
+differs from your own.
### Expected behavior
@@ -34,18 +38,20 @@ differes from your own.
### Log file
-Make a log file made with -v -v or --log-file=output.txt. If you use the Bundle
-from a version later than 0.32 a default log is created for your last run at
-~/Library/Logs/mpv.log. You can jump to that file via the Help > Show log File…
-menu. Paste the log to https://0x0.st/ or attach it to the github issue, and
-replace this text with a link to it.
+Make a log file made with -v -v or --log-file=output.txt, attach it to
+the issue, and replace this text with a link to it.
+
+If you use the Bundle, a default log is created for your last run at
+~/Library/Logs/mpv.log. You can jump to that file via the
+Help > Show log File… menu.
-In the case of a crash please provide the macOS Crash Report (Backtrace).
+Without the log file, this issue will be closed for ignoring the issue template.
-The issue will be closed for ignoring the issue template.
+In the case of a crash, please provide the macOS Crash Report (Backtrace).
### Sample files
-Sample files needed to reproduce this issue can be uploaded to https://0x0.st/
-or similar sites. (Only needed if the issue cannot be reproduced without it.)
+Sample files needed to reproduce this issue can be attached to the issue
+(preferred), or be uploaded to https://0x0.st/ or similar sites.
+(Only needed if the issue cannot be reproduced without it.)
Do not use garbage like "cloud storage", especially not Google Drive.
diff --git a/.github/ISSUE_TEMPLATE/2_bug_report_windows.md b/.github/ISSUE_TEMPLATE/2_bug_report_windows.md
index cd19438aed..d936593615 100644
--- a/.github/ISSUE_TEMPLATE/2_bug_report_windows.md
+++ b/.github/ISSUE_TEMPLATE/2_bug_report_windows.md
@@ -14,6 +14,7 @@ Provide following Information:
- Windows Version
- Source of the mpv binary
- If known which version of mpv introduced the problem
+- GPU model, driver and version
- Possible screenshot or video of visual glitches
If you're not using git master or the latest release, update.
@@ -24,9 +25,13 @@ Releases are listed here: https://github.com/mpv-player/mpv/releases
Try to reproduce your issue with --no-config first. If it isn't reproducible
with --no-config try to first find out which option or script causes your issue.
+If the issue is performance-related, try to reproduce it with --no-config
+--profile=fast, which is designed to work on lower-end mobile devices.
+Additionally, enable hardware decoding with --hwdec=yes or the Ctrl+h shortcut.
+
Describe the reproduction steps as precise as possible. It's very likely that
the bug you experience wasn't reproduced by the developer because the workflow
-differes from your own.
+differs from your own.
### Expected behavior
@@ -34,14 +39,16 @@ differes from your own.
### Log file
-Make a log file made with -v -v or --log-file=output.txt, paste it to
-https://0x0.st/ or attach it to the github issue, and replace this text with a
-link to it.
+Make a log file made with -v -v or --log-file=output.txt, attach it to
+the issue, and replace this text with a link to it.
+
+Without the log file, this issue will be closed for ignoring the issue template.
-The issue will be closed for ignoring the issue template.
+In the case of a crash, please provide a backtrace.
### Sample files
-Sample files needed to reproduce this issue can be uploaded to https://0x0.st/
-or similar sites. (Only needed if the issue cannot be reproduced without it.)
+Sample files needed to reproduce this issue can be attached to the issue
+(preferred), or be uploaded to https://0x0.st/ or similar sites.
+(Only needed if the issue cannot be reproduced without it.)
Do not use garbage like "cloud storage", especially not Google Drive.
diff --git a/.github/ISSUE_TEMPLATE/3_bug_report.md b/.github/ISSUE_TEMPLATE/3_bug_report.md
index b42c254584..e33a003cf0 100644
--- a/.github/ISSUE_TEMPLATE/3_bug_report.md
+++ b/.github/ISSUE_TEMPLATE/3_bug_report.md
@@ -13,6 +13,9 @@ Provide following Information:
- mpv version
- Platform and Version
- Source of the mpv binary
+- If known which version of mpv introduced the problem
+- GPU model, driver and version
+- Possible screenshot or video of visual glitches
If you're not using git master or the latest release, update.
Releases are listed here: https://github.com/mpv-player/mpv/releases
@@ -22,9 +25,13 @@ Releases are listed here: https://github.com/mpv-player/mpv/releases
Try to reproduce your issue with --no-config first. If it isn't reproducible
with --no-config try to first find out which option or script causes your issue.
+If the issue is performance-related, try to reproduce it with --no-config
+--profile=fast, which is designed to work on lower-end mobile devices.
+Additionally, enable hardware decoding with --hwdec=yes or the Ctrl+h shortcut.
+
Describe the reproduction steps as precise as possible. It's very likely that
the bug you experience wasn't reproduced by the developer because the workflow
-differes from your own.
+differs from your own.
### Expected behavior
@@ -32,12 +39,16 @@ differes from your own.
### Log file
-Make a log file made with -v -v or --log-file=output.txt, paste it to
-https://0x0.st/ or attach it to the github issue, and replace this text with a
-link to it.
+Make a log file made with -v -v or --log-file=output.txt, attach it to
+the issue, and replace this text with a link to it.
+
+Without the log file, this issue will be closed for ignoring the issue template.
+
+In the case of a crash, please provide a backtrace.
### Sample files
-Sample files needed to reproduce this issue can be uploaded to https://0x0.st/
-or similar sites. (Only needed if the issue cannot be reproduced without it.)
+Sample files needed to reproduce this issue can be attached to the issue
+(preferred), or be uploaded to https://0x0.st/ or similar sites.
+(Only needed if the issue cannot be reproduced without it.)
Do not use garbage like "cloud storage", especially not Google Drive.
diff --git a/.github/ISSUE_TEMPLATE/4_bug_report_build.md b/.github/ISSUE_TEMPLATE/4_bug_report_build.md
index 8fae34c9e5..8370a300ae 100644
--- a/.github/ISSUE_TEMPLATE/4_bug_report_build.md
+++ b/.github/ISSUE_TEMPLATE/4_bug_report_build.md
@@ -2,12 +2,17 @@
name: 'Report a build Problem'
about: 'Create a report for a build related Issue'
title: ''
-labels: 'core:waf'
+labels: 'core:meson'
assignees: ''
---
-### mpv version and platform versions
+### Important Information
+
+Provide following Information:
+- mpv version
+- Platform and Version
+- meson version
If you're not using git master or the latest release, update.
Releases are listed here: https://github.com/mpv-player/mpv/releases
@@ -16,7 +21,7 @@ Releases are listed here: https://github.com/mpv-player/mpv/releases
Describe the reproduction steps as precise as possible. It's very likely that
the bug you experience wasn't reproduced by the developer because the workflow
-differes from your own.
+differs from your own.
### Expected behavior
@@ -24,7 +29,7 @@ differes from your own.
### Log file
-Upload build/config.log or ./waf configure output to https://0x0.st/ or attach
-it to the github issue, and replace this text with a link to it.
+Attach meson-logs/meson-log.txt or meson setup build output to the issue,
+and replace this text with a link to it.
-The issue will be closed for ignoring the issue template.
+Without the log file, this issue will be closed for ignoring the issue template.
diff --git a/.github/ISSUE_TEMPLATE/5_feature_request.md b/.github/ISSUE_TEMPLATE/5_feature_request.md
index 2fba2baab6..a28062253c 100644
--- a/.github/ISSUE_TEMPLATE/5_feature_request.md
+++ b/.github/ISSUE_TEMPLATE/5_feature_request.md
@@ -17,6 +17,5 @@ https://github.com/mpv-player/mpv/labels/meta%3Afeature-request
### Log file
Even if you think it's not necessary at first, it might help us later to find
-possible issues. Make a log file made with -v -v or --log-file=output.txt, paste
-it to https://0x0.st/ or attach it to the github issue, and replace this text
-with a link to it.
+possible issues. Make a log file made with -v -v or --log-file=output.txt,
+attach it to the issue, and replace this text with a link to it.
diff --git a/.github/ISSUE_TEMPLATE/6_question.md b/.github/ISSUE_TEMPLATE/6_question.md
deleted file mode 100644
index b6131f35d8..0000000000
--- a/.github/ISSUE_TEMPLATE/6_question.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-name: 'Ask a Question'
-about: 'Ask a question about mpv'
-title: ''
-labels: 'meta:question'
-assignees: ''
-
----
-
-Don't ask questions about issues, errors or problems you have and instead open
-a proper issue with the right template from the previous selection.
-
-This template is meant for questions about the workings of mpv, to clarify about
-unspecified behaviour of options or command, or anything else that is not well
-described and needs clarification.
-
-Before asking a question make sure it hasn't been asked or answered yet.
-https://github.com/mpv-player/mpv/labels/meta%3Aquestion
-
-### Log file
-
-Even if you think it's not necessary at first, it might help us later to find
-possible issues. Make a log file made with -v -v or --log-file=output.txt, paste
-it to https://0x0.st/ or attach it to the github issue, and replace this text
-with a link to it.
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index 163937a996..536ac9cc32 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -1,9 +1,9 @@
blank_issues_enabled: false
contact_links:
- - name: mpv irc channel
+ - name: mpv IRC channel
url: https://mpv.io/community/
- about: Feel free to ask questions here irc://irc.freenode.net/mpv
- - name: mpv irc developer channel
+ about: Feel free to ask questions here irc://irc.libera.chat/mpv
+ - name: mpv IRC developer channel
url: https://mpv.io/community/
about: Ask questions related to the development of mpv here
- irc://irc.freenode.net/mpv-devel
+ irc://irc.libera.chat/mpv-devel
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000000..c949712024
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,418 @@
+name: build
+
+on:
+ push:
+ branches:
+ - master
+ - ci
+ - 'release/**'
+ paths-ignore:
+ - 'DOCS/**'
+ - 'TOOLS/lua/**'
+ - '.editorconfig'
+ - '.gitignore'
+ - 'Copyright'
+ - 'README.md'
+ - 'RELEASE_NOTES'
+ pull_request:
+ branches: [master]
+ paths-ignore:
+ - 'DOCS/**'
+ - 'TOOLS/lua/**'
+ - '.editorconfig'
+ - '.gitignore'
+ - 'Copyright'
+ - 'README.md'
+ - 'RELEASE_NOTES'
+
+jobs:
+ mingw:
+ runs-on: ubuntu-22.04
+ env:
+ CCACHE_BASEDIR: ${{ github.workspace }}
+ CCACHE_DIR: ${{ github.workspace }}/.ccache
+ CCACHE_MAXSIZE: 500M
+ strategy:
+ fail-fast: false
+ matrix:
+ target: [i686-w64-mingw32, x86_64-w64-mingw32]
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Get time
+ id: get_time
+ run: echo "timestamp=`date +%s%N`" >> $GITHUB_OUTPUT
+
+ - uses: actions/cache@v4
+ with:
+ path: ${{ env.CCACHE_DIR }}
+ key: ${{ matrix.target }}-${{ steps.get_time.outputs.timestamp }}
+ restore-keys: ${{ matrix.target }}-
+
+ - name: Install dependencies
+ run: |
+ sudo dpkg --add-architecture i386
+ sudo apt-get update
+ sudo apt-get install -y autoconf automake pkg-config g++-mingw-w64 gcc-multilib python3-pip ninja-build nasm wine wine32 wine64 ccache
+ sudo python3 -m pip install meson
+
+ - name: Build libraries
+ run: |
+ ./ci/build-mingw64.sh
+ env:
+ TARGET: ${{ matrix.target }}
+
+ - name: Build with meson
+ id: build
+ run: |
+ ./ci/build-mingw64.sh meson pack
+ env:
+ TARGET: ${{ matrix.target }}
+
+ - name: Print meson log
+ if: ${{ failure() && steps.build.outcome == 'failure' }}
+ run: |
+ cat ./build/meson-logs/meson-log.txt
+
+ - name: Functional test
+ id: tests
+ run: |
+ cd artifact && wine64 ./mpv.com -v --no-config
+ env:
+ WINEDEBUG: '+loaddll'
+
+ - uses: actions/upload-artifact@v4
+ with:
+ name: mpv-${{ matrix.target }}
+ path: mpv-git-*.zip
+
+ macos:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ cc:
+ - "clang"
+ cxx:
+ - "clang++"
+ os:
+ - "macos-12"
+ - "macos-13"
+ - "macos-14"
+ include:
+ - os: "macos-12"
+ arch: "intel"
+ - os: "macos-13"
+ arch: "intel"
+ - os: "macos-14"
+ arch: "arm"
+ xcode: "Xcode_15.2"
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Remove stray upstream python binary symlinks under /usr/local
+ run: |
+ find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete -print
+ brew unlink python && brew link --overwrite python
+
+ - name: Change Xcode version
+ if: ${{ matrix.xcode != '' }}
+ run: |
+ sudo xcode-select -s /Applications/${{ matrix.xcode }}.app
+
+ - name: Install dependencies
+ run: |
+ brew update
+ brew install autoconf automake pkg-config libtool python freetype fribidi little-cms2 \
+ luajit libass ffmpeg meson uchardet mujs libplacebo molten-vk vulkan-loader vulkan-headers
+
+ - name: Build with meson
+ id: build
+ run: |
+ ./ci/build-macos.sh
+ env:
+ CC: "${{ matrix.cc }}"
+ CXX: "${{ matrix.cxx }}"
+ TRAVIS_OS_NAME: "${{ matrix.os }}"
+
+ - name: Create App Bundle
+ run: |
+ meson compile -C build macos-bundle
+ tar -czvf mpv.tar.gz -C build mpv.app
+
+ - name: Print meson log
+ if: ${{ failure() && steps.build.outcome == 'failure' }}
+ run: |
+ cat ./build/meson-logs/meson-log.txt
+
+ - name: Run meson tests
+ id: tests
+ run: |
+ meson test -C build
+
+ - name: Print meson test log
+ if: ${{ failure() && steps.tests.outcome == 'failure' }}
+ run: |
+ cat ./build/meson-logs/testlog.txt
+
+ - uses: actions/upload-artifact@v4
+ with:
+ name: mpv-${{ matrix.os }}-${{ matrix.arch }}
+ path: mpv.tar.gz
+
+ linux:
+ runs-on: "ubuntu-22.04"
+ container:
+ image: "registry.opensuse.org/home/mia/images/images/mpv-ci:stable-deps"
+ env:
+ CC: "${{ matrix.config.cc }}"
+ CXX: "${{ matrix.config.cxx }}"
+ strategy:
+ matrix:
+ config:
+ - {
+ cc: "gcc",
+ cxx: "g++",
+ }
+ - {
+ cc: "clang",
+ cxx: "clang++",
+ }
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Install dependencies
+ run: |
+ # workaround to avoid "fatal: unsafe repository" error
+ git config --global --add safe.directory "$GITHUB_WORKSPACE"
+
+ - name: Build with meson
+ id: build
+ run: |
+ ./ci/build-tumbleweed.sh
+
+ - name: Print meson log
+ if: ${{ failure() && steps.build.outcome == 'failure' }}
+ run: |
+ cat ./build/meson-logs/meson-log.txt
+
+ - name: Run meson tests
+ id: tests
+ run: |
+ meson test -C build
+
+ - name: Print meson test log
+ if: ${{ failure() && steps.tests.outcome == 'failure' }}
+ run: |
+ cat ./build/meson-logs/testlog.txt
+
+ linux-ffmpeg-4-4:
+ runs-on: ubuntu-22.04
+ container:
+ # We want to test ffmpeg 4.4 which alpine 3.15 has exactly.
+ # Furthermore, this is a very minimal build of mpv without commonly
+ # used features to test build compatibility. Musl is a nice bonus as well
+ image: alpine:3.15
+ steps:
+ - uses: actions/checkout@v4
+ - name: Install dependencies
+ run: |
+ apk update
+ apk add \
+ binutils \
+ ffmpeg-dev \
+ gcc \
+ git \
+ g++ \
+ libass-dev \
+ lua5.2-dev \
+ pulseaudio-dev \
+ libx11-dev \
+ libxfixes-dev \
+ libxkbcommon-dev \
+ libxrandr-dev \
+ libxpresent-dev \
+ libxscrnsaver-dev \
+ musl-dev \
+ py3-pip \
+ samurai
+ pip install meson
+
+ - name: Build with meson
+ id: build
+ run: |
+ ./ci/build-linux-old.sh
+
+ - name: Print meson log
+ if: ${{ failure() && steps.build.outcome == 'failure' }}
+ run: |
+ cat ./build/meson-logs/meson-log.txt
+
+ - name: Run meson tests
+ id: tests
+ run: |
+ meson test -C build
+
+ - name: Print meson test log
+ if: ${{ failure() && steps.tests.outcome == 'failure' }}
+ run: |
+ cat ./build/meson-logs/testlog.txt
+
+ openbsd:
+ runs-on: ubuntu-latest # until https://github.com/actions/runner/issues/385
+ timeout-minutes: 30 # avoid any weirdness with the VM
+ steps:
+ - uses: actions/checkout@v4
+ - name: Test in OpenBSD VM
+ uses: cross-platform-actions/action@v0.23.0
+ with:
+ operating_system: openbsd
+ version: '7.4'
+ run: |
+ sudo pkg_add -U \
+ cmake \
+ ffmpeg \
+ git \
+ libarchive \
+ libbluray \
+ libcaca \
+ libcdio-paranoia \
+ libdvdnav \
+ libiconv \
+ libv4l \
+ libxkbcommon \
+ luajit \
+ meson \
+ openal \
+ pkgconf \
+ pulseaudio \
+ python3 \
+ rubberband \
+ sdl2 \
+ shaderc \
+ spirv-cross \
+ spirv-headers \
+ uchardet \
+ vulkan-loader \
+ vulkan-headers \
+ zimg
+ ./ci/build-openbsd.sh
+ meson test -C build
+
+ freebsd:
+ runs-on: ubuntu-latest # until https://github.com/actions/runner/issues/385
+ timeout-minutes: 30 # avoid any weirdness with the VM
+ steps:
+ - uses: actions/checkout@v4
+ - name: Test in FreeBSD VM
+ uses: cross-platform-actions/action@v0.23.0
+ with:
+ operating_system: freebsd
+ version: '14.0'
+ run: |
+ sudo pkg update
+ sudo pkg install -y \
+ alsa-lib \
+ cmake \
+ evdev-proto \
+ ffmpeg \
+ git \
+ iconv \
+ jackit \
+ libarchive \
+ libbluray \
+ libcaca \
+ libcdio-paranoia \
+ libdvdnav \
+ libplacebo \
+ libXinerama \
+ libxkbcommon \
+ libxpresent \
+ libXv \
+ luajit \
+ meson \
+ mujs \
+ openal-soft \
+ pipewire \
+ pkgconf \
+ pulseaudio \
+ python3 \
+ rubberband \
+ sekrit-twc-zimg \
+ sdl2 \
+ sndio \
+ uchardet \
+ v4l_compat \
+ vulkan-headers \
+ wayland-protocols
+ ./ci/build-freebsd.sh
+ meson test -C build
+
+ msys2:
+ runs-on: windows-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ sys:
+ - clang64
+ - mingw64
+ - ucrt64
+ defaults:
+ run:
+ shell: msys2 {0}
+ steps:
+ - name: Disable autocrlf
+ shell: pwsh
+ run: |
+ git config --global core.autocrlf false
+ git config --global core.eol lf
+ - uses: actions/checkout@v4
+ - uses: msys2/setup-msys2@v2
+ with:
+ msystem: ${{ matrix.sys }}
+ update: true
+ install: git
+ pacboy: >-
+ angleproject:p
+ ca-certificates:p
+ cc:p
+ diffutils:p
+ ffmpeg:p
+ lcms2:p
+ libarchive:p
+ libass:p
+ libcdio-paranoia:p
+ libdvdnav:p
+ libjpeg-turbo:p
+ libplacebo:p
+ lua51:p
+ meson:p
+ ninja:p
+ pkgconf:p
+ python:p
+ rst2pdf:p
+ rubberband:p
+ shaderc:p
+ spirv-cross:p
+ uchardet:p
+ vapoursynth:p
+ vulkan-devel:p
+
+ - name: Build with meson
+ id: build
+ run: |
+ ./ci/build-msys2.sh meson
+
+ - name: Print meson log
+ if: ${{ failure() && steps.build.outcome == 'failure' }}
+ run: |
+ cat ./build/meson-logs/meson-log.txt
+
+ - name: Run meson tests
+ id: tests
+ run: |
+ meson test -C build
+
+ - name: Print meson test log
+ if: ${{ failure() && steps.tests.outcome == 'failure' }}
+ run: |
+ cat ./build/meson-logs/testlog.txt
diff --git a/.github/workflows/comment.yml b/.github/workflows/comment.yml
new file mode 100644
index 0000000000..c80f1d800d
--- /dev/null
+++ b/.github/workflows/comment.yml
@@ -0,0 +1,65 @@
+name: comment
+
+on:
+ workflow_run:
+ workflows: ["build"]
+ types: [completed]
+
+jobs:
+ pr_comment:
+ if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success'
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/github-script@v6
+ with:
+ script: |
+ const { owner, repo } = context.repo;
+ const run_id = ${{ github.event.workflow_run.id }};
+ const pull_head_sha = '${{github.event.workflow_run.head_sha}}';
+
+ const issue_number = await(async () => {
+ const pulls = await github.rest.pulls.list({ owner, repo });
+ for await (const { data } of github.paginate.iterator(pulls)) {
+ for (const pull of data) {
+ if (pull.head.sha === pull_head_sha) {
+ return pull.number;
+ }
+ }
+ }
+ })();
+ if (issue_number) {
+ core.info(`Using pull request ${issue_number}`);
+ } else {
+ return core.error(`No matching pull request found`);
+ }
+
+ const { data: { artifacts } } = await github.rest.actions.listWorkflowRunArtifacts({ owner, repo, run_id });
+ if (!artifacts.length) {
+ return core.error(`No artifacts found`);
+ }
+
+ let body = `Download the artifacts for this pull request:\n\n<details><summary>Windows</summary>\n`;
+ for (const art of artifacts) {
+ const art_link = `https://nightly.link/${owner}/${repo}/actions/artifacts/${art.id}.zip`;
+ if (art.name.includes('w64')) {
+ body += `\n* [${art.name}](${art_link})`;
+ }
+ }
+ body += `\n</details>\n\n<details><summary>macOS</summary>\n`;
+ for (const art of artifacts) {
+ const art_link = `https://nightly.link/${owner}/${repo}/actions/artifacts/${art.id}.zip`;
+ if (art.name.includes('macos')) {
+ body += `\n* [${art.name}](${art_link})`;
+ }
+ }
+ body += `\n</details>`;
+
+ const { data: comments } = await github.rest.issues.listComments({ repo, owner, issue_number });
+ const existing_comment = comments.find((c) => c.user.login === 'github-actions[bot]');
+ if (existing_comment) {
+ core.info(`Updating comment ${existing_comment.id}`);
+ await github.rest.issues.updateComment({ repo, owner, comment_id: existing_comment.id, body });
+ } else {
+ core.info(`Creating a comment`);
+ await github.rest.issues.createComment({ repo, owner, issue_number, body });
+ }
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
new file mode 100644
index 0000000000..3936769854
--- /dev/null
+++ b/.github/workflows/docs.yml
@@ -0,0 +1,26 @@
+name: docs
+
+on:
+ push:
+ branches:
+ - master
+ - ci
+ - 'release/**'
+ paths:
+ - 'DOCS/**'
+ pull_request:
+ branches: [master]
+ paths:
+ - 'DOCS/**'
+
+jobs:
+ check-docs:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Docs
+ run: |
+ sudo apt-get install python3-docutils rst2pdf
+ ./TOOLS/docutils-wrapper.py rst2man --strip-elements-with-class=contents --halt=2 ./DOCS/man/mpv.rst mpv.1
+ ./TOOLS/docutils-wrapper.py rst2html --halt=2 ./DOCS/man/mpv.rst mpv.html
+ ./TOOLS/docutils-wrapper.py rst2pdf -c -b 1 --repeat-table-rows ./DOCS/man/mpv.rst -o mpv.pdf
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
new file mode 100644
index 0000000000..4a881c26aa
--- /dev/null
+++ b/.github/workflows/lint.yml
@@ -0,0 +1,22 @@
+name: lint
+
+on:
+ push:
+ branches:
+ - master
+ - ci
+ - 'release/**'
+ pull_request:
+ branches: [master]
+
+jobs:
+ commit-msg:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 50
+
+ - name: Lint
+ run: |
+ ./ci/lint-commit-msg.py