|
1 | | -name: libcosim CI CMake |
| 1 | +name: CI without Conan |
2 | 2 |
|
3 | 3 | # This workflow is triggered on pushes to the repository. |
4 | 4 | on: [push] |
5 | 5 |
|
6 | | -env: |
7 | | - CONAN_LOGIN_USERNAME_OSP: ${{ secrets.osp_artifactory_usr }} |
8 | | - CONAN_PASSWORD_OSP: ${{ secrets.osp_artifactory_pwd }} |
9 | | - CONAN_REVISIONS_ENABLED: 1 |
10 | | - CONAN_NON_INTERACTIVE: 1 |
11 | | - |
12 | 6 | jobs: |
13 | | - cmake-on-linux: |
14 | | - name: CMake |
15 | | - runs-on: ${{ matrix.os }} |
16 | | - env: |
17 | | - CC: gcc-${{ matrix.compiler_version }} |
18 | | - CXX: g++-${{ matrix.compiler_version }} |
| 7 | + linux: |
| 8 | + name: Linux |
| 9 | + runs-on: ubuntu-latest |
19 | 10 | strategy: |
20 | 11 | fail-fast: false |
21 | 12 | matrix: |
22 | | - os: [ubuntu-20.04] |
23 | 13 | build_type: [Debug, Release] |
24 | | - compiler_version: [9] |
25 | | - shared_libs: [ON, OFF] |
| 14 | + shared_libs: [SHARED_LIBS=ON, SHARED_LIBS=OFF] |
26 | 15 | timeout-minutes: 35 |
27 | 16 |
|
28 | 17 | steps: |
29 | | - - uses: actions/checkout@v3 |
30 | | - - name: Install prerequisites |
31 | | - run: | |
32 | | - sudo apt-get install -y --no-install-recommends \ |
33 | | - doxygen \ |
34 | | - libboost-all-dev \ |
35 | | - libmsgsl-dev \ |
36 | | - libyaml-cpp-dev \ |
37 | | - libxerces-c-dev \ |
38 | | - libzip-dev |
39 | | - wget \ |
| 18 | + - uses: actions/checkout@v4 |
| 19 | + - name: Generate Dockerfile |
| 20 | + run: | |
| 21 | + mkdir /tmp/osp-builder-docker |
| 22 | + cat <<EOF >/tmp/osp-builder-docker/Dockerfile |
| 23 | + FROM debian:bookworm |
| 24 | + RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 25 | + cmake \ |
| 26 | + build-essential \ |
| 27 | + doxygen \ |
| 28 | + wget \ |
| 29 | + libboost-all-dev \ |
| 30 | + libmsgsl-dev \ |
| 31 | + libyaml-cpp-dev \ |
| 32 | + libxerces-c-dev \ |
| 33 | + libzip-dev zipcmp zipmerge ziptool |
| 34 | + RUN wget \ |
| 35 | + --no-check-certificate \ |
40 | 36 | "https://github.com/viproma/debian-fmilib/releases/download/debian%2F2.0.3-1/libfmilib2_2.0.3-1_amd64.deb" \ |
41 | 37 | "https://github.com/viproma/debian-fmilib/releases/download/debian%2F2.0.3-1/libfmilib2-dev_2.0.3-1_amd64.deb" |
42 | | - sudo dpkg -i libfmilib2_2.0.3-1_amd64.deb libfmilib2-dev_2.0.3-1_amd64.deb |
43 | | - - name: CMake - configure |
44 | | - run: | |
45 | | - cmake \ |
46 | | - -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ |
47 | | - -DCMAKE_PREFIX_PATH=fmilibrary \ |
48 | | - -DCMAKE_INSTALL_PREFIX=install \ |
49 | | - -DBUILD_SHARED_LIBS=${{ matrix.shared_libs }} \ |
50 | | - -B build |
51 | | - - name: CMake - build |
52 | | - run: cmake --build build |
53 | | - - name: CMake - build doc |
54 | | - run: cmake --build build --target doc |
55 | | - - name: CMake - test |
56 | | - run: | |
| 38 | + RUN dpkg -i libfmilib2_2.0.3-1_amd64.deb libfmilib2-dev_2.0.3-1_amd64.deb |
| 39 | + COPY entrypoint.sh / |
| 40 | + ENTRYPOINT /entrypoint.sh |
| 41 | + EOF |
| 42 | + - name: Generate entrypoint.sh |
| 43 | + run: | |
| 44 | + cat <<'EOF' >/tmp/osp-builder-docker/entrypoint.sh |
| 45 | + #!/bin/bash |
| 46 | + mkdir build |
57 | 47 | cd build |
58 | | - ctest |
59 | | - - name: CMake - install |
60 | | - run: | |
61 | | - cmake --build build --target install |
62 | | - cmake --build build --target install-doc |
63 | | - - name: Upload artifact |
64 | | - uses: actions/upload-artifact@v3 |
65 | | - with: |
66 | | - name: libcosim-${{ runner.os }}-${{ matrix.build_type }}-gcc${{ matrix.compiler_version }} |
67 | | - path: install |
68 | | - |
69 | | - |
70 | | - cmake-on-windows: |
71 | | - name: CMake |
72 | | - runs-on: ${{ matrix.os }} |
73 | | - strategy: |
74 | | - fail-fast: false |
75 | | - matrix: |
76 | | - os: [windows-2019] |
77 | | - build_type: [Debug, Release] |
78 | | - shared: ["True", "False"] |
79 | | - timeout-minutes: 35 |
80 | | - |
81 | | - steps: |
82 | | - - uses: actions/checkout@v3 |
83 | | - - name: Install prerequisites |
84 | | - run: | |
85 | | - pip3 install --upgrade setuptools pip |
86 | | - pip3 install conan==1.59 |
87 | | - choco install doxygen.install |
88 | | - conan remote add osp https://osp.jfrog.io/artifactory/api/conan/conan-local --force |
89 | | - conan install . -s build_type=${{ matrix.build_type }} -o shared=${{ matrix.shared }} -g deploy |
90 | | - - name: CMake - configure |
91 | | - shell: bash |
92 | | - run: | |
93 | | - cmake . \ |
94 | | - -A x64 \ |
95 | | - -DCMAKE_PREFIX_PATH="ms-gsl;boost;fmilibrary;libzip;xerces-c;yaml-cpp;bzip2;zlib;xz_utils" \ |
96 | | - -DCMAKE_INSTALL_PREFIX=install \ |
97 | | - -DBUILD_SHARED_LIBS=${{ matrix.shared }} \ |
98 | | - -B build |
99 | | - - name: CMake - build |
100 | | - run: cmake --build build --config ${{ matrix.build_type }} |
101 | | - - name: CMake - build doc |
102 | | - run: cmake --build build --config ${{ matrix.build_type }} --target doc |
103 | | - - name: CMake - test |
104 | | - run: | |
105 | | - .\activate_run.ps1 |
106 | | - cd build |
107 | | - ctest -C ${{ matrix.build_type }} |
108 | | - - name: CMake - install |
109 | | - run: | |
110 | | - cmake --build build --config ${{ matrix.build_type }} --target install |
111 | | - cmake --build build --config ${{ matrix.build_type }} --target install-doc |
112 | | - - name: Upload artifact |
113 | | - uses: actions/upload-artifact@v3 |
114 | | - with: |
115 | | - name: libcosim-${{ runner.os }}-${{ matrix.build_type }} |
116 | | - path: install |
| 48 | + cmake -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DBUILD_${{ matrix.shared_libs }} /mnt/source |
| 49 | + cmake --build . |
| 50 | + ctest --output-on-failure |
| 51 | + EOF |
| 52 | + chmod 0755 /tmp/osp-builder-docker/entrypoint.sh |
| 53 | + - name: Build Docker image |
| 54 | + run: docker build -t osp-builder /tmp/osp-builder-docker/ |
| 55 | + - name: Build cosim |
| 56 | + run: docker run --rm -v $(pwd):/mnt/source:ro osp-builder |
0 commit comments