Skip to content

Commit

Permalink
Re-add PHOTON_BUILD_DEPENDENCIES in CI workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
beef9999 committed Oct 26, 2024
1 parent 693f540 commit f19b113
Show file tree
Hide file tree
Showing 9 changed files with 42 additions and 37 deletions.
28 changes: 0 additions & 28 deletions .github/workflows/ci.linux.arm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,31 +41,3 @@ jobs:
nohup redis-server &
ctest -E test-lockfree --timeout 3600 -V
pkill redis-server
gcc921-build-debug:
runs-on: [self-hosted, Linux, ARM64]

container:
image: ghcr.io/alibaba/photon-ut-base:latest
options: --cpus 4

steps:
- uses: szenius/[email protected]
with:
timezoneLinux: "Asia/Shanghai"
timezoneMacos: "Asia/Shanghai"
timezoneWindows: "China Standard Time"

- uses: actions/checkout@v4

- name: Build
run: |
source /opt/rh/gcc-toolset-9/enable
cmake -B build \
-D CMAKE_BUILD_TYPE=Debug \
-D PHOTON_ENABLE_ECOSYSTEM=ON \
-D PHOTON_BUILD_TESTING=ON \
-D PHOTON_ENABLE_SASL=ON \
-D PHOTON_ENABLE_FUSE=ON \
-D PHOTON_ENABLE_EXTFS=ON
cmake --build build -j $(nproc) -- VERBOSE=1
23 changes: 23 additions & 0 deletions .github/workflows/ci.linux.x86_64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,29 @@ jobs:
cd build && ctest -E test-lockfree --timeout 3600 -V
pkill redis-server
debug-build-from-source:
runs-on: ubuntu-latest
container:
image: almalinux:8
steps:
- uses: actions/checkout@v4
- name: Build
run: |
dnf -q -y install git gcc-c++ cmake gcc-toolset-9-gcc-c++
dnf -q -y install autoconf automake libtool
source /opt/rh/gcc-toolset-9/enable
cmake -B build -D CMAKE_BUILD_TYPE=Debug \
-D PHOTON_ENABLE_ECOSYSTEM=ON \
-D PHOTON_BUILD_TESTING=ON \
-D PHOTON_ENABLE_SASL=OFF \
-D PHOTON_ENABLE_FUSE=OFF \
-D PHOTON_ENABLE_URING=ON \
-D PHOTON_ENABLE_EXTFS=OFF \
-D PHOTON_BUILD_DEPENDENCIES=ON \
-D PHOTON_OPENSSL_SOURCE="" \
-D PHOTON_CURL_SOURCE=""
cmake --build build -j $(nproc) -- VERBOSE=1
fstack:
runs-on: ubuntu-latest
container:
Expand Down
9 changes: 8 additions & 1 deletion CMake/Finduring.cmake
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
set(URING_VERSION 2.3)

find_path(URING_INCLUDE_DIRS liburing.h)

find_library(URING_LIBRARIES uring)

find_package_handle_standard_args(uring DEFAULT_MSG URING_LIBRARIES URING_INCLUDE_DIRS)

mark_as_advanced(URING_INCLUDE_DIRS URING_LIBRARIES)
mark_as_advanced(URING_INCLUDE_DIRS URING_LIBRARIES)

get_filename_component(URING_LIB_BASE ${URING_LIBRARIES} DIRECTORY)
if (NOT EXISTS "${URING_LIB_BASE}/liburing.so.${URING_VERSION}")
message(FATAL_ERROR "Requires liburing ${URING_VERSION}. Install it to system or try -D PHOTON_BUILD_DEPENDENCIES=ON")
endif ()
2 changes: 1 addition & 1 deletion CMake/build-from-src.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ function(build_from_src [dep])
ExternalProject_Get_Property(googletest SOURCE_DIR)
ExternalProject_Get_Property(googletest BINARY_DIR)
set(GOOGLETEST_INCLUDE_DIRS ${SOURCE_DIR}/googletest/include ${SOURCE_DIR}/googlemock/include PARENT_SCOPE)
set(GOOGLETEST_LIBRARIES ${BINARY_DIR}/lib/libgmock.a ${BINARY_DIR}/lib/libgtest.a PARENT_SCOPE)
set(GOOGLETEST_LIBRARIES ${BINARY_DIR}/lib/libgmock.a ${BINARY_DIR}/lib/libgtest_main.a ${BINARY_DIR}/lib/libgtest.a PARENT_SCOPE)

