Build L-SMASH Works #1013
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: Build L-SMASH Works | |
on: | |
push: | |
branches: | |
- master | |
workflow_dispatch: | |
schedule: | |
- cron: '0 0 * * 0,4' | |
jobs: | |
build: | |
env: | |
CFLAGS: -O2 | |
CXXFLAGS: -O2 | |
runs-on: ubuntu-24.04 | |
strategy: | |
matrix: | |
lsw_config: | |
- { author: VFR-maniac, ffmpeg_version: "4.4", ffmpeg_patch: " (patched)", ffmpeg_extra_flags: "--enable-avresample" } | |
- { author: Mr-Ojii, ffmpeg_version: "7.0", ffmpeg_patch: "", ffmpeg_extra_flags: ""} | |
l-smash_author: [Mr-Ojii, vimeo] | |
cpu_config: | |
- { cpu: i686, arch: x86, user_arch: x86, vpx_target: x86-win32-gcc } | |
- { cpu: x86_64, arch: x86_64, user_arch: x64, vpx_target: x86_64-win64-gcc } | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Install depend lib | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install -y autoconf cmake libtool nasm mingw-w64 meson ninja-build pkg-config | |
- name: Create pkg-config symbolic link | |
run: sudo ln -s /usr/bin/pkg-config /usr/bin/${{ matrix.cpu_config.cpu }}-w64-mingw32-pkg-config | |
- name: Set git config | |
run: | | |
git config --global user.name Mr-Ojii | |
git config --global user.email okaschan@gmail.com | |
- name: Install zlib | |
run: | | |
cd ${{ github.workspace }} | |
git clone https://github.com/madler/zlib.git --depth 1 | |
cd zlib | |
CROSS_PREFIX=${{ matrix.cpu_config.cpu }}-w64-mingw32- ./configure --static --prefix=${{ github.workspace }}/lsw | |
make -j$(nproc) | |
make install -j$(nproc) | |
- name: Install Game Music Emu | |
run: | | |
cd ${{ github.workspace }} | |
git clone https://bitbucket.org/mpyne/game-music-emu.git --depth 1 | |
cd game-music-emu | |
# cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DENABLE_UBSAN=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/cmake_toolchainfile/${{ matrix.cpu_config.cpu }}.cmake | |
# cmake --build build -j $(nproc) | |
# cmake --install build --prefix ${{ github.workspace }}/lsw | |
- name: Install dav1d | |
run: | | |
cd ${{ github.workspace }} | |
git clone https://code.videolan.org/videolan/dav1d.git --depth 1 | |
cd dav1d | |
mkdir build && cd build | |
meson setup --cross-file=../package/crossfiles/${{ matrix.cpu_config.cpu }}-w64-mingw32.meson --buildtype release --default-library=static -Denable_tests=false --prefix=${{ github.workspace }}/lsw .. | |
ninja | |
ninja install | |
- name: Install libvpx | |
run: | | |
cd ${{ github.workspace }} | |
git clone https://github.com/webmproject/libvpx.git --depth 1 | |
mkdir libvpx/builds && cd libvpx/builds | |
CROSS=${{ matrix.cpu_config.cpu }}-w64-mingw32- ../configure --target=${{ matrix.cpu_config.vpx_target }} --enable-vp9-highbitdepth --disable-docs --disable-tools --disable-examples --disable-webm-io --disable-vp8-encoder --disable-vp9-encoder --prefix=${{ github.workspace }}/lsw | |
make -j$(nproc) | |
make install -j$(nproc) | |
- name: Install nv-codec-headers | |
run: | | |
cd ${{ github.workspace }} | |
git clone https://github.com/FFmpeg/nv-codec-headers.git --depth 1 | |
cd nv-codec-headers | |
sudo make install -j$(nproc) | |
- name: Install mfx_dispatch | |
run: | | |
cd ${{ github.workspace }} | |
git clone https://github.com/lu-zero/mfx_dispatch.git --depth 1 | |
cd mfx_dispatch | |
autoreconf -i | |
./configure --host=${{ matrix.cpu_config.cpu }}-w64-mingw32 --prefix=${{ github.workspace }}/lsw | |
make -j$(nproc) | |
make install -j$(nproc) | |
- name: Install libvpl | |
run: | | |
cd ${{ github.workspace }} | |
git clone https://github.com/intel/libvpl.git --depth 1 | |
cd libvpl | |
mkdir build && cd build | |
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE="${{ github.workspace }}/cmake_toolchainfile/${{ matrix.cpu_config.cpu }}.cmake" -DBUILD_EXPERIMENTAL=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/lsw" .. | |
ninja | |
ninja install | |
- name: Install FFmpeg | |
run: | | |
cd ${{ github.workspace }} | |
git clone https://github.com/FFmpeg/FFmpeg.git -b release/${{ matrix.lsw_config.ffmpeg_version }} | |
cd FFmpeg | |
# 文字が1文字以上存在すれば実行される | |
if [ "${{ matrix.lsw_config.ffmpeg_patch }}" ]; then | |
git cherry-pick 07bcedc232feeb9e30336624f4e9977d47ac43bc | |
fi | |
PKG_CONFIG_PATH=${{ github.workspace }}/lsw/lib/pkgconfig ./configure --enable-version3 ${{ matrix.lsw_config.ffmpeg_extra_flags }} --disable-hwaccels --disable-encoders --disable-avisynth --disable-doc --disable-network --disable-programs --disable-outdevs --disable-indevs --disable-avfilter --disable-debug --disable-muxers --enable-avcodec --enable-avformat --enable-swresample --enable-swscale --extra-libs="-lpthread" --cross-prefix=${{ matrix.cpu_config.cpu }}-w64-mingw32- --target-os=mingw32 --arch=${{ matrix.cpu_config.arch }} --prefix=${{ github.workspace }}/lsw --enable-libdav1d --enable-libvpx --enable-libmfx | |
make -j$(nproc) | |
make install -j$(nproc) | |
- name: Install obuparse | |
run: | | |
cd ${{ github.workspace }} | |
git clone https://github.com/dwbuiten/obuparse.git --depth 1 | |
cd obuparse | |
${{ matrix.cpu_config.cpu }}-w64-mingw32-gcc -O2 -c obuparse.c | |
${{ matrix.cpu_config.cpu }}-w64-mingw32-ar r libobuparse.a obuparse.o | |
install obuparse.h ${{ github.workspace }}/lsw/include | |
install libobuparse.a ${{ github.workspace }}/lsw/lib | |
- name: Install L-SMASH | |
run: | | |
cd ${{ github.workspace }} | |
git clone https://github.com/${{ matrix.l-smash_author }}/l-smash.git | |
cd l-smash | |
./configure --cross-prefix=${{ matrix.cpu_config.cpu }}-w64-mingw32- --extra-cflags=-I${{ github.workspace }}/lsw/include --extra-ldflags=-L${{ github.workspace }}/lsw/lib --prefix=${{ github.workspace }}/lsw | |
make lib -j$(nproc) | |
make install-lib -j$(nproc) | |
- name: Install AviSynthPlus | |
run: | | |
cd ${{ github.workspace }} | |
git clone https://github.com/AviSynth/AviSynthPlus.git --depth 1 -b v3.7.3 | |
cd AviSynthPlus | |
# Multiple definitions防止のため、勝手にちょっとだけパッチを当てる | |
sed -i 's/MSVC/__MINGW32__/' avs_core/filters/AviSource/avi_source.cpp | |
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DENABLE_PLUGINS=OFF -DENABLE_INTEL_SIMD=OFF -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/cmake_toolchainfile/${{ matrix.cpu_config.cpu }}.cmake | |
cmake --build build -j $(nproc) | |
cmake --install build --prefix ${{ github.workspace }}/lsw | |
- name: Install zimg | |
run: | | |
cd ${{ github.workspace }} | |
git clone https://github.com/sekrit-twc/zimg -b v3.0 --depth 1 | |
cd zimg | |
./autogen.sh | |
./configure --host=${{ matrix.cpu_config.cpu }}-w64-mingw32 --prefix=${{ github.workspace }}/lsw | |
make -j$(nproc) | |
make install -j$(nproc) | |
- name: Install VapourSynth | |
run: | | |
cd ${{ github.workspace }} | |
git clone https://github.com/vapoursynth/vapoursynth -b R68 --depth 1 | |
cd vapoursynth | |
./autogen.sh | |
CC=${{ matrix.cpu_config.cpu }}-w64-mingw32-gcc-posix CXX=${{ matrix.cpu_config.cpu }}-w64-mingw32-g++-posix PKG_CONFIG_PATH=${{ github.workspace }}/lsw/lib/pkgconfig ./configure --host=${{ matrix.cpu_config.cpu }}-w64-mingw32 --disable-vsscript --disable-vspipe --disable-python-module --prefix=${{ github.workspace }}/lsw | |
make -j$(nproc) | |
make install -j$(nproc) | |
- name: Clone L-SMASH Works | |
run: | | |
cd ${{ github.workspace }} | |
git clone https://github.com/${{ matrix.lsw_config.author }}/L-SMASH-Works.git | |
- name: Set L-SMASH Works Revision Info | |
id: l-smash-works-rev | |
run: | | |
cd ${{ github.workspace }}/L-SMASH-Works | |
REVCOUNT=`git rev-list --count HEAD` | |
echo "REV_LIST_COUNT=${REVCOUNT}" >> $GITHUB_OUTPUT | |
SHA=`git rev-parse HEAD` | |
echo "REV_SHA=${SHA}" >> $GITHUB_OUTPUT | |
# VFR-maniac版はmesonに対応していないため、一時的に除外 | |
- name: Build L-SMASH Works(AviSynth) | |
if: ${{ matrix.lsw_config.author != 'VFR-maniac' }} | |
run: | | |
cd ${{ github.workspace }}/L-SMASH-Works/AviSynth | |
# ヘッダファイルの階層問題より、AviSynthのヘッダを一つ上の階層にぶちまける | |
mv ${{ github.workspace }}/lsw/include/avisynth/* ${{ github.workspace }}/lsw/include | |
PKG_CONFIG_PATH=${{ github.workspace }}/lsw/lib/pkgconfig meson setup --cross-file=${{ github.workspace }}/meson_lsw_crossfile/${{ matrix.cpu_config.cpu }}-w64-mingw32.meson build | |
ninja -C build | |
- name: Build L-SMASH Works(VapourSynth)(meson) | |
if: ${{ matrix.lsw_config.author != 'VFR-maniac' }} | |
run: | | |
cd ${{ github.workspace }}/L-SMASH-Works/VapourSynth | |
PKG_CONFIG_PATH=${{ github.workspace }}/lsw/lib/pkgconfig meson setup --cross-file=${{ github.workspace }}/meson_lsw_crossfile/${{ matrix.cpu_config.cpu }}-w64-mingw32.meson build | |
ninja -C build | |
- name: Build L-SMASH Works(VapourSynth)(makefile) | |
if: ${{ matrix.lsw_config.author == 'VFR-maniac' }} | |
run: | | |
cd ${{ github.workspace }}/L-SMASH-Works/VapourSynth | |
PKG_CONFIG_PATH=${{ github.workspace }}/lsw/lib/pkgconfig ./configure --cross-prefix=${{ matrix.cpu_config.cpu }}-w64-mingw32- --extra-cflags=-I/usr/local/include --extra-ldflags="-L/usr/local/lib -static-libgcc -static-libstdc++ -static" --extra-libs="-lpthread" | |
make | |
mkdir build | |
mv libvslsmashsource.so.${{ steps.l-smash-works-rev.outputs.REV_LIST_COUNT }} build/libvslsmashsource.dll | |
- name: Create pub Directory | |
run: | | |
cd ${{ github.workspace }} | |
mkdir pub | |
- name: Copy to pub Directory(AviSynth) | |
if: ${{ matrix.lsw_config.author != 'VFR-maniac' }} | |
run: | | |
cd ${{ github.workspace }} | |
mkdir pub/AviSynth && mkdir pub/AviSynth/${{ matrix.cpu_config.user_arch }} | |
cp L-SMASH-Works/AviSynth/build/*.dll pub/AviSynth/${{ matrix.cpu_config.user_arch }} | |
- name: Copy to pub Directory(VapourSynth) | |
run: | | |
cd ${{ github.workspace }} | |
mkdir pub/VapourSynth && mkdir pub/VapourSynth/${{ matrix.cpu_config.user_arch }} | |
cp L-SMASH-Works/VapourSynth/build/*.dll pub/VapourSynth/${{ matrix.cpu_config.user_arch }} | |
- name: Upload artifact test(AviSynth/VapourSynth) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.lsw_config.author }}-${{ matrix.l-smash_author }}-Synth-${{ matrix.cpu_config.user_arch }} | |
path: ${{ github.workspace }}/pub | |
- name: Build L-SMASH Works(AviUtl) | |
run: | | |
cd ${{ github.workspace }}/L-SMASH-Works/AviUtl | |
PKG_CONFIG_PATH=${{ github.workspace }}/lsw/lib/pkgconfig ./configure --cross-prefix=${{ matrix.cpu_config.cpu }}-w64-mingw32- --extra-cflags=-I/usr/local/include --extra-ldflags="-L/usr/local/lib -static-libgcc -static-libstdc++ -static" --extra-libs="-lpthread" | |
make -j$(nproc) | |
- name: Set workflow Revision Info | |
id: workflow-rev | |
run: | | |
cd ${{ github.workspace }} | |
REVCOUNT=`git rev-list --count HEAD` | |
echo "REV_LIST_COUNT=${REVCOUNT}" >> $GITHUB_OUTPUT | |
SHA=`git rev-parse HEAD` | |
echo "REV_SHA=${SHA}" >> $GITHUB_OUTPUT | |
- name: Set zlib Revision Info | |
id: zlib-rev | |
run: | | |
cd ${{ github.workspace }}/zlib | |
REVCOUNT=`git rev-list --count HEAD` | |
echo "REV_LIST_COUNT=${REVCOUNT}" >> $GITHUB_OUTPUT | |
SHA=`git rev-parse HEAD` | |
echo "REV_SHA=${SHA}" >> $GITHUB_OUTPUT | |
- name: Set dav1d Revision Info | |
id: dav1d-rev | |
run: | | |
cd ${{ github.workspace }}/dav1d | |
REVCOUNT=`git rev-list --count HEAD` | |
echo "REV_LIST_COUNT=${REVCOUNT}" >> $GITHUB_OUTPUT | |
SHA=`git rev-parse HEAD` | |
echo "REV_SHA=${SHA}" >> $GITHUB_OUTPUT | |
- name: Set libvpx Revision Info | |
id: libvpx-rev | |
run: | | |
cd ${{ github.workspace }}/libvpx | |
REVCOUNT=`git rev-list --count HEAD` | |
echo "REV_LIST_COUNT=${REVCOUNT}" >> $GITHUB_OUTPUT | |
SHA=`git rev-parse HEAD` | |
echo "REV_SHA=${SHA}" >> $GITHUB_OUTPUT | |
- name: Set nv-codec-headers Revision Info | |
id: nv-codec-headers-rev | |
run: | | |
cd ${{ github.workspace }}/nv-codec-headers | |
REVCOUNT=`git rev-list --count HEAD` | |
echo "REV_LIST_COUNT=${REVCOUNT}" >> $GITHUB_OUTPUT | |
SHA=`git rev-parse HEAD` | |
echo "REV_SHA=${SHA}" >> $GITHUB_OUTPUT | |
- name: Set mfx_dispatch Revision Info | |
id: mfx_dispatch-rev | |
run: | | |
cd ${{ github.workspace }}/mfx_dispatch | |
REVCOUNT=`git rev-list --count HEAD` | |
echo "REV_LIST_COUNT=${REVCOUNT}" >> $GITHUB_OUTPUT | |
SHA=`git rev-parse HEAD` | |
echo "REV_SHA=${SHA}" >> $GITHUB_OUTPUT | |
- name: Set libvpl Revision Info | |
id: libvpl-rev | |
run: | | |
cd ${{ github.workspace }}/libvpl | |
REVCOUNT=`git rev-list --count HEAD` | |
echo "REV_LIST_COUNT=${REVCOUNT}" >> $GITHUB_OUTPUT | |
SHA=`git rev-parse HEAD` | |
echo "REV_SHA=${SHA}" >> $GITHUB_OUTPUT | |
- name: Set obuparse Revision Info | |
id: obuparse-rev | |
run: | | |
cd ${{ github.workspace }}/obuparse | |
REVCOUNT=`git rev-list --count HEAD` | |
echo "REV_LIST_COUNT=${REVCOUNT}" >> $GITHUB_OUTPUT | |
SHA=`git rev-parse HEAD` | |
echo "REV_SHA=${SHA}" >> $GITHUB_OUTPUT | |
- name: Set L-SMASH Revision Info | |
id: l-smash-rev | |
run: | | |
cd ${{ github.workspace }}/l-smash | |
REVCOUNT=`git rev-list --count HEAD` | |
echo "REV_LIST_COUNT=${REVCOUNT}" >> $GITHUB_OUTPUT | |
SHA=`git rev-parse HEAD` | |
echo "REV_SHA=${SHA}" >> $GITHUB_OUTPUT | |
- name: Create BuildInfo File | |
run: | | |
cd ${{ github.workspace }}/L-SMASH-Works | |
echo "L-SMASH-Works-Auto-Builds r${{ steps.workflow-rev.outputs.REV_LIST_COUNT }} | |
https://github.com/Mr-Ojii/L-SMASH-Works-Auto-Builds | |
${{ matrix.lsw_config.author }}/L-SMASH-Works r${{ steps.l-smash-works-rev.outputs.REV_LIST_COUNT }} | |
https://github.com/${{ matrix.lsw_config.author }}/L-SMASH-Works | |
FFmpeg ${{ matrix.lsw_config.ffmpeg_version }}${{ matrix.lsw_config.ffmpeg_patch }} | |
https://github.com/FFmpeg/FFmpeg | |
${{ matrix.l-smash_author }}/L-SMASH r${{ steps.l-smash-rev.outputs.REV_LIST_COUNT }} | |
https://github.com/${{ matrix.l-smash_author }}/l-smash | |
dav1d ${{ steps.dav1d-rev.outputs.REV_SHA }} | |
https://github.com/videolan/dav1d | |
libvpx ${{ steps.libvpx-rev.outputs.REV_SHA }} | |
https://github.com/webmproject/libvpx | |
nv-codec-headers ${{ steps.nv-codec-headers-rev.outputs.REV_SHA }} | |
https://github.com/FFmpeg/nv-codec-headers | |
mfx_dispatch ${{ steps.mfx_dispatch-rev.outputs.REV_SHA }} | |
https://github.com/lu-zero/mfx_dispatch | |
libvpl ${{ steps.libvpl-rev.outputs.REV_SHA }} | |
https://github.com/intel/libvpl | |
zlib ${{ steps.zlib-rev.outputs.REV_SHA }} | |
https://github.com/madler/zlib | |
obuparse ${{ steps.obuparse-rev.outputs.REV_SHA }} | |
https://github.com/dwbuiten/obuparse" >> "AviUtl/About-this-build.txt" | |
- name: Add License Files | |
run: | | |
mkdir ${{ github.workspace }}/L-SMASH-Works/AviUtl/Licenses | |
cd ${{ github.workspace }}/L-SMASH-Works/AviUtl/Licenses | |
cp ${{ github.workspace }}/dav1d/COPYING dav1d.txt | |
cp ${{ github.workspace }}/l-smash/LICENSE L-SMASH.txt | |
cp ${{ github.workspace }}/FFmpeg/COPYING.LGPLv3 FFmpeg.txt | |
cp ${{ github.workspace }}/libvpx/LICENSE libvpx.txt | |
cp ${{ github.workspace }}/mfx_dispatch/LICENSE mfx_dispatch.txt | |
echo "[InternetShortcut]" > zlib.url | |
echo "URL=https://zlib.net/zlib_license.html" >> zlib.url | |
cp ${{ github.workspace }}/obuparse/LICENSE obuparse.txt | |
- name: Create RevInfo.txt | |
run: | | |
cd ${{ github.workspace }}/L-SMASH-Works/AviUtl | |
echo ${{ steps.l-smash-works-rev.outputs.REV_LIST_COUNT }} > RevInfo.txt | |
- name: Rename Files(x64) | |
if: ${{ matrix.cpu_config.arch == 'x86_64' }} | |
run: | | |
cd ${{ github.workspace }}/L-SMASH-Works/AviUtl | |
mv lwinput.aui lwinput64.aui | |
mv About-this-build.txt About-this-build-x64.txt | |
mv RevInfo.txt RevInfo64.txt | |
- name: Upload artifact(x86) | |
uses: actions/upload-artifact@v4 | |
if: ${{ matrix.cpu_config.user_arch == 'x86' }} | |
with: | |
name: ${{ matrix.lsw_config.author }}_${{ matrix.l-smash_author }}-${{ matrix.cpu_config.user_arch }} | |
path: | | |
${{ github.workspace }}/L-SMASH-Works/AviUtl/*.auf | |
${{ github.workspace }}/L-SMASH-Works/AviUtl/*.auc | |
${{ github.workspace }}/L-SMASH-Works/AviUtl/*.aui | |
${{ github.workspace }}/L-SMASH-Works/AviUtl/README | |
${{ github.workspace }}/L-SMASH-Works/AviUtl/README.ja | |
${{ github.workspace }}/L-SMASH-Works/AviUtl/LICENSE | |
${{ github.workspace }}/L-SMASH-Works/AviUtl/About-this-build.txt | |
${{ github.workspace }}/L-SMASH-Works/AviUtl/Licenses | |
${{ github.workspace }}/L-SMASH-Works/AviUtl/RevInfo.txt | |
- name: Upload artifact(x64) | |
uses: actions/upload-artifact@v4 | |
if: ${{ matrix.cpu_config.user_arch == 'x64' }} | |
with: | |
name: ${{ matrix.lsw_config.author }}_${{ matrix.l-smash_author }}-${{ matrix.cpu_config.user_arch }} | |
path: | | |
${{ github.workspace }}/L-SMASH-Works/AviUtl/*.aui | |
${{ github.workspace }}/L-SMASH-Works/AviUtl/About-this-build-x64.txt | |
${{ github.workspace }}/L-SMASH-Works/AviUtl/RevInfo64.txt | |
create-archive: | |
name: Create archive | |
needs: build | |
runs-on: ubuntu-24.04 | |
strategy: | |
matrix: | |
author: [VFR-maniac, Mr-Ojii] | |
l-smash_author: [Mr-Ojii, vimeo] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: ${{ matrix.author }}_${{ matrix.l-smash_author }}-x86 | |
path: x86 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: ${{ matrix.author }}_${{ matrix.l-smash_author }}-x64 | |
path: x64 | |
- name: Copy Artifacts | |
run: | | |
cd ${{ github.workspace }} | |
mkdir artifacts | |
cp -r x86/* artifacts | |
cp -r x64/* artifacts | |
- name: Set RevInfo | |
id: rev-info | |
run: | | |
cd ${{ github.workspace }}/artifacts | |
if [ "$(cat RevInfo.txt)" != "$(cat RevInfo64.txt)" ]; then | |
exit 1 | |
fi | |
echo -n "REV=" > Rev.txt | |
cat RevInfo.txt >> Rev.txt | |
cat Rev.txt >> $GITHUB_OUTPUT | |
rm Rev.txt RevInfo.txt RevInfo64.txt | |
- name: Check diff | |
run: | | |
cd ${{ github.workspace }}/artifacts | |
if [ "$(diff About-this-build.txt About-this-build-x64.txt)" == "" ]; then | |
rm About-this-build-x64.txt | |
fi | |
- name: Create archive | |
run: | | |
cd ${{ github.workspace }}/artifacts | |
zip L-SMASH-Works_r${{ steps.rev-info.outputs.REV }}_${{ matrix.author }}_${{ matrix.l-smash_author }} -r * | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: L-SMASH-Works-${{ matrix.author }}_${{ matrix.l-smash_author }} | |
path: ${{ github.workspace }}/artifacts/*.zip | |
create-release: | |
name: Create release | |
needs: create-archive | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
path: artifacts | |
- name: Get Date | |
id: get_date | |
run: | | |
DATE_TIME=`date +'%Y-%m-%d-%H-%M-%S'` | |
echo "DATE_TIME=${DATE_TIME}" >> $GITHUB_OUTPUT | |
- name: Create a Release | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
cd ${{ github.workspace }}/artifacts | |
mv ./*/*.zip ./ | |
RELEASE_NAME=Build-${{ steps.get_date.outputs.DATE_TIME }} | |
TAG_NAME=build-${{ steps.get_date.outputs.DATE_TIME }} | |
for asset in *.zip; do | |
if [[ "$asset" =~ "Mr-Ojii_Mr-Ojii" ]]; then | |
AVIUTL_RECOMMEND_FILE=$asset | |
fi | |
done | |
echo "AviUtl用には\`${AVIUTL_RECOMMEND_FILE}\`をダウンロードすることをお勧めします。" >> ReleaseNotes.txt | |
echo "また、別バージョンからMr-Ojii版L-SMASH Worksに更新する場合、以下の記事をお読みください。" >> ReleaseNotes.txt | |
echo "https://scrapbox.io/Mr-Ojii/Mr-Ojii%E7%89%88_L-SMASH_Works%E3%81%AE%E6%9C%80%E6%96%B0%E7%89%88%E3%81%AB%E6%9B%B4%E6%96%B0%E3%81%99%E3%82%8B%E9%9A%9B%E3%81%AE%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A0%85" >> ReleaseNotes.txt | |
gh release create "${TAG_NAME}" ${{ github.workspace }}/artifacts/*.zip -t "${RELEASE_NAME}" -F ReleaseNotes.txt | |
- uses: dev-drprasad/delete-older-releases@v0.3.4 | |
with: | |
keep_latest: 20 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |