From 7a4deed83884616afe8a7fb05694a22ad4a2b759 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Leclercq?= Date: Mon, 23 Aug 2021 18:48:15 +0200 Subject: [PATCH] Add msys2 CI --- .github/workflows/linux-build.yml | 5 +- .github/workflows/msys2-build.yml | 90 +++++++++++++++++++++++++++++ .github/workflows/windows-build.yml | 5 +- 3 files changed, 96 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/msys2-build.yml diff --git a/.github/workflows/linux-build.yml b/.github/workflows/linux-build.yml index 9080d6f1d..d9257ee74 100644 --- a/.github/workflows/linux-build.yml +++ b/.github/workflows/linux-build.yml @@ -1,9 +1,10 @@ -name: Linux-Build +name: Linux build on: pull_request: push: paths-ignore: + - '.github/workflows/msys2-build.yml' - '.github/workflows/windows-build.yml' - '.gitignore' - 'LICENSE' @@ -56,7 +57,7 @@ jobs: - name: Retrieve dependencies hash id: dep_hash run: echo "::set-output name=hash::$(xmake l utils.ci.packageskey)" - + # Cache xmake dependencies - name: Retrieve cached xmake dependencies uses: actions/cache@v2 diff --git a/.github/workflows/msys2-build.yml b/.github/workflows/msys2-build.yml new file mode 100644 index 000000000..202ea2f4d --- /dev/null +++ b/.github/workflows/msys2-build.yml @@ -0,0 +1,90 @@ +name: MSYS2 build (MinGW-w64) + +on: + pull_request: + push: + paths-ignore: + - '.github/workflows/linux-build.yml' + - '.github/workflows/windows-build.yml' + - '.gitignore' + - 'LICENSE' + - 'CHANGELOG.md' + - 'README.md' + - 'README_en.md' + - 'README_fr.md' + +jobs: + build: + strategy: + matrix: + msystem: [mingw64] + os: [windows-latest] + arch: [x86_64] + mode: [debug, releasedbg] + + runs-on: ${{ matrix.os }} + if: "!contains(github.event.head_commit.message, 'ci skip')" + + defaults: + run: + shell: msys2 {0} + + steps: + - uses: actions/checkout@v2 + + # Setup MSYS2 + - uses: msys2/setup-msys2@v2 + with: + msystem: ${{ matrix.msystem }} + install: git base-devel unzip p7zip mingw-w64-${{ matrix.arch }}-toolchain + update: true + + # Install Qt (required for shader nodes editor) + - name: Install Qt + uses: jurplel/install-qt-action@v2 + with: + arch: win64_mingw81 + + # Force xmake to a specific folder (for cache) + - name: Set xmake env + run: echo "XMAKE_GLOBALDIR=${{ runner.workspace }}/xmake-global" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + + # Install xmake + - name: Setup xmake + uses: xmake-io/github-action-setup-xmake@v1 + with: + xmake-version: branch@dev + + # Update xmake repository (in order to have the file that will be cached) + - name: Update xmake repository + run: xmake.exe repo --update + + # Fetch xmake dephash + - name: Retrieve dependencies hash + id: dep_hash + run: echo "::set-output name=hash::$(xmake.exe l utils.ci.packageskey)" + + # Cache xmake dependencies + - name: Retrieve cached xmake dependencies + uses: actions/cache@v2 + with: + path: ${{ env.XMAKE_GLOBALDIR }}\.xmake\packages + key: ${{ runner.os }}-${{ matrix.arch }}-${{ matrix.mode }}-${{ steps.dep_hash.outputs.hash }} + + # Setup compilation mode and install project dependencies + - name: Configure xmake and install dependencies + run: xmake.exe config --arch=${{ matrix.arch }} --mode=${{ matrix.mode }} --yes --verbose + + # Build the engine + - name: Build Nazara + run: xmake.exe + + # Install the result files + - name: Install Nazara + run: xmake.exe install -vo package + + # Upload artifacts + - uses: actions/upload-artifact@v2 + with: + name: ${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.mode }} + path: package diff --git a/.github/workflows/windows-build.yml b/.github/workflows/windows-build.yml index 135950066..0ab09ad9d 100644 --- a/.github/workflows/windows-build.yml +++ b/.github/workflows/windows-build.yml @@ -1,10 +1,11 @@ -name: Windows-Build +name: Windows build on: pull_request: push: paths-ignore: - '.github/workflows/linux-build.yml' + - '.github/workflows/msys2-build.yml' - '.gitignore' - 'LICENSE' - 'CHANGELOG.md' @@ -48,7 +49,7 @@ jobs: - name: Retrieve dependencies hash id: dep_hash run: echo "::set-output name=hash::$(xmake.exe l utils.ci.packageskey)" - + # Cache xmake dependencies - name: Retrieve cached xmake dependencies uses: actions/cache@v2