From 7027813cb268c8b168a2c6ac7e871761f02a4435 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Zumer?= Date: Wed, 11 Dec 2019 10:29:51 -0500 Subject: [PATCH 1/8] Add C/C++ with CMake GitHub workflow This enables continuous integration with GitHub Actions. --- .github/workflows/ccppcmake.yml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 .github/workflows/ccppcmake.yml diff --git a/.github/workflows/ccppcmake.yml b/.github/workflows/ccppcmake.yml new file mode 100644 index 00000000..7cf43395 --- /dev/null +++ b/.github/workflows/ccppcmake.yml @@ -0,0 +1,32 @@ +name: C/C++ CI with CMake + +on: [push] + +env: + BUILD_TYPE: Release + CMAKE_VERSION: 3.15.2 + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + - name: Install dependencies + shell: bash + working-directory: ${{runner.workspace}} + run: | # Fetch a new version of CMake, because the default is too old. + wget -nv https://github.com/Kitware/CMake/releases/download/v$CMAKE_VERSION/cmake-$CMAKE_VERSION-Linux-x86_64.tar.gz \ + && tar -zxf cmake-$CMAKE_VERSION-Linux-x86_64.tar.gz \ + && sudo apt-get install gtk+-3.0 libcurl4-gnutls-dev libpcap0.8-dev libsdl2-dev + - name: Create build environment + run: mkdir ${{runner.workspace}}/build + - name: Configure + shell: bash + working-directory: ${{runner.workspace}}/build + run: ${{runner.workspace}}/cmake-$CMAKE_VERSION-Linux-x86_64/bin/cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE + - name: Make + shell: bash + working-directory: ${{runner.workspace}}/build + run: make -j$(nproc --all) From d2e75197634de2e2252fe49b70b3461b506bd15a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Zumer?= Date: Thu, 12 Dec 2019 15:23:57 -0500 Subject: [PATCH 2/8] Enable GitHub CI on pull request Also rename the build to be more specific. --- .github/workflows/{ccppcmake.yml => build-ubuntu.yml} | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename .github/workflows/{ccppcmake.yml => build-ubuntu.yml} (94%) diff --git a/.github/workflows/ccppcmake.yml b/.github/workflows/build-ubuntu.yml similarity index 94% rename from .github/workflows/ccppcmake.yml rename to .github/workflows/build-ubuntu.yml index 7cf43395..fc5bd90c 100644 --- a/.github/workflows/ccppcmake.yml +++ b/.github/workflows/build-ubuntu.yml @@ -1,6 +1,6 @@ -name: C/C++ CI with CMake +name: CMake Build (Ubuntu x86-64) -on: [push] +on: [push, pull_request] env: BUILD_TYPE: Release @@ -8,9 +8,9 @@ env: jobs: build: - + runs-on: ubuntu-latest - + steps: - uses: actions/checkout@v1 - name: Install dependencies From 469ff2d932f21efbf2f4693625e130f2c62a7421 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Zumer?= Date: Thu, 12 Dec 2019 15:44:11 -0500 Subject: [PATCH 3/8] Update packages on CI before installing --- .github/workflows/build-ubuntu.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-ubuntu.yml b/.github/workflows/build-ubuntu.yml index fc5bd90c..8223e04f 100644 --- a/.github/workflows/build-ubuntu.yml +++ b/.github/workflows/build-ubuntu.yml @@ -19,6 +19,7 @@ jobs: run: | # Fetch a new version of CMake, because the default is too old. wget -nv https://github.com/Kitware/CMake/releases/download/v$CMAKE_VERSION/cmake-$CMAKE_VERSION-Linux-x86_64.tar.gz \ && tar -zxf cmake-$CMAKE_VERSION-Linux-x86_64.tar.gz \ + && sudo apt-get update \ && sudo apt-get install gtk+-3.0 libcurl4-gnutls-dev libpcap0.8-dev libsdl2-dev - name: Create build environment run: mkdir ${{runner.workspace}}/build From 546e7ded96f88d92b6c7654b1bf73eee7e272d8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Zumer?= Date: Thu, 12 Dec 2019 15:44:34 -0500 Subject: [PATCH 4/8] Add Windows CI configuration --- .github/workflows/build-windows.yml | 34 +++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/workflows/build-windows.yml diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml new file mode 100644 index 00000000..1b91df3f --- /dev/null +++ b/.github/workflows/build-windows.yml @@ -0,0 +1,34 @@ +name: CMake Build (Windows x86-64) + +on: [push, pull_request] + +env: + BUILD_TYPE: Release + +jobs: + build: + + runs-on: windows-latest + + steps: + - uses: actions/checkout@v1 + - name: Install MSYS2 + working-directory: ${{runner.workspace}} + run: | # Fetch MSYS2 build from XQEmu. Official distribution causes a CI failure due to permission errors. + Invoke-WebRequest -Uri "https://github.com/xqemu/ci-environment-msys2/releases/latest/download/msys64.7z" -OutFile "msys64.7z" + 7z x -y msys64.7z "-oC:\tools\" + C:\tools\msys64\usr\bin\bash.exe -lc "pacman -Syuq --noconfirm" + - name: Install dependencies + run: C:\tools\msys64\usr\bin\bash.exe -lc "pacman -Sq --noconfirm git make mingw-w64-x86_64-{cmake,mesa,SDL2,toolchain}" + - name: Create build environment + run: | + New-Item -ItemType directory -Path ${{runner.workspace}}\melonDS\build + Copy-Item -Path ${{runner.workspace}}\melonDS -Destination C:\tools\msys64\home\runneradmin -Recurse + - name: Configure + run: | + C:\tools\msys64\usr\bin\bash.exe -lc "export PATH=`"/mingw64/bin:`$PATH`" \ + && cd melonDS/build && cmake .. -G 'MSYS Makefiles' -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}" + - name: Make + run: | + C:\tools\msys64\usr\bin\bash.exe -lc "export PATH=`"/mingw64/bin:`$PATH`" \ + && cd melonDS/build && make -j$(nproc --all)" From 331c3c3b86fb32d781e0f9fdeb8dd8ebc7c53660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Zumer?= Date: Thu, 12 Dec 2019 22:06:57 -0500 Subject: [PATCH 5/8] Upload CI build artifacts --- .github/workflows/build-ubuntu.yml | 4 ++++ .github/workflows/build-windows.yml | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/.github/workflows/build-ubuntu.yml b/.github/workflows/build-ubuntu.yml index 8223e04f..e8309856 100644 --- a/.github/workflows/build-ubuntu.yml +++ b/.github/workflows/build-ubuntu.yml @@ -31,3 +31,7 @@ jobs: shell: bash working-directory: ${{runner.workspace}}/build run: make -j$(nproc --all) + - uses: actions/upload-artifact@v1 + with: + name: melonDS + path: ${{runner.workspace}}/build/melonDS diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 1b91df3f..0c66a5a0 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -32,3 +32,7 @@ jobs: run: | C:\tools\msys64\usr\bin\bash.exe -lc "export PATH=`"/mingw64/bin:`$PATH`" \ && cd melonDS/build && make -j$(nproc --all)" + - uses: actions/upload-artifact@v1 + with: + name: melonDS.exe + path: C:\tools\msys64\home\runneradmin\melonDS\build\melonDS.exe From 86ae2e02d0251b3bb8784dc5f0b8974e93b2f4e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Zumer?= Date: Fri, 13 Dec 2019 09:18:36 -0500 Subject: [PATCH 6/8] Fix Ubuntu CI when Microsoft breaks repositories --- .github/workflows/build-ubuntu.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-ubuntu.yml b/.github/workflows/build-ubuntu.yml index e8309856..a93d707f 100644 --- a/.github/workflows/build-ubuntu.yml +++ b/.github/workflows/build-ubuntu.yml @@ -19,6 +19,7 @@ jobs: run: | # Fetch a new version of CMake, because the default is too old. wget -nv https://github.com/Kitware/CMake/releases/download/v$CMAKE_VERSION/cmake-$CMAKE_VERSION-Linux-x86_64.tar.gz \ && tar -zxf cmake-$CMAKE_VERSION-Linux-x86_64.tar.gz \ + && sudo rm -f /etc/apt/sources.list.d/dotnetdev.list /etc/apt/sources.list.d/microsoft-prod.list \ && sudo apt-get update \ && sudo apt-get install gtk+-3.0 libcurl4-gnutls-dev libpcap0.8-dev libsdl2-dev - name: Create build environment From 55db337c8d8e03108ab642a1c0d8772e06e4c6c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Zumer?= Date: Fri, 13 Dec 2019 11:34:28 -0500 Subject: [PATCH 7/8] Package shared resources with Windows CI artifacts --- .github/workflows/build-windows.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 0c66a5a0..c7d05d03 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -31,8 +31,9 @@ jobs: - name: Make run: | C:\tools\msys64\usr\bin\bash.exe -lc "export PATH=`"/mingw64/bin:`$PATH`" \ - && cd melonDS/build && make -j$(nproc --all)" + && cd melonDS/build && make -j$(nproc --all) \ + && ../msys-dist.sh" - uses: actions/upload-artifact@v1 with: - name: melonDS.exe - path: C:\tools\msys64\home\runneradmin\melonDS\build\melonDS.exe + name: melonDS + path: C:\tools\msys64\home\runneradmin\melonDS\build\dist From 67903b7974dc6d44cda10c1c74eadebd1b4bbd2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Zumer?= Date: Fri, 13 Dec 2019 12:42:39 -0500 Subject: [PATCH 8/8] Include romlist.bin with Linux CI artifacts --- .github/workflows/build-ubuntu.yml | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-ubuntu.yml b/.github/workflows/build-ubuntu.yml index a93d707f..fed0f3e2 100644 --- a/.github/workflows/build-ubuntu.yml +++ b/.github/workflows/build-ubuntu.yml @@ -17,11 +17,11 @@ jobs: shell: bash working-directory: ${{runner.workspace}} run: | # Fetch a new version of CMake, because the default is too old. - wget -nv https://github.com/Kitware/CMake/releases/download/v$CMAKE_VERSION/cmake-$CMAKE_VERSION-Linux-x86_64.tar.gz \ - && tar -zxf cmake-$CMAKE_VERSION-Linux-x86_64.tar.gz \ - && sudo rm -f /etc/apt/sources.list.d/dotnetdev.list /etc/apt/sources.list.d/microsoft-prod.list \ - && sudo apt-get update \ - && sudo apt-get install gtk+-3.0 libcurl4-gnutls-dev libpcap0.8-dev libsdl2-dev + wget -nv https://github.com/Kitware/CMake/releases/download/v$CMAKE_VERSION/cmake-$CMAKE_VERSION-Linux-x86_64.tar.gz \ + && tar -zxf cmake-$CMAKE_VERSION-Linux-x86_64.tar.gz \ + && sudo rm -f /etc/apt/sources.list.d/dotnetdev.list /etc/apt/sources.list.d/microsoft-prod.list \ + && sudo apt-get update \ + && sudo apt-get install gtk+-3.0 libcurl4-gnutls-dev libpcap0.8-dev libsdl2-dev - name: Create build environment run: mkdir ${{runner.workspace}}/build - name: Configure @@ -31,8 +31,11 @@ jobs: - name: Make shell: bash working-directory: ${{runner.workspace}}/build - run: make -j$(nproc --all) + run: | + make -j$(nproc --all) \ + && mkdir dist \ + && cp {melonDS,romlist.bin} dist - uses: actions/upload-artifact@v1 with: name: melonDS - path: ${{runner.workspace}}/build/melonDS + path: ${{runner.workspace}}/build/dist