Skip to content
Draft
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
35 changes: 35 additions & 0 deletions .github/workflows/check-core-staging.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Check core staging

on:
pull_request:
types: [opened, reopened, synchronize, ready_for_review]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
core-staging:
name: Core staging
runs-on: ubuntu-latest
permissions:
contents: read
packages: read
steps:
- uses: actions/checkout@v4

- uses: openDAQ/openDAQ-CI/.github/actions/resolve-channel@jira/TBBAS-3477-staging-check
id: channel

- name: Read the pinned core ref
shell: bash
run: echo "CORE_REF=$(cat opendaq_ref)" >> "$GITHUB_ENV"

- uses: openDAQ/openDAQ-CI/.github/actions/staging-check@jira/TBBAS-3477-staging-check
env:
CHANNEL: ${{ steps.channel.outputs.channel }}
with:
packages: >-
[
{ "path": "ghcr.io/openDAQ/$CHANNEL/staging/opendaq", "tag": "$CORE_REF" }
]
2 changes: 1 addition & 1 deletion .github/workflows/ci-downstream.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:
jobs:
call-opendaq-reusable:
name: LT Streaming Modern
uses: openDAQ/openDAQ-CI/.github/workflows/reusable.yml@v2
uses: openDAQ/openDAQ-CI/.github/workflows/reusable.yml@jira/TBBAS-3439-multi-staging
with:
opendaq-ref: ${{ github.event.inputs.opendaq-ref || '' }}
include-jobs: >
Expand Down
107 changes: 107 additions & 0 deletions .github/workflows/stage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
name: Build LT streaming module stagings

on:
push:
schedule:
- cron: '0 2 * * 1'
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
resolve:
name: Resolve the core commit
runs-on: ubuntu-latest
outputs:
core-ref: ${{ steps.core.outputs.ref }}
channel: ${{ steps.channel.outputs.channel }}
steps:
- uses: actions/checkout@v4

- uses: openDAQ/openDAQ-CI/.github/actions/resolve-channel@jira/TBBAS-3477-staging-check
id: channel

- name: Read the pinned core ref
id: core
shell: bash
run: echo "ref=$(cat opendaq_ref)" >> "$GITHUB_OUTPUT"

