| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- name: MinGW
- on:
- push:
- branches: ["master"]
- tags: ["4.*"]
- pull_request:
- branches: ["master"]
- concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
- jobs:
- build:
- name: build
- strategy:
- fail-fast: false
- matrix:
- os: ["windows"]
- # Customize the CMake build type here (`Release`, `Debug`, `RelWithDebInfo`, etc.)
- BUILD_TYPE: ["Release", "Debug"]
- BUILD_SHARED_LIBS: ["OFF"]
- defaults:
- run:
- shell: cmd
- runs-on: ${{ matrix.os }}-latest
- env:
- BUILD_TYPE: ${{ matrix.BUILD_TYPE }}
- SOURCE_DIR: ${{ github.workspace }}\.cache\source
- TOOSL_DIR: ${{ github.workspace }}\.cache\tools
- INSTALL_DIR: ${{ github.workspace }}\.cache\install_mingw_2022_02_15
- steps:
- - uses: actions/checkout@v6
-
- - name: Install dependencies
- run: |
- C:\msys64\usr\bin\pacman.exe -S --noconfirm ^
- mingw-w64-x86_64-cmake ^
- mingw-w64-x86_64-make ^
- mingw-w64-x86_64-nsis ^
- mingw-w64-x86_64-gcc ^
- mingw-w64-x86_64-zlib ^
- mingw-w64-x86_64-openssl ^
- mingw-w64-x86_64-libevent ^
- mingw-w64-x86_64-sqlite3 ^
- mingw-w64-x86_64-hiredis ^
- mingw-w64-x86_64-postgresql ^
- mingw-w64-x86_64-libmicrohttpd ^
- git base-devel
- env:
- PATH: C:\msys64\usr\bin
- - name: Create directories
- run: |
- cmake -E make_directory ${{ env.SOURCE_DIR }}
- cmake -E make_directory ${{ env.TOOSL_DIR }}
- cmake -E make_directory ${{ env.INSTALL_DIR }}
-
- - name: Cache installed
- uses: actions/cache@v5
- id: cache-installed
- with:
- path: ${{ env.INSTALL_DIR }}
- key: coturn-cache-installed-mingw
- - name: Build Prometheus
- run: |
- cd ${{ env.SOURCE_DIR }}
- git clone https://github.com/digitalocean/prometheus-client-c.git
- cd prometheus-client-c/prom
- mkdir build
- cd build
- cmake .. -G"MinGW Makefiles" ^
- -DBUILD_SHARED_LIBS=${{ matrix.BUILD_SHARED_LIBS }} ^
- -DCMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }} ^
- -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }}
- cmake --build . --config ${{ matrix.BUILD_TYPE }}
- cmake --build . --config ${{ matrix.BUILD_TYPE }} --target install
- env:
- MSYSTEM: MINGW64
- PATH: C:\msys64\mingw64\bin;C:\msys64\usr\bin
- working-directory: ${{ env.SOURCE_DIR }}
- if: ${{ false }}
-
- - name: Build Coturn
- run: |
- cmake -E make_directory build
- cd build
- cmake .. -G"MinGW Makefiles" ^
- -DBUILD_SHARED_LIBS=${{ matrix.BUILD_SHARED_LIBS }} ^
- -DCMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }} ^
- -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/build/install
- cmake --build . --config ${{ matrix.BUILD_TYPE }}
- cmake --build . --config ${{ matrix.BUILD_TYPE }} --target install
- env:
- MSYSTEM: MINGW64
- PATH: C:\msys64\mingw64\bin;C:\msys64\usr\bin
- Prometheus_ROOT: ${{ env.INSTALL_DIR }}
- working-directory: ${{ github.workspace }}
- - name: Package
- run: |
- copy /Y ${{ env.INSTALL_DIR }}\bin\*.dll install\bin
- copy /Y ${{ env.INSTALL_DIR }}\lib\*.dll install\bin
- copy /Y ${{ env.RUNVCPKG_VCPKG_ROOT }}\installed\${{ env.RUNVCPKG_VCPKG_TRIPLET_OUT }}\bin\*.dll install\bin
- 7z a coturn_windows_mingw.zip ${{ github.workspace }}\build\install\*
- cmake --build . --config ${{ matrix.BUILD_TYPE }} --target package
- env:
- MSYSTEM: MINGW64
- PATH: C:\msys64\mingw64\bin;C:\msys64\usr\bin
- working-directory: ${{ github.workspace }}\build
- if: ${{ matrix.BUILD_TYPE == 'Release' }}
- - name: Update artifacts
- uses: actions/upload-artifact@v6
- with:
- name: coturn_mingw_${{ matrix.os }}
- path: |
- ${{ github.workspace }}\build\coturn_windows_mingw.zip
- ${{ github.workspace }}\build\coturn*.exe
- ${{ github.workspace }}\build\coturn*.md5
- if: ${{ matrix.BUILD_TYPE == 'Release' }}
|