From 1cefad6f3b7ed033a236513eb97b1658347b9de7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Leclercq?= Date: Fri, 7 May 2021 14:12:30 +0200 Subject: [PATCH] CI: Replace AppVeyor/Travis by GitHub actions --- .github/workflows/linux-build.yml | 81 +++++++++++++++++++++++++++++ .github/workflows/windows-build.yml | 73 ++++++++++++++++++++++++++ .travis.yml | 26 --------- Dockerfile | 6 --- appveyor.yml | 59 --------------------- 5 files changed, 154 insertions(+), 91 deletions(-) create mode 100644 .github/workflows/linux-build.yml create mode 100644 .github/workflows/windows-build.yml delete mode 100644 .travis.yml delete mode 100644 Dockerfile delete mode 100644 appveyor.yml diff --git a/.github/workflows/linux-build.yml b/.github/workflows/linux-build.yml new file mode 100644 index 000000000..751c2e97c --- /dev/null +++ b/.github/workflows/linux-build.yml @@ -0,0 +1,81 @@ +name: Linux-Build + +on: + pull_request: + push: + paths-ignore: + - '.github/workflows/windows-build.yml' + - '.gitignore' + - 'LICENSE' + - 'CHANGELOG.md' + - 'README.md' + - 'README_en.md' + - 'README_fr.md' + +jobs: + build: + strategy: + matrix: + os: [ubuntu-20.04] + arch: [x64] + mode: [debug, releasedbg] + + runs-on: ${{ matrix.os }} + if: "!contains(github.event.head_commit.message, 'ci skip')" + + steps: + - uses: actions/checkout@v2 + + # Install Qt (required for shader nodes editor) + - name: Install Qt + uses: jurplel/install-qt-action@v2 + + # Install Nazara dependencies + - name: Update apt repositories + run: sudo apt-get update + + # Install Nazara dependencies + - name: Install system dependencies + run: sudo apt-get install libsndfile1-dev libfreetype6-dev libsdl2-dev mesa-common-dev libxcb-ewmh-dev libxcb-randr0-dev libxcb-icccm4-dev libxcb-keysyms1-dev libgl1-mesa-dev -y + + # Force xmake to a specific folder (for cache) + - name: Set xmake env + run: echo "XMAKE_GLOBALDIR=$(pwd)/xmake-global" >> $GITHUB_ENV + + # Install xmake + - name: Setup xmake + uses: xmake-io/github-action-setup-xmake@v1 + + # 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: xmake-global/.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 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 new file mode 100644 index 000000000..95087e1b3 --- /dev/null +++ b/.github/workflows/windows-build.yml @@ -0,0 +1,73 @@ +name: Windows-Build + +on: + pull_request: + push: + paths-ignore: + - '.github/workflows/linux-build.yml' + - '.gitignore' + - 'LICENSE' + - 'CHANGELOG.md' + - 'README.md' + - 'README_en.md' + - 'README_fr.md' + +jobs: + build: + strategy: + matrix: + os: [windows-latest] + arch: [x64] + mode: [debug, releasedbg] + + runs-on: ${{ matrix.os }} + if: "!contains(github.event.head_commit.message, 'ci skip')" + + steps: + - uses: actions/checkout@v2 + + # Install Qt (required for shader nodes editor) + - name: Install Qt + uses: jurplel/install-qt-action@v2 + + # Force xmake to a specific folder (for cache) + - name: Set xmake env + run: echo "XMAKE_GLOBALDIR=$(pwd)/xmake-global" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + + # Install xmake + - name: Setup xmake + uses: xmake-io/github-action-setup-xmake@v1 + + # 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: xmake-global\.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/.travis.yml b/.travis.yml deleted file mode 100644 index 17bccbd36..000000000 --- a/.travis.yml +++ /dev/null @@ -1,26 +0,0 @@ -language: - cpp - -sudo: - required - -notifications: - email: true - -services: - - docker - -before_install: - - docker build -t nazara . - -script: - - docker run --name Nazara -v `pwd`:/NazaraEngine nazara - sh -c " - cd build && - ./premake5-linux64 --cc=clang gmake && - cd gmake && - make -j4 && - cd ../../tests && - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../lib/gmake/x64/:../extlibs/lib/gmake/x64/ && - ./NazaraUnitTestsServer - " diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index b1ab55789..000000000 --- a/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM debian:buster - -RUN apt-get update && apt-get install -y build-essential clang libopenal-dev libsndfile1-dev libfreetype6-dev libassimp-dev libsdl2-dev libxcb-keysyms1-dev libxcb-ewmh-dev libx11-dev libfreetype6-dev mesa-common-dev libgl1-mesa-dev - -RUN mkdir /NazaraEngine -WORKDIR /NazaraEngine \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index c3c44154d..000000000 --- a/appveyor.yml +++ /dev/null @@ -1,59 +0,0 @@ -version: '{branch}-rev{build}' - -shallow_clone: true - -skip_commits: - files: - - .travis.yml - - Dockerfile - - Doxyfile - - LICENSE - - License-Cabin.txt - - Logo.png - - LogoMini.png - - readme.md - - readme_fr.md - - 'writing style.md' - - doc/* - - NazaraModuleTemplate/* - message: /\[Posix\]/ - -os: - - Visual Studio 2019 - -environment: - matrix: - - TOOLSET: vs2019 - -install: - - cd build && "./premake5.exe" %TOOLSET% && cd .. - -configuration: - - DebugDynamic - - ReleaseDynamic - -platform: - - Win32 - - x64 - -build: - project: build/$(TOOLSET)/NazaraEngine.sln - -after_build: - - cd build && "./premake5.exe" package && cd ../package - - 7z a NazaraEngine.7z * && cd .. - -artifacts: - - path: package/NazaraEngine.7z - name: 'NazaraEngine-$(CONFIGURATION)-$(PLATFORM)-$(APPVEYOR_REPO_COMMIT)' - -on_success: - - cd tests && "./NazaraUnitTestsServer.exe" - -notifications: - - provider: Slack - incoming_webhook: - secure: 5FSnJzsZCMXNDqPYGhN4ZSX7qa1KMmbV0UGT9i0LcElk3X91z3fs1TZRpZZ3++Tkw8qAk1G/qDChom5GQ7Vj7X29cScQHvGHXffl3qaC5EdSiGpjloMZKfeiGTnf798IX0n/ABSlDHG7GrB8IiulRGx3iVOpPQmrPWCiz9ZPtY8h84xpd65FGd8gETKG/sYk - on_build_success: true - on_build_failure: true - on_build_status_changed: false