diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 62e2c563c2e17dc5122eca114f85529af3593c30..542363a79cef452d518ad80da5b88f9c28b9d1f4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -169,6 +169,32 @@ windows:build: - cmake -DCMAKE_GENERATOR_PLATFORM=x64 "-DFTL_VERSION=$CI_COMMIT_TAG" -DWITH_GNUTLS=TRUE -DGNUTLS_INCLUDE_DIR="C:/Build/bin/gnutls/lib/includes/" -DGNUTLS_LIBRARY="C:/Build/bin/gnutls/lib/libgnutls.dll.a" .. - '& MSBuild.exe beyond-protocol.sln -property:Configuration=Release -nr:false -maxCpuCount' +windows:build_debug: + only: + - tags + + stage: build + tags: + - windows + + needs: [] + dependencies: [] + + cache: # use artifacts instead if multiple runners available + key: $CI_COMMIT_SHORT_SHA + paths: + - build_debug/ + + script: + - Import-Module "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/Tools/Microsoft.VisualStudio.DevShell.dll" + - Enter-VsDevShell -VsInstallPath "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/" + - cd $CI_PROJECT_DIR + - if (Test-Path build) { Remove-Item build_debug/ -Recurse } + - mkdir build_debug + - cd build_debug + - cmake -DCMAKE_GENERATOR_PLATFORM=x64 "-DFTL_VERSION=$CI_COMMIT_TAG" -DWITH_GNUTLS=TRUE -DGNUTLS_INCLUDE_DIR="C:/Build/bin/gnutls/lib/includes/" -DGNUTLS_LIBRARY="C:/Build/bin/gnutls/lib/libgnutls.dll.a" .. + - '& MSBuild.exe beyond-protocol.sln -property:Configuration=RelWithDebInfo -nr:false -maxCpuCount' + windows:test: only: - main @@ -224,6 +250,34 @@ windows:pack: - ./*.zip expire_in: 1 week +windows:pack_debug: + only: + - tags + + stage: pack + + tags: + - windows + dependencies: ["windows:build_debug"] + needs: ["windows:test", "windows:build_debug"] + + cache: # use artifacts instead if multiple runners available + key: $CI_COMMIT_SHORT_SHA + paths: + - build_debug/ + + script: + - $env:PATH+=";C:/Shared/Deploy" + - cd build_debug + - cpack + - Invoke-RestMethod -Headers @{ "JOB-TOKEN"="$CI_JOB_TOKEN" } -InFile "../libftl-protocol-${CI_COMMIT_TAG}-win64.zip" -uri "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/libftl-protocol/${CI_COMMIT_TAG}/libftl-protocol-${CI_COMMIT_TAG}-win64-debug.zip" -Method put + + artifacts: + when: always + paths: + - ./*.zip + expire_in: 1 week + # Documentation pages: @@ -263,4 +317,6 @@ release_job: - name: 'DEB Package x86-64' url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/libftl-protocol/${CI_COMMIT_TAG}/libftl-protocol${CI_COMMIT_TAG}-Linux.deb' - name: 'Win64 Binary (ZIP)' - url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/libftl-protocol/${CI_COMMIT_TAG}/libftl-protocol-${CI_COMMIT_TAG}-win64.zip' \ No newline at end of file + url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/libftl-protocol/${CI_COMMIT_TAG}/libftl-protocol-${CI_COMMIT_TAG}-win64.zip' + - name: 'Win64 Debug Binary (ZIP)' + url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/libftl-protocol/${CI_COMMIT_TAG}/libftl-protocol-${CI_COMMIT_TAG}-win64-debug.zip' \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 431945a231701167cbda82e5fd0b154b1152faf5..12c759a85a38fb029459d35f2a3174b66bcf4e0b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -108,6 +108,7 @@ if (WIN32) # TODO(nick) Should do based upon compiler (VS) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:AVX2 /MP /std:c++17 /wd4996 /Zc:__cplusplus") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /DFTL_DEBUG /Wall") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /O2 /W3") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /O2 /W3 /Z7") set(OS_LIBS "") else() add_definitions(-DUNIX)