Update check-smp.yml #230
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: GitHub CI | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: # | |
jobs: | |
build-linux: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Git checkout | |
uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install cmake git ninja-build checkinstall | |
sudo apt-get install -y --no-install-recommends build-essential g++ gcc libass-dev pkg-config | |
git clone https://github.com/AviSynth/AviSynthPlus avsplus | |
cd avsplus | |
cmake -G "Ninja" -B avisynth-build -S . | |
cd avisynth-build | |
ninja | |
sudo checkinstall --pkgname=avisynth --pkgversion="$(grep -r Version avs_core/avisynth.pc | cut -f2 -d " ")-$(date --rfc-3339=date | sed 's/-//g')-git" --backup=no --deldoc=yes --delspec=yes --deldesc=yes --strip=yes --stripso=yes --addso=yes --fstrans=no --default ninja install | |
- name: Build binary | |
run: | | |
cmake -B build -S . | |
cmake --build build --clean-first | |
- name: Copy binary | |
run: cmake -E copy "build/src/libassrender.so" "dist/libassrender.so" | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: assrender_bin_linux | |
path: dist | |
build-win: | |
runs-on: windows-latest | |
steps: | |
- name: Git checkout | |
uses: actions/checkout@v4 | |
- name: Pull submodules | |
run: | | |
git submodule update --init --recursive | |
mkdir avsplus | |
# - name: Install MSYS2 with dependencies | |
# uses: msys2/setup-msys2@v2 | |
# with: | |
# update: true | |
# install: base-devel git mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-libass | |
# msystem: MINGW64 | |
# path-type: inherit | |
- name: Parse AviSynth+ release metadata | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
const req = await github.request('https://api.github.com/repos/avisynth/avisynthplus/releases'); | |
const data = req.data; | |
let link = ''; | |
for(let rel of data){ | |
if(rel.prerelease||rel.draft){ | |
continue; | |
} | |
for(let asset of rel.assets){ | |
if(asset.name.match(/-filesonly.7z$/i)){ | |
link = asset.browser_download_url; | |
} | |
} | |
if(link != ''){ | |
break; | |
} | |
} | |
core.exportVariable('PACKAGE_URL', link); | |
- name: Download AviSynth+ latest release | |
run: curl -L "${{ env.PACKAGE_URL }}" --create-dirs -o "./avsplus/avisynthplus-latest-filesonly.7z" | |
- name: Move libs files | |
run: | | |
7z e "avsplus\*-filesonly.7z" -o"lib\x86-32" "*\x86\Output\c_api\AviSynth.lib" | |
7z e "avsplus\*-filesonly.7z" -o"lib\x86-64" "*\x64\Output\c_api\AviSynth.lib" | |
- name: Add MSBuild to PATH | |
uses: microsoft/setup-msbuild@v2 | |
with: | |
msbuild-architecture: x64 | |
- name: Prepare NASM | |
uses: ilammy/setup-nasm@v1 | |
- name: Setup VSYASM and VSNASM | |
run: | | |
git clone https://github.com/ShiftMediaProject/VSYASM.git | |
.\VSYASM\install_script.bat | |
git clone https://github.com/ShiftMediaProject/VSNASM.git | |
.\VSNASM\install_script.bat | |
- name: Build binaries | |
shell: cmd | |
run: | | |
set NASMPATH=%USERPROFILE%\nasm\ | |
MSBuild.exe /t:Rebuild /p:PlatformToolset=v143 /m /p:Configuration=Release /p:Platform=x86 | |
MSBuild.exe /t:Rebuild /p:PlatformToolset=v143 /m /p:Configuration=Release /p:Platform=x64 | |
# - name: Build MINGW64 binary | |
# shell: msys2 {0} | |
# run: | | |
# cmake -G "MinGW Makefiles" -B build -S . | |
# cmake --build build --config Release --clean-first | |
- name: Copy x86 binary | |
run: cmake -E copy "bin\Release_Win32\assrender.dll" "dist\Release_x86\assrender.dll" | |
- name: Copy x64 binary | |
run: cmake -E copy "bin\Release_x64\assrender.dll" "dist\Release_x64\assrender.dll" | |
# - name: Copy MINGW64 binary | |
# run: cmake -E copy "build\src\assrender.dll" "dist\Release_MINGW64\assrender.dll" | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: assrender_bin_win | |
path: dist |