summaryrefslogtreecommitdiff
path: root/.github/workflows/mingw.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/mingw.yml')
-rw-r--r--.github/workflows/mingw.yml170
1 files changed, 170 insertions, 0 deletions
diff --git a/.github/workflows/mingw.yml b/.github/workflows/mingw.yml
new file mode 100644
index 00000000..a297e8ca
--- /dev/null
+++ b/.github/workflows/mingw.yml
@@ -0,0 +1,170 @@
+---
+name: mingw
+
+on:
+ pull_request:
+ types: [opened, synchronize]
+ paths-ignore:
+ - '**.md'
+ - '.mailmap'
+ - 'ChangeLog*'
+ - 'whatsnew*'
+ - 'LICENSE'
+ push:
+ paths-ignore:
+ - '**.md'
+ - '.mailmap'
+ - 'ChangeLog*'
+ - 'whatsnew*'
+ - 'LICENSE'
+
+jobs:
+ autotools:
+ runs-on: windows-2019
+ if: "!contains(github.event.head_commit.message, 'ci skip')"
+ strategy:
+ fail-fast: false
+ matrix:
+ EVENT_MATRIX:
+ - none
+ - disable-openssl
+ - disable-thread-support
+ - disable-debug-mode
+ - disable-malloc-replacement
+
+ steps:
+ - uses: actions/checkout@v2.0.0
+
+ - name: Cache MinGW
+ id: cache-mingw
+ uses: actions/cache@v1.1.2
+ with:
+ path: D:\a\_temp\msys
+ key: windows-mingw
+
+ - name: Cache Build
+ uses: actions/cache@v1.1.2
+ with:
+ path: build
+ key: mingw-autotools-${{ matrix.EVENT_MATRIX }}-v2
+
+ - uses: numworks/setup-msys2@v1
+ if: steps.cache-mingw.outputs.cache-hit != 'true'
+ with:
+ msystem: MINGW64
+
+ - name: Install Dependes
+ if: steps.cache-mingw.outputs.cache-hit != 'true'
+ run: |
+ msys2do pacman -S --noconfirm mingw-w64-x86_64-gcc autoconf automake libtool mingw-w64-x86_64-openssl
+
+ - name: Build And Test
+ shell: powershell
+ run: |
+ $env:EVENT_CONFIGURE_OPTIONS=""
+ if ( "${{ matrix.EVENT_MATRIX }}" -ne "none" ) {
+ $env:EVENT_CONFIGURE_OPTIONS="--${{ matrix.EVENT_MATRIX }}"
+ }
+ $env:EVENT_TESTS_PARALLEL=1
+ $env:EVENT_BUILD_PARALLEL=10
+
+ $script='
+ export PATH="/mingw64/bin:/usr/bin:/bin:/usr/local/bin:/opt/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:$PATH"
+ ./autogen.sh 2>&1 3>&1
+ [[ $? -ne 0 ]] && exit 1
+ mkdir -p build
+ cd build
+ [[ $? -ne 0 ]] && exit 1
+ LDFLAGS="-L/mingw64/lib" CFLAGS="-I/mingw64/include" ../configure $EVENT_CONFIGURE_OPTIONS 2>&1
+ [[ $? -ne 0 ]] && exit 1
+ make -j $EVENT_BUILD_PARALLEL 2>&1
+ [[ $? -ne 0 ]] && exit 1
+ make verify -j $EVENT_TESTS_PARALLEL 2>&1 '
+ D:\a\_temp\msys\msys64\usr\bin\bash.exe -c $script
+
+ - uses: actions/upload-artifact@v1
+ if: failure()
+ with:
+ name: mingw-${{ matrix.EVENT_MATRIX }}-build
+ path: build
+
+ cmake:
+ runs-on: windows-2019
+ if: "!contains(github.event.head_commit.message, 'ci skip')"
+ strategy:
+ fail-fast: false
+ matrix:
+ EVENT_MATRIX:
+ - NONE
+ - DISABLE_OPENSSL
+ - DISABLE_THREAD_SUPPORT
+ - DISABLE_DEBUG_MODE
+ - DISABLE_MM_REPLACEMENT
+
+ steps:
+ - uses: actions/checkout@v2.0.0
+
+ - name: Cache MinGW
+ id: cache-mingw-cmake
+ uses: actions/cache@v1.1.2
+ with:
+ path: D:\a\_temp\msys
+ key: windows-mingw-cmake
+
+ - name: Cache Build
+ uses: actions/cache@v1.1.2
+ with:
+ path: build
+ key: mingw-cmake-${{ matrix.EVENT_MATRIX }}-v2
+
+ - uses: numworks/setup-msys2@v1
+ if: steps.cache-mingw-cmake.outputs.cache-hit != 'true'
+ with:
+ msystem: MINGW64
+
+ - name: Install Dependes
+ if: steps.cache-mingw-cmake.outputs.cache-hit != 'true'
+ run: |
+ msys2do pacman -S --noconfirm mingw-w64-x86_64-gcc mingw-w64-x86_64-openssl
+
+ - name: Build And Test
+ shell: powershell
+ run: |
+ $EVENT_CONFIGURE_OPTIONS=""
+ if ( "${{ matrix.EVENT_MATRIX }}" -ne "NONE" ) {
+ $EVENT_CONFIGURE_OPTIONS="-DEVENT__${{ matrix.EVENT_MATRIX }}=ON"
+ }
+ $env:PATH="D:\a\_temp\msys\msys64\mingw64\bin;D:\a\_temp\msys\msys64\usr\bin;$env:PATH"
+ mkdir build -ea 0
+ cd build
+ function cmake_configure($retry)
+ {
+ $errcode=0
+ try {
+ cmake .. -G "MSYS Makefiles" $EVENT_CONFIGURE_OPTIONS -DCMAKE_C_FLAGS=-w
+ $errcode=$LastExitCode
+ }
+ catch {
+ $errcode=1
+ }
+ finally {
+ if ($errcode -ne 0) {
+ if ($retry -eq 0) {
+ $host.SetShouldExit($LastExitCode)
+ } else {
+ echo "Remove all entries in build directory"
+ rm -r -fo *
+ cmake_configure 0
+ }
+ }
+ }
+ }
+ cmake_configure 1
+ cmake --build .
+ ctest -V
+
+ - uses: actions/upload-artifact@v1
+ if: failure()
+ with:
+ name: mingw-${{ matrix.EVENT_MATRIX }}-build
+ path: build