diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a71c33773..624bf437f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,13 +11,56 @@ jobs: run: | npm install npm run format -- --dry-run -Werror + Documentation: + runs-on: ubuntu-latest + steps: + - name: Install Doxygen + run: | + sudo apt install -y doxygen + - name: Check out repository code + uses: actions/checkout@v3 + with: + submodules: recursive + - name: Generate Documentation + run: | + cmake -B build -S . + cmake --build build --target cesium-native-docs + - name: Publish Documentation Artifact + if: ${{ success() }} + uses: actions/upload-artifact@v3 + with: + name: ReferenceDocumentation + path: build/doc/html VS2019: name: "Windows + VS2019" runs-on: windows-2019 steps: - - name: Install Doxygen + - name: Install nasm + run: | + choco install -y nasm + - name: Check out repository code + uses: actions/checkout@v3 + with: + submodules: recursive + - name: Compile Debug Configuration + run: | + cmake -B build -S . + cmake --build build --config Debug --parallel 4 + - name: Test Debug Configuration run: | - choco install -y doxygen.install --version=1.9.2 + cd build + ctest -V + - name: Compile RelWithDebInfo Configuration + run: | + cmake --build build --config RelWithDebInfo --parallel 4 + - name: Test RelWithDebInfo Configuration + run: | + cd build + ctest -V + VS2022: + name: "Windows + VS2022" + runs-on: windows-2022 + steps: - name: Install nasm run: | choco install -y nasm @@ -40,12 +83,60 @@ jobs: run: | cd build ctest -V - - name: Generate Documentation + LinuxGCC: + name: "Linux + GCC" + runs-on: ubuntu-latest + steps: + - name: Install nasm run: | - cmake --build build --config Debug --target cesium-native-docs - - name: Publish Documentation Artifact - if: ${{ success() }} - uses: actions/upload-artifact@v3 + sudo apt-get install nasm + - name: Check out repository code + uses: actions/checkout@v3 with: - name: ReferenceDocumentation - path: build/doc/html + submodules: recursive + - name: Compile Debug Configuration + run: | + cmake -B build-debug -S . -DCMAKE_BUILD_TYPE:STRING=Debug + cmake --build build-debug --parallel 4 + - name: Test Debug Configuration + run: | + cd build-debug + ctest -V + - name: Compile RelWithDebInfo Configuration + run: | + cmake -B build-release -S . -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo + cmake --build build-release --config RelWithDebInfo --parallel 4 + - name: Test RelWithDebInfo Configuration + run: | + cd build-release + ctest -V + LinuxClang: + name: "Linux + Clang" + runs-on: ubuntu-latest + env: + CC: clang-12 + CXX: clang++-12 + steps: + - name: Install nasm + run: | + sudo apt-get install nasm + - name: Check out repository code + uses: actions/checkout@v3 + with: + submodules: recursive + - name: Compile Debug Configuration + run: | + cmake -B build-debug -S . -DCMAKE_BUILD_TYPE:STRING=Debug + cmake --build build-debug --parallel 4 + - name: Test Debug Configuration + run: | + cd build-debug + ctest -V + - name: Compile RelWithDebInfo Configuration + run: | + cmake -B build-release -S . -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo + cmake --build build-release --config RelWithDebInfo --parallel 4 + - name: Test RelWithDebInfo Configuration + run: | + cd build-release + ctest -V