1a8c51b3fSopenharmony_ciname: build-and-test-perfcounters 2a8c51b3fSopenharmony_ci 3a8c51b3fSopenharmony_cion: 4a8c51b3fSopenharmony_ci push: 5a8c51b3fSopenharmony_ci branches: [ main ] 6a8c51b3fSopenharmony_ci pull_request: 7a8c51b3fSopenharmony_ci branches: [ main ] 8a8c51b3fSopenharmony_ci 9a8c51b3fSopenharmony_cijobs: 10a8c51b3fSopenharmony_ci job: 11a8c51b3fSopenharmony_ci # TODO(dominic): Extend this to include compiler and set through env: CC/CXX. 12a8c51b3fSopenharmony_ci name: ${{ matrix.os }}.${{ matrix.build_type }} 13a8c51b3fSopenharmony_ci runs-on: ${{ matrix.os }} 14a8c51b3fSopenharmony_ci strategy: 15a8c51b3fSopenharmony_ci fail-fast: false 16a8c51b3fSopenharmony_ci matrix: 17a8c51b3fSopenharmony_ci os: [ubuntu-latest, ubuntu-20.04] 18a8c51b3fSopenharmony_ci build_type: ['Release', 'Debug'] 19a8c51b3fSopenharmony_ci steps: 20a8c51b3fSopenharmony_ci - uses: actions/checkout@v2 21a8c51b3fSopenharmony_ci 22a8c51b3fSopenharmony_ci - name: install libpfm 23a8c51b3fSopenharmony_ci run: sudo apt -y install libpfm4-dev 24a8c51b3fSopenharmony_ci 25a8c51b3fSopenharmony_ci - name: setup cmake 26a8c51b3fSopenharmony_ci uses: jwlawson/actions-setup-cmake@v1.9 27a8c51b3fSopenharmony_ci with: 28a8c51b3fSopenharmony_ci cmake-version: '3.5.1' 29a8c51b3fSopenharmony_ci 30a8c51b3fSopenharmony_ci - name: create build environment 31a8c51b3fSopenharmony_ci run: cmake -E make_directory ${{ runner.workspace }}/_build 32a8c51b3fSopenharmony_ci 33a8c51b3fSopenharmony_ci - name: configure cmake 34a8c51b3fSopenharmony_ci shell: bash 35a8c51b3fSopenharmony_ci working-directory: ${{ runner.workspace }}/_build 36a8c51b3fSopenharmony_ci run: > 37a8c51b3fSopenharmony_ci cmake $GITHUB_WORKSPACE 38a8c51b3fSopenharmony_ci -DBENCHMARK_ENABLE_LIBPFM=1 39a8c51b3fSopenharmony_ci -DBENCHMARK_DOWNLOAD_DEPENDENCIES=ON 40a8c51b3fSopenharmony_ci -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} 41a8c51b3fSopenharmony_ci 42a8c51b3fSopenharmony_ci - name: build 43a8c51b3fSopenharmony_ci shell: bash 44a8c51b3fSopenharmony_ci working-directory: ${{ runner.workspace }}/_build 45a8c51b3fSopenharmony_ci run: cmake --build . --config ${{ matrix.build_type }} 46a8c51b3fSopenharmony_ci 47a8c51b3fSopenharmony_ci # Skip testing, for now. It seems perf_event_open does not succeed on the 48a8c51b3fSopenharmony_ci # hosting machine, very likely a permissions issue. 49a8c51b3fSopenharmony_ci # TODO(mtrofin): Enable test. 50a8c51b3fSopenharmony_ci # - name: test 51a8c51b3fSopenharmony_ci # shell: bash 52a8c51b3fSopenharmony_ci # working-directory: ${{ runner.workspace }}/_build 53a8c51b3fSopenharmony_ci # run: ctest -C ${{ matrix.build_type }} --rerun-failed --output-on-failure 54a8c51b3fSopenharmony_ci 55a8c51b3fSopenharmony_ci ubuntu-16_04: 56a8c51b3fSopenharmony_ci name: ubuntu-16.04.${{ matrix.build_type }} 57a8c51b3fSopenharmony_ci runs-on: [ubuntu-latest] 58a8c51b3fSopenharmony_ci strategy: 59a8c51b3fSopenharmony_ci fail-fast: false 60a8c51b3fSopenharmony_ci matrix: 61a8c51b3fSopenharmony_ci build_type: ['Release', 'Debug'] 62a8c51b3fSopenharmony_ci container: ubuntu:16.04 63a8c51b3fSopenharmony_ci steps: 64a8c51b3fSopenharmony_ci - uses: actions/checkout@v2 65a8c51b3fSopenharmony_ci 66a8c51b3fSopenharmony_ci - name: install required bits 67a8c51b3fSopenharmony_ci run: | 68a8c51b3fSopenharmony_ci apt update 69a8c51b3fSopenharmony_ci apt -y install clang cmake g++ git 70a8c51b3fSopenharmony_ci 71a8c51b3fSopenharmony_ci - name: install libpfm 72a8c51b3fSopenharmony_ci run: apt -y install libpfm4-dev 73a8c51b3fSopenharmony_ci 74a8c51b3fSopenharmony_ci - name: create build environment 75a8c51b3fSopenharmony_ci run: cmake -E make_directory $GITHUB_WORKSPACE/_build 76a8c51b3fSopenharmony_ci 77a8c51b3fSopenharmony_ci - name: configure cmake 78a8c51b3fSopenharmony_ci shell: bash 79a8c51b3fSopenharmony_ci working-directory: ${{ github.workspace }}/_build 80a8c51b3fSopenharmony_ci run: > 81a8c51b3fSopenharmony_ci cmake $GITHUB_WORKSPACE 82a8c51b3fSopenharmony_ci -DBENCHMARK_ENABLE_LIBPFM=1 83a8c51b3fSopenharmony_ci -DBENCHMARK_DOWNLOAD_DEPENDENCIES=ON 84a8c51b3fSopenharmony_ci -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} 85a8c51b3fSopenharmony_ci 86a8c51b3fSopenharmony_ci - name: build 87a8c51b3fSopenharmony_ci shell: bash 88a8c51b3fSopenharmony_ci working-directory: ${{ github.workspace }}/_build 89a8c51b3fSopenharmony_ci run: cmake --build . --config ${{ matrix.build_type }} 90a8c51b3fSopenharmony_ci 91a8c51b3fSopenharmony_ci # Skip testing, for now. It seems perf_event_open does not succeed on the 92a8c51b3fSopenharmony_ci # hosting machine, very likely a permissions issue. 93a8c51b3fSopenharmony_ci # TODO(mtrofin): Enable test. 94a8c51b3fSopenharmony_ci # - name: test 95a8c51b3fSopenharmony_ci # shell: bash 96a8c51b3fSopenharmony_ci # working-directory: ${{ runner.workspace }}/_build 97a8c51b3fSopenharmony_ci # run: ctest -C ${{ matrix.build_type }} --rerun-failed --output-on-failure 98