From 7027813cb268c8b168a2c6ac7e871761f02a4435 Mon Sep 17 00:00:00 2001 From: Raphaël Zumer Date: Wed, 11 Dec 2019 10:29:51 -0500 Subject: 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 0000000..7cf4339 --- /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) -- cgit v1.2.3 From d2e75197634de2e2252fe49b70b3461b506bd15a Mon Sep 17 00:00:00 2001 From: Raphaël Zumer Date: Thu, 12 Dec 2019 15:23:57 -0500 Subject: Enable GitHub CI on pull request Also rename the build to be more specific. --- .github/workflows/build-ubuntu.yml | 32 ++++++++++++++++++++++++++++++++ .github/workflows/ccppcmake.yml | 32 -------------------------------- 2 files changed, 32 insertions(+), 32 deletions(-) create mode 100644 .github/workflows/build-ubuntu.yml delete mode 100644 .github/workflows/ccppcmake.yml diff --git a/.github/workflows/build-ubuntu.yml b/.github/workflows/build-ubuntu.yml new file mode 100644 index 0000000..fc5bd90 --- /dev/null +++ b/.github/workflows/build-ubuntu.yml @@ -0,0 +1,32 @@ +name: CMake Build (Ubuntu x86-64) + +on: [push, pull_request] + +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) diff --git a/.github/workflows/ccppcmake.yml b/.github/workflows/ccppcmake.yml deleted file mode 100644 index 7cf4339..0000000 --- a/.github/workflows/ccppcmake.yml +++ /dev/null @@ -1,32 +0,0 @@ -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) -- cgit v1.2.3 From 469ff2d932f21efbf2f4693625e130f2c62a7421 Mon Sep 17 00:00:00 2001 From: Raphaël Zumer Date: Thu, 12 Dec 2019 15:44:11 -0500 Subject: 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 fc5bd90..8223e04 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 -- cgit v1.2.3 From 546e7ded96f88d92b6c7654b1bf73eee7e272d8a Mon Sep 17 00:00:00 2001 From: Raphaël Zumer Date: Thu, 12 Dec 2019 15:44:34 -0500 Subject: 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 0000000..1b91df3 --- /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)" -- cgit v1.2.3 From 331c3c3b86fb32d781e0f9fdeb8dd8ebc7c53660 Mon Sep 17 00:00:00 2001 From: Raphaël Zumer Date: Thu, 12 Dec 2019 22:06:57 -0500 Subject: 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 8223e04..e830985 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 1b91df3..0c66a5a 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 -- cgit v1.2.3 From 86ae2e02d0251b3bb8784dc5f0b8974e93b2f4e8 Mon Sep 17 00:00:00 2001 From: Raphaël Zumer Date: Fri, 13 Dec 2019 09:18:36 -0500 Subject: 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 e830985..a93d707 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 -- cgit v1.2.3 From 55db337c8d8e03108ab642a1c0d8772e06e4c6c8 Mon Sep 17 00:00:00 2001 From: Raphaël Zumer Date: Fri, 13 Dec 2019 11:34:28 -0500 Subject: 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 0c66a5a..c7d05d0 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 -- cgit v1.2.3 From 67903b7974dc6d44cda10c1c74eadebd1b4bbd2e Mon Sep 17 00:00:00 2001 From: Raphaël Zumer Date: Fri, 13 Dec 2019 12:42:39 -0500 Subject: 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 a93d707..fed0f3e 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 -- cgit v1.2.3