From 6593fefd64162ab79ee8491999de9535f4adf141 Mon Sep 17 00:00:00 2001 From: Mioki <22417711+okibcn@users.noreply.github.com> Date: Sat, 25 Mar 2023 00:43:38 -0700 Subject: [PATCH 1/7] Add: Xbuild test --- .github/workflows/github_actions_build.yml | 54 +++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/.github/workflows/github_actions_build.yml b/.github/workflows/github_actions_build.yml index f5f8976e..a7d47842 100644 --- a/.github/workflows/github_actions_build.yml +++ b/.github/workflows/github_actions_build.yml @@ -26,7 +26,7 @@ jobs: make CLANG=Y demos buildWindows: - runs-on: windows-2022 + runs-on: windows-latest steps: - uses: actions/checkout@master @@ -40,3 +40,55 @@ jobs: cd ..\vt nmake CHTYPE_32=Y -f Makefile.vc demos shell: cmd + + XbuildWindows: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + include: + - { name: W32_VT, arch: _w32, ENV: vt, PREFIX: i686-w64-mingw32 } + - { name: W32_WINCON, arch: _w32, ENV: wincon, PREFIX: i686-w64-mingw32 } + - { name: W32_WINGUI, arch: _w32, ENV: wingui, PREFIX: i686-w64-mingw32 } + - { name: W32_SDL2, arch: _w32, ENV: sdl2, PREFIX: i686-w64-mingw32 } + - { name: W64_VT, arch: _w64, ENV: vt, PREFIX: x86_64-w64-mingw32 } + - { name: W64_WINCON, arch: _w64, ENV: wincon, PREFIX: x86_64-w64-mingw32 } + - { name: W64_WINGUI, arch: _w64, ENV: wingui, PREFIX: x86_64-w64-mingw32 } + - { name: W64_SDL2, arch: _w64, ENV: sdl2, PREFIX: x86_64-w64-mingw32 } + - { name: WoA_VT, arch: _a64, ENV: vt, PREFIX: aarch64-w64-mingw32 } + - { name: WoA_WINCON, arch: _a64, ENV: wincon, PREFIX: aarch64-w64-mingw32 } + - { name: WoA_WINGUI, arch: _a64, ENV: wingui, PREFIX: aarch64-w64-mingw32 } + steps: + - uses: actions/checkout@master + - name: ${{ matrix.name }} + shell: bash + run: | + ## download llvm-MinGW + assetsUrl=$(wget -qO- https://github.com/mstorsjo/llvm-mingw/releases/latest | grep "expanded_assets" | grep -Po 'https[^"]+') + pkgUrl="http://github.com$(wget -qO- $assetsUrl | grep 'href.*ucrt.*x86_64.tar.xz' | grep -Po '/[^"]+')" + wget -qO- $pkgUrl | tar -Jxvf - + mv llvm* llvm-mingw + LLVMBASE="$(pwd)/llvm-mingw" + + if [[ "${{ matrix.ENV }}" == "sdl2" ]]; then + ## download SDL2 + assetsUrl=$(wget -qO- https://github.com/libsdl-org/SDL/releases/latest | grep "expanded_assets" | grep -Po 'https[^"]+') + pkgUrl="http://github.com$(wget -qO- $assetsUrl | grep 'href.*mingw.tar.gz' | grep -Po '/[^"]+')" + wget -qO- $pkgUrl | tar xzvf - + mv SDL2-* SDL2-dev + export SDLBASE="$(pwd)/SDL2-dev" + + ## download SDL2_ttf + assetsUrl=$(wget -qO- https://github.com/libsdl-org/SDL_ttf/releases/latest | grep "expanded_assets" | grep -Po 'https[^"]+') + pkgUrl="http://github.com$(wget -qO- $assetsUrl | grep 'href.*mingw.tar.gz' | grep -Po '/[^"]+')" + wget -qO- $pkgUrl | tar xzvf - + mv SDL2_ttf* SDL2_ttf-dev + export TTFBASE="$(pwd)/SDL2_ttf-dev" + + export PATH="$SDLBASE/${{ matrix.PREFIX }}/bin:$TTFBASE/${{ matrix.PREFIX }}/bin:$PATH" + fi + + export PATH="$LLVMBASE/bin:$PATH" + + cd ${{ matrix.ENV }} + make demos ${{ matrix.arch }}=Y WIDE=Y UTF8=Y From 88cddd266deca4f9f16353cfdb714039ff2a35a2 Mon Sep 17 00:00:00 2001 From: Mioki <22417711+okibcn@users.noreply.github.com> Date: Sat, 25 Mar 2023 00:53:17 -0700 Subject: [PATCH 2/7] Add: workflow dispatch --- .github/workflows/github_actions_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/github_actions_build.yml b/.github/workflows/github_actions_build.yml index a7d47842..9d66580d 100644 --- a/.github/workflows/github_actions_build.yml +++ b/.github/workflows/github_actions_build.yml @@ -1,6 +1,6 @@ name: Build -on: [push, pull_request] +on: [push, pull_request, workflow_dispatch] jobs: buildUbuntu: From 3727e60b73f801d7fb36e9e1e3fb92767d5c1b08 Mon Sep 17 00:00:00 2001 From: Mioki <22417711+okibcn@users.noreply.github.com> Date: Sat, 25 Mar 2023 11:26:45 -0700 Subject: [PATCH 3/7] CI test: add tests for non UTF-8 versions. --- .github/workflows/github_actions_build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/github_actions_build.yml b/.github/workflows/github_actions_build.yml index 9d66580d..801d37cf 100644 --- a/.github/workflows/github_actions_build.yml +++ b/.github/workflows/github_actions_build.yml @@ -91,4 +91,6 @@ jobs: export PATH="$LLVMBASE/bin:$PATH" cd ${{ matrix.ENV }} + make demos ${{ matrix.arch }}=Y + make clean make demos ${{ matrix.arch }}=Y WIDE=Y UTF8=Y From ea859b86f310b3c835ca85eac60ce2bc8e1cd45e Mon Sep 17 00:00:00 2001 From: Mioki <22417711+okibcn@users.noreply.github.com> Date: Sat, 25 Mar 2023 12:11:52 -0700 Subject: [PATCH 4/7] Using multiprocessor to speedup test builds --- .github/workflows/github_actions_build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/github_actions_build.yml b/.github/workflows/github_actions_build.yml index 801d37cf..accfe305 100644 --- a/.github/workflows/github_actions_build.yml +++ b/.github/workflows/github_actions_build.yml @@ -91,6 +91,6 @@ jobs: export PATH="$LLVMBASE/bin:$PATH" cd ${{ matrix.ENV }} - make demos ${{ matrix.arch }}=Y + make -j$(($(nproc)*2)) demos ${{ matrix.arch }}=Y make clean - make demos ${{ matrix.arch }}=Y WIDE=Y UTF8=Y + make -j$(($(nproc)*2)) demos ${{ matrix.arch }}=Y WIDE=Y UTF8=Y From 901c9a8b9cb4e024a1edd1b7acd478700d69794b Mon Sep 17 00:00:00 2001 From: Mioki <22417711+okibcn@users.noreply.github.com> Date: Sat, 25 Mar 2023 19:03:19 -0700 Subject: [PATCH 5/7] Build_test: upload demos as artifact for offline testing. --- .github/workflows/github_actions_build.yml | 45 +++++++++++++++------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/.github/workflows/github_actions_build.yml b/.github/workflows/github_actions_build.yml index accfe305..c2700739 100644 --- a/.github/workflows/github_actions_build.yml +++ b/.github/workflows/github_actions_build.yml @@ -47,17 +47,28 @@ jobs: fail-fast: false matrix: include: - - { name: W32_VT, arch: _w32, ENV: vt, PREFIX: i686-w64-mingw32 } - - { name: W32_WINCON, arch: _w32, ENV: wincon, PREFIX: i686-w64-mingw32 } - - { name: W32_WINGUI, arch: _w32, ENV: wingui, PREFIX: i686-w64-mingw32 } - - { name: W32_SDL2, arch: _w32, ENV: sdl2, PREFIX: i686-w64-mingw32 } - - { name: W64_VT, arch: _w64, ENV: vt, PREFIX: x86_64-w64-mingw32 } - - { name: W64_WINCON, arch: _w64, ENV: wincon, PREFIX: x86_64-w64-mingw32 } - - { name: W64_WINGUI, arch: _w64, ENV: wingui, PREFIX: x86_64-w64-mingw32 } - - { name: W64_SDL2, arch: _w64, ENV: sdl2, PREFIX: x86_64-w64-mingw32 } - - { name: WoA_VT, arch: _a64, ENV: vt, PREFIX: aarch64-w64-mingw32 } - - { name: WoA_WINCON, arch: _a64, ENV: wincon, PREFIX: aarch64-w64-mingw32 } - - { name: WoA_WINGUI, arch: _a64, ENV: wingui, PREFIX: aarch64-w64-mingw32 } + - { name: VT_W32, arch: _w32, ENV: vt, UTF8: N, PREFIX: i686-w64-mingw32 } + - { name: WINCON_W32, arch: _w32, ENV: wincon, UTF8: N, PREFIX: i686-w64-mingw32 } + - { name: WINGUI_W32, arch: _w32, ENV: wingui, UTF8: N, PREFIX: i686-w64-mingw32 } + - { name: SDL2_W32, arch: _w32, ENV: sdl2, UTF8: N, PREFIX: i686-w64-mingw32 } + - { name: VT_W64, arch: _w64, ENV: vt, UTF8: N, PREFIX: x86_64-w64-mingw32 } + - { name: WINCON_W64, arch: _w64, ENV: wincon, UTF8: N, PREFIX: x86_64-w64-mingw32 } + - { name: WINGUI_W64, arch: _w64, ENV: wingui, UTF8: N, PREFIX: x86_64-w64-mingw32 } + - { name: SDL2_W64, arch: _w64, ENV: sdl2, UTF8: N, PREFIX: x86_64-w64-mingw32 } + - { name: VT_WoA, arch: _a64, ENV: vt, UTF8: N, PREFIX: aarch64-w64-mingw32 } + - { name: WINCON_WoA, arch: _a64, ENV: wincon, UTF8: N, PREFIX: aarch64-w64-mingw32 } + - { name: WINGUI_WoA, arch: _a64, ENV: wingui, UTF8: N, PREFIX: aarch64-w64-mingw32 } + - { name: VT_W32_UTF8, arch: _w32, ENV: vt, UTF8: Y, PREFIX: i686-w64-mingw32 } + - { name: WINCON_W32_UTF8, arch: _w32, ENV: wincon, UTF8: Y, PREFIX: i686-w64-mingw32 } + - { name: WINGUI_W32_UTF8, arch: _w32, ENV: wingui, UTF8: Y, PREFIX: i686-w64-mingw32 } + - { name: SDL2_W32_UTF8, arch: _w32, ENV: sdl2, UTF8: Y, PREFIX: i686-w64-mingw32 } + - { name: VT_W64_UTF8, arch: _w64, ENV: vt, UTF8: Y, PREFIX: x86_64-w64-mingw32 } + - { name: WINCON_W64_UTF8, arch: _w64, ENV: wincon, UTF8: Y, PREFIX: x86_64-w64-mingw32 } + - { name: WINGUI_W64_UTF8, arch: _w64, ENV: wingui, UTF8: Y, PREFIX: x86_64-w64-mingw32 } + - { name: SDL2_W64_UTF8, arch: _w64, ENV: sdl2, UTF8: Y, PREFIX: x86_64-w64-mingw32 } + - { name: VT_WoA_UTF8, arch: _a64, ENV: vt, UTF8: Y, PREFIX: aarch64-w64-mingw32 } + - { name: WINCON_WoA_UTF8, arch: _a64, ENV: wincon, UTF8: Y, PREFIX: aarch64-w64-mingw32 } + - { name: WINGUI_WoA_UTF8, arch: _a64, ENV: wingui, UTF8: Y, PREFIX: aarch64-w64-mingw32 } steps: - uses: actions/checkout@master - name: ${{ matrix.name }} @@ -91,6 +102,12 @@ jobs: export PATH="$LLVMBASE/bin:$PATH" cd ${{ matrix.ENV }} - make -j$(($(nproc)*2)) demos ${{ matrix.arch }}=Y - make clean - make -j$(($(nproc)*2)) demos ${{ matrix.arch }}=Y WIDE=Y UTF8=Y + [[ "${{ matrix.UTF8 }}" == "Y" ]] && make -j$(nproc) demos ${ARCH}=Y WIDE=Y UTF8=Y || make -j$(nproc) demos ${ARCH}=Y + + - name: "Upload Artifact" + uses: actions/upload-artifact@v3 + with: + name: ${{ matrix.name }} + path: | + ${{ matrix.ENV }}/*.exe + ${{ matrix.ENV }}/*.dll From 8963718043f20c893f1044cc755ac560a7203f63 Mon Sep 17 00:00:00 2001 From: Mioki <22417711+okibcn@users.noreply.github.com> Date: Sat, 25 Mar 2023 19:06:02 -0700 Subject: [PATCH 6/7] build_test: fix matrixed architecture. --- .github/workflows/github_actions_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/github_actions_build.yml b/.github/workflows/github_actions_build.yml index c2700739..a0727c4c 100644 --- a/.github/workflows/github_actions_build.yml +++ b/.github/workflows/github_actions_build.yml @@ -102,7 +102,7 @@ jobs: export PATH="$LLVMBASE/bin:$PATH" cd ${{ matrix.ENV }} - [[ "${{ matrix.UTF8 }}" == "Y" ]] && make -j$(nproc) demos ${ARCH}=Y WIDE=Y UTF8=Y || make -j$(nproc) demos ${ARCH}=Y + [[ "${{ matrix.UTF8 }}" == "Y" ]] && make -j$(nproc) demos ${{ matrix.ARCH }}=Y WIDE=Y UTF8=Y || make -j$(nproc) demos ${{ matrix.ARCH }}=Y - name: "Upload Artifact" uses: actions/upload-artifact@v3 From 41a249369c076d7e848b92b6c21f6ca07e34b887 Mon Sep 17 00:00:00 2001 From: Mioki <22417711+okibcn@users.noreply.github.com> Date: Sun, 26 Mar 2023 09:44:52 -0700 Subject: [PATCH 7/7] Build_test: Add required DLLs to the artifact for direct testing. --- .github/workflows/github_actions_build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/github_actions_build.yml b/.github/workflows/github_actions_build.yml index a0727c4c..3f81f05f 100644 --- a/.github/workflows/github_actions_build.yml +++ b/.github/workflows/github_actions_build.yml @@ -88,6 +88,7 @@ jobs: wget -qO- $pkgUrl | tar xzvf - mv SDL2-* SDL2-dev export SDLBASE="$(pwd)/SDL2-dev" + cp $SDLBASE/${{ matrix.PREFIX }}/bin/*.dll sdl2 ## download SDL2_ttf assetsUrl=$(wget -qO- https://github.com/libsdl-org/SDL_ttf/releases/latest | grep "expanded_assets" | grep -Po 'https[^"]+') @@ -95,6 +96,7 @@ jobs: wget -qO- $pkgUrl | tar xzvf - mv SDL2_ttf* SDL2_ttf-dev export TTFBASE="$(pwd)/SDL2_ttf-dev" + cp $TTFBASE/${{ matrix.PREFIX }}/bin/*.dll sdl2 export PATH="$SDLBASE/${{ matrix.PREFIX }}/bin:$TTFBASE/${{ matrix.PREFIX }}/bin:$PATH" fi