From 417a7399415e6e459c7de3fce1fd97d125660856 Mon Sep 17 00:00:00 2001 From: Daniel Chappuis Date: Mon, 2 Aug 2021 22:59:51 +0200 Subject: [PATCH] =?UTF-8?q?Start=20working=20on=20Github=C2=A0Actions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build-and-test.yml | 112 +++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 .github/workflows/build-and-test.yml diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml new file mode 100644 index 00000000..c3d6dfa6 --- /dev/null +++ b/.github/workflows/build-and-test.yml @@ -0,0 +1,112 @@ +# Build and run tests for ReactPhysics3D +name: Build and Test ReactPhysics3D + +# Controls when the action will run. Triggers the workflow on push +on: + push: + pull_request: + release: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + name: ${{ matrix.config.name }} + runs-on: ${{ matrix.config.os }} + strategy: + fail-fast: false + matrix: + config: + - { + name: "Ubuntu_Latest_GCC", + os: ubuntu-latest, + artifact: "ubuntu_gcc.7z", + build_type: "Release", + cc: "gcc", + cxx: "g++", + archiver: "7z a", + generators: "Ninja" + } + + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + - name: Print env + run: | + echo github.event.action: ${{ github.event.action }} + echo github.event_name: ${{ github.event_name }} + - name: Install dependencies on windows + if: startsWith(matrix.config.os, 'windows') + run: | + choco install ninja cmake + ninja --version + cmake --version + # cmd "${{ matrix.config.environment_script }}" + + - name: Install dependencies on ubuntu + if: startsWith(matrix.config.name, 'Ubuntu_Latest_GCC') + run: | + sudo apt-get update + sudo apt-get install ninja-build cmake + ninja --version + cmake --version + gcc --version + - name: Install dependencies on ubuntu9 + if: startsWith(matrix.config.name, 'Ubuntu_GCC_9') + run: | + echo Update gcc-9 ======================================================================= + echo gcc version before + gcc --version + sudo add-apt-repository ppa:ubuntu-toolchain-r/test + sudo apt-get update + sudo apt-get install ninja-build cmake gcc-9 g++-9 + sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 --slave /usr/bin/g++ g++ /usr/bin/g++-9 --slave /usr/bin/gcov gcov /usr/bin/gcov-9 + echo gcc version after + gcc --version + echo Update ninja ======================================================================= + echo ninja version before + ninja --version + # wget https://github.com/ninja-build/ninja/releases/download/v1.10.0/ninja-linux.zip + wget https://github.com/ninja-build/ninja/releases/latest/download/ninja-linux.zip + sudo unzip ninja-linux.zip -d /usr/local/bin/ + sudo update-alternatives --install /usr/bin/ninja ninja /usr/local/bin/ninja 1 --force + echo ninja version after + ninja --version + echo Update cmake ======================================================================= + echo cmake version before + cmake --version + # curl --silent "https://api.github.com/repos/Kitware/CMake/releases/latest" | sed -n 's/.*tag_name":\s"\(.*\)".*/\1/p' | head -2 + # wget https://github.com/Kitware/CMake/releases/latest/download/cmake-3.16.5-Linux-x86_64.sh + cmake_version=$(curl --silent "https://api.github.com/repos/Kitware/CMake/releases/latest" | sed -n 's/.*tag_name":\s"\(.*\)".*/\1/p' | head -2 | cut -c 2-) + echo cmake download latest v$cmake_version version + wget https://github.com/Kitware/CMake/releases/download/v$cmake_version/cmake-$cmake_version-Linux-x86_64.sh + chmod +x cmake-$cmake_version-Linux-x86_64.sh + sudo mkdir /opt/cmake + sudo ./cmake-$cmake_version-Linux-x86_64.sh --prefix=/opt/cmake --skip-license + sudo update-alternatives --install /usr/bin/cmake cmake /opt/cmake/bin/cmake 1 --force + echo cmake version after + cmake --version + - name: Install dependencies on macos + if: startsWith(matrix.config.os, 'macos') + run: | + brew install p7zip cmake ninja + ninja --version + cmake --version + + - name: Configure + shell: bash + run: | + mkdir build + mkdir instdir + cmake \ + -S . \ + -B . \ + -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \ + -G "${{ matrix.config.generators }}" \ + -DCMAKE_INSTALL_PREFIX:PATH=instdir + - name: Build + shell: bash + run: cmake --build . --config ${{ matrix.config.build_type }} +