Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[gloo] add a github workflow for re-enabling CI #398

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: CI
on:
push:
branches:
- main
pull_request:

jobs:
windows_build:
runs-on: windows-latest
env:
gtest_lib_path: c:/googletest
libuv_path: c:/libuv
steps:
- uses: conda-incubator/setup-miniconda@v3
with:
miniconda-version: "latest"
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v2
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: '3.10'
- name: Add conda to system path
run: |
# $CONDA is an environment variable pointing to the root of the miniconda directory
echo $CONDA/bin >> $GITHUB_PATH
- name: Conda info
shell: bash -l {0}
run: conda info
- name: Setup build environment
run: |
conda create -n py376_build python=3.7.6
conda activate py376_build
conda install cmake
- name: Install libuv
run: |
conda activate py376_build
curl https://dist.libuv.org/dist/v1.38.0/libuv-v1.38.0.tar.gz --output libuv-v1.38.0.tar.gz
tar xzvf libuv-v1.38.0.tar.gz
cd libuv-v1.38.0
mkdir -p build
cd build
mkdir -p ${{ env.gtest_lib_path }}
cmake .. -DCMAKE_INSTALL_PREFIX=${{ env.libuv_path }}
msbuild INSTALL.vcxproj
- name: Install googletest
run: |
conda activate py376_build
curl https://codeload.github.com/google/googletest/tar.gz/release-1.10.0 --output googletest-release-1.10.0.tar.gz
tar xzvf googletest-release-1.10.0.tar.gz
cd googletest-release-1.10.0
mkdir -p build
cd build
if (Test-Path -Path ${{ env.gtest_lib_path }}) {
echo "Directory already exists"
} else {
mkdir ${{ env.gtest_lib_path }}
}
cmake .. -DCMAKE_INSTALL_PREFIX=${{ env.gtest_lib_path }} -Dgtest_force_shared_crt=ON
msbuild INSTALL.vcxproj
- name: Build
run: |
conda activate py376_build
git submodule sync
git submodule update --init --recursive
mkdir -p build
cd build
cmake .. -DBUILD_TEST=ON -Dlibuv_ROOT=${{ env.libuv_path }} -DGTEST_LIBRARY=${{ env.gtest_lib_path }}/lib/gtestd.lib -DGTEST_INCLUDE_DIR=${{ env.gtest_lib_path }}/include -DGTEST_MAIN_LIBRARY=${{ env.gtest_lib_path }}/lib/gtest_maind.lib
msbuild ALL_BUILD.vcxproj
- name: Test
run: |
build/gloo/test/Debug/gloo_test.exe
6 changes: 3 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,9 @@ if(MSVC)
message(STATUS "Set USE_NCCL OFF")
set(USE_RCCL OFF)
message(STATUS "Set USE_RCCL OFF")
set(USE_LIBUV ON)
message(STATUS "Set USE_LIBUV ON")
message(STATUS "Only USE_LIBUV is supported on Windows")
set(USE_LIBUV OFF)
message(STATUS "Set USE_LIBUV OFF")
# message(STATUS "Only USE_LIBUV is supported on Windows")

if(BUILD_BENCHMARK)
message(FATAL_ERROR "BUILD_BENCHMARK is not supported on Windows yet")
Expand Down
2 changes: 1 addition & 1 deletion gloo/common/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ if(MSVC)
)
list(APPEND GLOO_COMMON_SRCS
"${CMAKE_CURRENT_SOURCE_DIR}/win.cc"
)
)
endif()

list(APPEND GLOO_SRCS ${GLOO_COMMON_SRCS})
Expand Down
33 changes: 33 additions & 0 deletions gloo/common/win.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/**
* Copyright (c) 2017-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree.
*/

#include "gloo/common/win.h"
#include "gloo/common/logging.h"

#include <mutex>

namespace gloo {

static std::once_flag init_flag;

// The WSAStartup function must be the first Windows Sockets function
// called by an application or DLL.
// https://docs.microsoft.com/ru-ru/windows/win32/api/winsock/nf-winsock-wsastartup

void init_winsock() {
std::call_once(init_flag, []() {
WSADATA wsa_data;
int res;
res = WSAStartup(MAKEWORD(2, 2), &wsa_data);
if (res != 0) {
GLOO_ENFORCE(false, "WSAStartup failed: ", res);
}
});
}

} // namespace gloo
19 changes: 19 additions & 0 deletions gloo/common/win.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/**
* Copyright (c) 2017-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree.
*/

#pragma once

#include <winsock2.h>

#pragma comment(lib, "Ws2_32.lib")

namespace gloo {

void init_winsock();

} // namespace gloo
1 change: 0 additions & 1 deletion gloo/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ set(GLOO_TEST_SRCS
"${CMAKE_CURRENT_SOURCE_DIR}/openssl_utils.cc"
"${CMAKE_CURRENT_SOURCE_DIR}/reduce_test.cc"
"${CMAKE_CURRENT_SOURCE_DIR}/send_recv_test.cc"
"${CMAKE_CURRENT_SOURCE_DIR}/tls_tcp_test.cc"
)
set(GLOO_TEST_LIBRARIES)

Expand Down
Loading