File: ci.yml

package info (click to toggle)
double-conversion 3.4.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 19,344 kB
  • sloc: cpp: 322,761; makefile: 54; sh: 40
file content (91 lines) | stat: -rw-r--r-- 2,854 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
name: ci

on: push

permissions:
  contents: read

jobs:
  build:
    strategy:
      matrix:
        container: [ ubuntu-latest, macos-latest, windows-latest ]
        build_type: [ Debug, Release ]
        # When updating the CMake version, make sure to also update the CMakeLists.txt.
        cmake_version: ["3.29", "4.0.1", latest, latestrc]

    runs-on: ${{ matrix.container }}

    name: ${{ matrix.container }} - ${{ matrix.build_type }} - CMake ${{ matrix.cmake_version }}

    steps:
      - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1

      - name: Set up CMake
        uses: lukka/get-cmake@bb2faa721a800324b726fec00f7c1ff7641964d1  # v4.02
        with:
          cmakeVersion: ${{ matrix.cmake_version }}

      - name: Check for cmake warnings
        if: runner.os != 'Windows'
        shell: bash
        run: |
          mkdir -p build-warning
          cd build-warning
          cmake -S .. 2>&1 | tee cmake-warnings.log
          # Check for warnings in the log file.
          if grep -q "CMake Warning" cmake-warnings.log; then
            echo "CMake warnings found!"
            cat cmake-warnings.log
            exit 1
          fi

      - name: Configure
        shell: bash
        # Configure CMake in a 'buildX' subdirectory.
        # We can't use `build` as `BUILD` is already taken by the bazel build file.
        # On Mac and Windows this leads to a conflict.
        run: |
          mkdir -p buildX
          cd buildX
          cmake \
            -DBUILD_TESTING=ON \
            -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
            -DCMAKE_INSTALL_PREFIX:PATH=${{ github.workspace }}/install_dir \
            -DBUILD_SHARED_LIBS=ON \
            ..

      - name: Build shared
        run: |
          cmake --build buildX --config ${{ matrix.build_type }}

      - name: Install shared
        run: |
          cmake --install buildX --config ${{ matrix.build_type }}

      - name: Build static
        run: |
          cmake -DBUILD_SHARED_LIBS=OFF buildX
          cmake --build buildX --config ${{ matrix.build_type }}

      - name: Install static
        run: |
          cmake --install buildX --config ${{ matrix.build_type }}

      - name: Test
        if: runner.os != 'Windows'
        working-directory: ${{ github.workspace }}/buildX
        # Execute all tests.
        run: |
          ctest
          # Also run the tests directly, just in case we forgot to add it to ctest.
          test/cctest/cctest

      - name: Test - Windows
        if: runner.os == 'Windows'
        working-directory: ${{ github.workspace }}/buildX
        # Execute all tests.
        run: |
          ctest -C ${{ matrix.build_type }}
          # Also run the tests directly, just in case we forgot to add it to ctest.
          test/cctest/${{ matrix.build_type }}/cctest.exe