stage:
needs: resolve
name: LtStreamingModulesModern
permissions:
contents: read
packages: write
uses: openDAQ/openDAQ-CI/.github/workflows/stage.yml@jira/TBBAS-3439-multi-staging
with:
timeout: '[{"timeout-minutes": 180}]'
staging-pull: >-
[
{ "artifact": "core-windows-2022-x86_64-msvs-v143-release", "packages": [{ "path": "ghcr.io/openDAQ/test/staging/opendaq", "tag": "${{ needs.resolve.outputs.core-ref }}", "annotations": { "com.opendaq.custom.platform": "windows", "com.opendaq.settings.arch": "x86_64" } }] },
{ "artifact": "core-windows-2022-x86-msvs-v143-release", "packages": [{ "path": "ghcr.io/openDAQ/test/staging/opendaq", "tag": "${{ needs.resolve.outputs.core-ref }}", "annotations": { "com.opendaq.custom.platform": "windows", "com.opendaq.settings.arch": "x86" } }] },
{ "artifact": "core-manylinux_2_28-x86_64-ninja-gcc-release", "packages": [{ "path": "ghcr.io/openDAQ/test/staging/opendaq", "tag": "${{ needs.resolve.outputs.core-ref }}", "annotations": { "com.opendaq.custom.platform": "manylinux_2_28", "com.opendaq.settings.arch": "x86_64" } }] },
{ "artifact": "core-ubuntu-22.04-x86_64-ninja-gcc-release", "packages": [{ "path": "ghcr.io/openDAQ/test/staging/opendaq", "tag": "${{ needs.resolve.outputs.core-ref }}", "annotations": { "com.opendaq.custom.platform": "linux", "com.opendaq.settings.arch": "x86_64" } }] },
{ "artifact": "core-ubuntu-22.04-armv8-ninja-gcc-release", "packages": [{ "path": "ghcr.io/openDAQ/test/staging/opendaq", "tag": "${{ needs.resolve.outputs.core-ref }}", "annotations": { "com.opendaq.custom.platform": "linux", "com.opendaq.settings.arch": "armv8" } }] },
{ "artifact": "core-macos-26-x86_64-ninja-appleclang-release","packages": [{ "path": "ghcr.io/openDAQ/test/staging/opendaq", "tag": "${{ needs.resolve.outputs.core-ref }}", "annotations": { "com.opendaq.custom.platform": "macos", "com.opendaq.settings.arch": "x86_64" } }] },
{ "artifact": "core-macos-26-armv8-ninja-appleclang-release", "packages": [{ "path": "ghcr.io/openDAQ/test/staging/opendaq", "tag": "${{ needs.resolve.outputs.core-ref }}", "annotations": { "com.opendaq.custom.platform": "macos", "com.opendaq.settings.arch": "armv8" } }] }
]
include-jobs: >-
[
"windows-2022-x86_64-msvs-v143-release",
"windows-2022-x86-msvs-v143-release",
"manylinux_2_28-x86_64-ninja-gcc-release",
"ubuntu-22.04-x86_64-ninja-gcc-release",
"ubuntu-22.04-armv8-ninja-gcc-release",
"macos-26-x86_64-ninja-appleclang-release",
"macos-26-armv8-ninja-appleclang-release"
]
packages: >-
[
{ "match-jobs": ["windows-2022-x86_64-msvs-v143-release"], "artifacts": [{ "name": "core-windows-2022-x86_64-msvs-v143-release", "dir": "staging-deps" }] },
{ "match-jobs": ["windows-2022-x86-msvs-v143-release"], "artifacts": [{ "name": "core-windows-2022-x86-msvs-v143-release", "dir": "staging-deps" }] },
{ "match-jobs": ["manylinux_2_28-x86_64-ninja-gcc-release"], "artifacts": [{ "name": "core-manylinux_2_28-x86_64-ninja-gcc-release", "dir": "staging-deps" }] },
{ "match-jobs": ["ubuntu-22.04-x86_64-ninja-gcc-release"], "artifacts": [{ "name": "core-ubuntu-22.04-x86_64-ninja-gcc-release", "dir": "staging-deps" }] },
{ "match-jobs": ["ubuntu-22.04-armv8-ninja-gcc-release"], "artifacts": [{ "name": "core-ubuntu-22.04-armv8-ninja-gcc-release", "dir": "staging-deps" }] },
{ "match-jobs": ["macos-26-x86_64-ninja-appleclang-release"],"artifacts": [{ "name": "core-macos-26-x86_64-ninja-appleclang-release", "dir": "staging-deps" }] },
{ "match-jobs": ["macos-26-armv8-ninja-appleclang-release"], "artifacts": [{ "name": "core-macos-26-armv8-ninja-appleclang-release", "dir": "staging-deps" }] },

{ "match-jobs": ["ubuntu-*"], "apt-install": ["libssl-dev"] },
{ "match-jobs": ["manylinux*"], "yum-install": ["openssl-devel"] },
{ "match-jobs": ["windows-*-x86-*"], "run": "vcpkg install openssl:x86-windows; Add-Content -Path $env:GITHUB_PATH -Value C:\\vcpkg\\installed\\x86-windows\\bin -Encoding utf8" }
]
cmake-presets: >-
[
{
"match-jobs": ["*"],
"configure-preset": "stage",
"cache-variables":
{
"CMAKE_PREFIX_PATH": "${sourceDir}/staging-deps;${sourceDir}/staging-deps/opt/opendaq"
}
},
{
"match-jobs": ["macos-*"],
"cache-variables": {"CMAKE_OSX_DEPLOYMENT_TARGET": "10.15"}
},
{
"match-jobs": ["windows-*-x86-*"],
"cache-variables": {"OPENSSL_ROOT_DIR": "C:/vcpkg/installed/x86-windows"}
}
]
cpack-presets: >-
[
{
"match-jobs": ["*"],
"stagings": [{"name": "lt-streaming"}]
}
]
staging-push: >-
[
{
"path": "ghcr.io/${{ github.repository_owner }}/${{ needs.resolve.outputs.channel }}/staging/lt-streaming-modules",
"artifacts": ["staging-*/lt-streaming"],
"tags": ["latest"]
}
]
7 changes: 7 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ set(REPO_OPTION_PREFIX DAQMODULES_LT_STREAMING)
list(APPEND CMAKE_MESSAGE_CONTEXT ${REPO_NAME})
add_subdirectory(cmake)