elseif (dep STREQUAL "openssl")
set(BINARY_DIR ${PROJECT_BINARY_DIR}/openssl-build)
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
[PhotonlibOS.github.io](https://photonlibos.github.io)

## What's New
* We present a article to illustrate why Photon's stackful coroutine is fast.
[link](https://photonlibos.github.io/blog/stackful-coroutine-made-fast)
* We present an article to illustrate the theory of Photon's coroutine.
[Stackful Coroutine Made Fast](https://photonlibos.github.io/blog/stackful-coroutine-made-fast)
* Version 0.8 has been released in August 2024
* Feb 2024,[中文文档](https://photonlibos.github.io/cn/docs/category/introduction)在官网上线了
* Since 0.7, Photon will use release branches to enhance the reliability of software delivery. Bugfix will be merged into a stable release at first, then to higher release versions, and finally main.
Expand Down
4 changes: 2 additions & 2 deletions common/test/test_objcache.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -136,11 +136,11 @@ TEST(ObjectCache, ctor_may_yield_and_null) {
photon::thread_create(&ph_act, &a);
}
sem.wait(10);
EXPECT_EQ(1, ocache._set.size());
EXPECT_EQ(1UL, ocache._set.size());
ocache.expire();
photon::thread_usleep(1100UL * 1000);
ocache.expire();
EXPECT_EQ(0, ocache._set.size());
EXPECT_EQ(0UL, ocache._set.size());
}

TEST(ObjectCache, multithread) {
Expand Down
3 changes: 3 additions & 0 deletions doc/blog/2024-10-14-stackful-coroutine-made-fast.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,7 @@ slug: stackful-coroutine-made-fast
title: Stackful Coroutine Made Fast
---

<a href="https://github.com/alibaba/PhotonLibOS/blob/main/doc/static/blog-20241014/Stackful_Coroutine_Made_Fast.pdf">
Download pdf</a>

<iframe src='/blog-20241014/stackful-coroutine-made-fast.html' width="100%" height="30000"></iframe>
2 changes: 1 addition & 1 deletion fs/test/test_exportfs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ static std::atomic<int> work(0);

template<typename T, uint64_t val>
int callback(void*, AsyncResult<T>* ret) {
EXPECT_EQ(val, ret->result);
EXPECT_EQ(val, (uint64_t) ret->result);
LOG_DEBUG("DONE `", VALUE(ret->operation));
work--;
return 0;
Expand Down
4 changes: 2 additions & 2 deletions io/iouring-wrapper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ class iouringEngine : public MasterEventEngine, public CascadingEventEngine, pub
ioCtx timer_ctx(true, false);
__kernel_timespec ts;
auto usec = timeout.timeout_us();
if (usec < std::numeric_limits<int64_t>::max()) {
if (usec < (uint64_t) std::numeric_limits<int64_t>::max()) {
sqe->flags |= IOSQE_IO_LINK;
ts = usec_to_timespec(usec);
sqe = _get_sqe();
Expand Down Expand Up @@ -334,7 +334,7 @@ class iouringEngine : public MasterEventEngine, public CascadingEventEngine, pub

ssize_t wait_and_fire_events(uint64_t timeout) override {
// Prepare own timeout
if (timeout > std::numeric_limits<int64_t>::max()) {
if (timeout > (uint64_t) std::numeric_limits<int64_t>::max()) {
timeout = std::numeric_limits<int64_t>::max();
}

Expand Down

0 comments on commit f19b113

Please sign in to comment.