diff --git a/.github/workflows/linux-build.yml b/.github/workflows/linux-build.yml index 929393da2..258818a10 100644 --- a/.github/workflows/linux-build.yml +++ b/.github/workflows/linux-build.yml @@ -5,6 +5,7 @@ on: push: paths-ignore: - '.github/workflows/coverage.yml' + - '.github/workflows/macos-build.yml' - '.github/workflows/msys2-build.yml' - '.github/workflows/windows-build.yml' - '.gitignore' diff --git a/.github/workflows/macos-build.yml b/.github/workflows/macos-build.yml new file mode 100644 index 000000000..e897b5742 --- /dev/null +++ b/.github/workflows/macos-build.yml @@ -0,0 +1,78 @@ +name: Linux build + +on: + pull_request: + push: + paths-ignore: + - '.github/workflows/coverage.yml' + - '.github/workflows/msys2-build.yml' + - '.github/workflows/windows-build.yml' + - '.gitignore' + - 'LICENSE' + - 'CHANGELOG.md' + - 'README.md' + - 'README_en.md' + - 'README_fr.md' + +jobs: + build: + strategy: + matrix: + os: [macOS-latest] + arch: [x86_64] + mode: [debug, releasedbg] + + runs-on: ${{ matrix.os }} + if: "!contains(github.event.head_commit.message, 'ci skip')" + + steps: + - uses: actions/checkout@v2 + + # Force xmake to a specific folder (for cache) + - name: Set xmake env + run: echo "XMAKE_GLOBALDIR=${{ runner.workspace }}/xmake-global" >> $GITHUB_ENV + + # 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 repo --update + + # Fetch xmake dephash + - 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 + with: + path: ${{ env.XMAKE_GLOBALDIR }}/.xmake/packages + key: macOS-${{ matrix.arch }}-${{ matrix.mode }}-${{ steps.dep_hash.outputs.hash }}-r4 + + # Setup compilation mode and install project dependencies + - name: Configure xmake and install dependencies + run: xmake config --shadernodes=y --tests=y --unitybuild=y --arch=${{ matrix.arch }} --mode=${{ matrix.mode }} --yes + + # Build the engine + - name: Build Nazara + run: xmake + + # Run unit tests + - name: Run unit tests + if: matrix.type.name != 'releasedbg' + run: xmake run NazaraUnitTests + + # Install the result files + - name: Install Nazara + run: xmake 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/msys2-build.yml b/.github/workflows/msys2-build.yml index 5813125fa..3a36bee0f 100644 --- a/.github/workflows/msys2-build.yml +++ b/.github/workflows/msys2-build.yml @@ -6,6 +6,7 @@ on: paths-ignore: - '.github/workflows/coverage.yml' - '.github/workflows/linux-build.yml' + - '.github/workflows/macos-build.yml' - '.github/workflows/windows-build.yml' - '.gitignore' - 'LICENSE' diff --git a/.github/workflows/windows-build.yml b/.github/workflows/windows-build.yml index c317b3ff7..433a95220 100644 --- a/.github/workflows/windows-build.yml +++ b/.github/workflows/windows-build.yml @@ -6,6 +6,7 @@ on: paths-ignore: - '.github/workflows/coverage.yml' - '.github/workflows/linux-build.yml' + - '.github/workflows/macos-build.yml' - '.github/workflows/msys2-build.yml' - '.gitignore' - 'LICENSE' @@ -64,6 +65,7 @@ jobs: # Run unit tests - name: Run unit tests + if: matrix.type.name != 'releasedbg' run: xmake.exe run NazaraUnitTests # Install the result files