diff options
Diffstat (limited to '.github')
-rw-r--r-- | .github/ISSUE_TEMPLATE/2_bug_report_linux.md | 22 | ||||
-rw-r--r-- | .github/ISSUE_TEMPLATE/2_bug_report_macos.md | 26 | ||||
-rw-r--r-- | .github/ISSUE_TEMPLATE/2_bug_report_windows.md | 21 | ||||
-rw-r--r-- | .github/ISSUE_TEMPLATE/3_bug_report.md | 23 | ||||
-rw-r--r-- | .github/ISSUE_TEMPLATE/4_bug_report_build.md | 17 | ||||
-rw-r--r-- | .github/ISSUE_TEMPLATE/5_feature_request.md | 5 | ||||
-rw-r--r-- | .github/ISSUE_TEMPLATE/6_question.md | 25 | ||||
-rw-r--r-- | .github/ISSUE_TEMPLATE/config.yml | 8 | ||||
-rw-r--r-- | .github/workflows/build.yml | 442 | ||||
-rw-r--r-- | .github/workflows/comment.yml | 65 | ||||
-rw-r--r-- | .github/workflows/docs.yml | 26 | ||||
-rw-r--r-- | .github/workflows/lint.yml | 22 |
12 files changed, 633 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..57cd24b37e --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,442 @@ +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-fuzz: + runs-on: "ubuntu-latest" + container: + image: "registry.opensuse.org/home/mia/images/images/mpv-ci:stable-deps" + env: + CC: "clang" + CXX: "clang++" + steps: + - uses: actions/checkout@v4 + + - name: Build with meson + id: build + run: | + meson setup build \ + --werror \ + -Dc_args="-Wno-error=deprecated -Wno-error=deprecated-declarations" \ + -Dfuzzers=true -Dlibmpv=true -Dcplayer=false + meson compile -C build + + - name: Print meson log + if: ${{ failure() && steps.build.outcome == 'failure' }} + run: | + cat ./build/meson-logs/meson-log.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 |