# Names the install components of the modules: openDAQ_<module>_Runtime / _Development
set(SDK_NAME "${OPENDAQ_SDK_NAME}")

opendaq_read_file_contents("${CMAKE_CURRENT_LIST_DIR}/module_version" module_version)
opendaq_get_version_major_minor_patch("${module_version}" ${REPO_OPTION_PREFIX}_VERSION)

Expand Down Expand Up @@ -82,3 +85,7 @@ if (${REPO_OPTION_PREFIX}_ENABLE_TESTS AND ${REPO_OPTION_PREFIX}_ENABLE_CLIENT A
add_subdirectory(tests)
endif()

if (PROJECT_IS_TOP_LEVEL)
include(cmake/Packing.cmake)
endif()

11 changes: 11 additions & 0 deletions CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,17 @@
"cacheVariables": {
"DAQMODULES_LT_STREAMING_ENABLE_TESTS": "ON"
}
},
{
"name": "stage",
"hidden": true,
"cacheVariables": {
"DAQMODULES_LT_STREAMING_ENABLE_CLIENT": "ON",
"DAQMODULES_LT_STREAMING_ENABLE_SERVER": "ON",
"DAQMODULES_LT_STREAMING_ENABLE_EXAMPLE_APP": "OFF",
"DAQMODULES_LT_STREAMING_ENABLE_TESTS": "OFF",
"CPACK_COMPONENTS_ALL": "openDAQ_ws_stream_cl_module_Runtime;openDAQ_ws_stream_srv_module_Runtime"
}
}
],
"testPresets": [
Expand Down
2 changes: 1 addition & 1 deletion cmake/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ include(FetchContent)
FetchContent_Declare(
opendaq-cmake-utils
GIT_REPOSITORY https://github.com/openDAQ/opendaq-cmake-utils.git
GIT_TAG v1.0.1
GIT_TAG ci/staging
GIT_PROGRESS ON
)
FetchContent_MakeAvailable(opendaq-cmake-utils)
53 changes: 53 additions & 0 deletions cmake/Packing.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
##
## CPack configuration for the LT streaming modules
##

set(CPACK_PACKAGE_NAME ${PROJECT_NAME})
set(CPACK_PACKAGE_VENDOR "openDAQ d.o.o.")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "openDAQ LT streaming client and server modules")
set(CPACK_PACKAGE_HOMEPAGE_URL "https://opendaq.io/")
set(CPACK_PACKAGE_CONTACT "info@opendaq.io")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")

set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})

set(CPACK_VERBATIM_VARIABLES ON)
set(CPACK_THREADS 0)

set(CPACK_GENERATOR TGZ)
set(CPACK_COMPONENTS_GROUPING ALL_COMPONENTS_IN_ONE)
set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)

if(NOT CPACK_PACKAGE_DIRECTORY)
set(CPACK_PACKAGE_DIRECTORY "${CMAKE_SOURCE_DIR}/build/_packages")
endif()

##
## Package filename and staging metadata
##
## Format: lt-streaming-modules-<version>[-<sha>]-<arch>-<os>-<compiler>-<compiler-version>-<build-type>
## Composed by opendaq-cmake-utils, the same way core names its packages.
##

set(CPACK_OPENDAQ_META_PACKAGE_NAME "lt-streaming-modules")

execute_process(COMMAND git -C "${CMAKE_CURRENT_SOURCE_DIR}" rev-parse --short=7 HEAD
OUTPUT_VARIABLE _PACKING_SHORT_SHA
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET
)
if(_PACKING_SHORT_SHA)
set(CPACK_OPENDAQ_META_PACKAGE_VERSION_SUFFIX "-${_PACKING_SHORT_SHA}")
endif()

opendaq_detect_settings()
opendaq_detect_package()
opendaq_compose_package_triplet()
opendaq_compose_package_file_name()

# Let each cpack run name the package it produces (-D CPACK_OPENDAQ_META_PACKAGE_NAME=...).
set(CPACK_PROJECT_CONFIG_FILE "${CPACK_OPENDAQ_PROJECT_CONFIG}")

include(CPack)
2 changes: 1 addition & 1 deletion opendaq_ref
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1e654ad4d8ab6211c78412928b888bb1cf5d1875
64ab85c594f0ad5fef169c84ae24bda251540f38
Loading