Skip to content

Commit a19ba26

Browse files
committed
refactor: Consolidate naming, rendering, syntax, deps, and uploader changes
- Renamed and refactored version identifiers - Fixed diagram rendering logic - Updated NPM dependencies - Adjusted uploader implementation GitOrigin-RevId: 2fef07cfe809d32ae3a0e09a65d14df08b3c125a
1 parent 958cc9e commit a19ba26

8 files changed

Lines changed: 2991 additions & 43 deletions

File tree

.github/workflows/ci.yml

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ jobs:
129129
-DCMAKE_BUILD_TYPE=Release
130130
-DCMAKE_MAKE_PROGRAM=ninja
131131
-DPULSECAN_USE_VCPKG=OFF
132+
-DPULSECAN_BUILD_ID="${GIT_DESCRIBE}"
132133
-DBUILD_TESTING=OFF
133134
-DCMAKE_C_COMPILER=gcc
134135
-DCMAKE_CXX_COMPILER=g++
@@ -139,12 +140,6 @@ jobs:
139140
- name: Package (RPM)
140141
run: cpack --config build/CPackConfig.cmake -G RPM -B build/packages
141142

142-
- name: Rename RPM with git version (system)
143-
run: |
144-
for f in build/packages/*.rpm; do
145-
mv "$f" "build/packages/pulsescan-${GIT_DESCRIBE}-system.rpm"
146-
done
147-
148143
- name: Show RPM size (system)
149144
run: |
150145
ls -lh build/packages/*.rpm
@@ -194,6 +189,7 @@ jobs:
194189
-DCMAKE_BUILD_TYPE=Release
195190
-DCMAKE_MAKE_PROGRAM=ninja
196191
-DPULSECAN_USE_VCPKG=ON
192+
-DPULSECAN_BUILD_ID="${GIT_DESCRIBE}"
197193
-DCMAKE_TOOLCHAIN_FILE="${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
198194
-DBUILD_TESTING=OFF
199195
-DCMAKE_C_COMPILER=gcc
@@ -205,12 +201,6 @@ jobs:
205201
- name: Package (RPM static)
206202
run: cpack --config build/CPackConfig.cmake -G RPM -B build/packages
207203

208-
- name: Rename RPM with git version (static)
209-
run: |
210-
for f in build/packages/*.rpm; do
211-
mv "$f" "build/packages/pulsescan-${GIT_DESCRIBE}-static.rpm"
212-
done
213-
214204
- name: Show RPM size (static)
215205
run: |
216206
ls -lh build/packages/*.rpm
@@ -253,6 +243,7 @@ jobs:
253243
-DCMAKE_BUILD_TYPE=Release
254244
-DCMAKE_MAKE_PROGRAM=ninja
255245
-DPULSECAN_USE_VCPKG=OFF
246+
-DPULSECAN_BUILD_ID="${GIT_DESCRIBE}"
256247
-DBUILD_TESTING=OFF
257248
-DCMAKE_C_COMPILER=gcc
258249
-DCMAKE_CXX_COMPILER=g++
@@ -263,12 +254,6 @@ jobs:
263254
- name: Package (DEB)
264255
run: cpack --config build/CPackConfig.cmake -G DEB -B build/packages
265256

266-
- name: Rename DEB with git version (system)
267-
run: |
268-
for f in build/packages/*.deb; do
269-
mv "$f" "build/packages/pulsescan-${GIT_DESCRIBE}-system.deb"
270-
done
271-
272257
- name: Show DEB size (system)
273258
run: |
274259
ls -lh build/packages/*.deb
@@ -316,6 +301,7 @@ jobs:
316301
-DCMAKE_BUILD_TYPE=Release
317302
-DCMAKE_MAKE_PROGRAM=ninja
318303
-DPULSECAN_USE_VCPKG=ON
304+
-DPULSECAN_BUILD_ID="${GIT_DESCRIBE}"
319305
-DCMAKE_TOOLCHAIN_FILE="${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
320306
-DBUILD_TESTING=OFF
321307
-DCMAKE_C_COMPILER=gcc
@@ -327,12 +313,6 @@ jobs:
327313
- name: Package (DEB static)
328314
run: cpack --config build/CPackConfig.cmake -G DEB -B build/packages
329315

330-
- name: Rename DEB with git version (static)
331-
run: |
332-
for f in build/packages/*.deb; do
333-
mv "$f" "build/packages/pulsescan-${GIT_DESCRIBE}-static.deb"
334-
done
335-
336316
- name: Show DEB size (static)
337317
run: |
338318
ls -lh build/packages/*.deb

.github/workflows/diagrams.yml

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,31 @@ jobs:
2323
- name: Setup Node
2424
uses: actions/setup-node@v4
2525
with:
26-
node-version: "20"
26+
node-version: "24"
27+
28+
- name: Install Mermaid CLI dependency
29+
run: npm install
30+
31+
- name: Install Chromium
32+
run: |
33+
sudo apt-get update
34+
sudo apt-get install -y chromium-browser || sudo apt-get install -y chromium
35+
36+
- name: Resolve Chromium path
37+
run: |
38+
CHROME_PATH="$(command -v chromium-browser || command -v chromium || command -v google-chrome-stable || command -v google-chrome)"
39+
if [ -z "${CHROME_PATH}" ]; then
40+
echo "Could not find Chromium/Chrome executable in PATH" >&2
41+
exit 1
42+
fi
43+
echo "MERMAID_CHROME_PATH=${CHROME_PATH}" >> "${GITHUB_ENV}"
44+
echo "Using MERMAID_CHROME_PATH=${CHROME_PATH}"
2745
2846
- name: Render Mermaid diagrams
2947
run: ./scripts/render_diagrams.sh
3048

3149
- name: Upload rendered diagrams
32-
uses: actions/upload-artifact@v4
50+
uses: richnetdesign/git-artifact-upload@v1
3351
with:
3452
name: diagrams-svg
3553
path: docs/diagrams/rendered/*.svg
36-

.gitignore

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,17 @@
4242

4343

4444
/build
45-
/.cache
45+
/.cache
46+
47+
# Node docs tooling
48+
/node_modules/
49+
50+
# Bazel outputs
51+
/bazel-bin/
52+
/bazel-out/
53+
/bazel-testlogs/
54+
/bazel-*/
55+
/MODULE.bazel.lock
56+
57+
# Rendered Mermaid artifacts (source .mmd files are tracked)
58+
/docs/diagrams/rendered/*.svg

CMakeLists.txt

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ project(pulsescan_cpp VERSION 1.0.0 LANGUAGES CXX)
2323
option(ENABLE_STACKTRACE "Enable Boost stacktrace logging" OFF)
2424
option(ENABLE_ASIO_SSL "Enable Boost.Asio SSL support" OFF)
2525
option(ENABLE_INTEGRATION_TESTS "Enable environment-dependent integration tests" OFF)
26+
set(PULSECAN_BUILD_ID "" CACHE STRING "Optional CI build identifier (e.g. git describe)")
2627

2728
set(CMAKE_CXX_STANDARD 20)
2829
set(CMAKE_CXX_STANDARD_REQUIRED ON)
@@ -171,16 +172,28 @@ set(CPACK_PACKAGE_VENDOR "ryoung")
171172
set(CPACK_PACKAGE_CONTACT "ryoung")
172173
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "PulseScan C++ network scanner and host monitor")
173174
set(CPACK_PACKAGE_DESCRIPTION "PulseScan C++ is an asynchronous network scanner supporting TCP connect, banner, UDP probing, and ICMP host checks with optional JSON output.")
174-
set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
175+
set(PULSECAN_BUILD_ID_SANITIZED "${PULSECAN_BUILD_ID}")
176+
if(PULSECAN_BUILD_ID_SANITIZED)
177+
string(REGEX REPLACE "[^A-Za-z0-9.+~]" "." PULSECAN_BUILD_ID_SANITIZED "${PULSECAN_BUILD_ID_SANITIZED}")
178+
endif()
179+
set(CPACK_PACKAGE_VERSION "${PROJECT_VERSION}")
175180
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
176181
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
177182
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "ryoung")
178183
set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "${CPACK_PACKAGE_DESCRIPTION}")
179184
set(CPACK_DEBIAN_PACKAGE_SECTION "net")
180185
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/richnetdesign/port-scanner-cpp")
186+
set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
187+
if(PULSECAN_BUILD_ID_SANITIZED)
188+
set(CPACK_DEBIAN_PACKAGE_RELEASE "1.${PULSECAN_BUILD_ID_SANITIZED}")
189+
endif()
181190
set(CPACK_RPM_PACKAGE_AUTOREQPROV ON)
182191
set(CPACK_RPM_PACKAGE_LICENSE "GPL-3.0-only")
183192
set(CPACK_RPM_PACKAGE_GROUP "Applications/Internet")
184193
set(CPACK_RPM_PACKAGE_DESCRIPTION "${CPACK_PACKAGE_DESCRIPTION}")
194+
set(CPACK_RPM_FILE_NAME RPM-DEFAULT)
195+
if(PULSECAN_BUILD_ID_SANITIZED)
196+
set(CPACK_RPM_PACKAGE_RELEASE "1.${PULSECAN_BUILD_ID_SANITIZED}")
197+
endif()
185198
set(CPACK_GENERATOR "DEB;RPM")
186199
include(CPack)

docs/diagrams/ping_loop.mmd

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,25 @@
11
sequenceDiagram
22
participant App as run_app
3-
participant Loop as ping_loop (core/ping_loop.cpp)
3+
participant PingLoop as ping_loop (core/ping_loop.cpp)
44
participant Resolve as resolve_or_expand
55
participant Runner as run_scans
66
participant State as last_state map
77
participant Out as emit_port_result / emit_unavailable
88

9-
App->>Loop: ping_loop(hosts, opts, status)
9+
App->>PingLoop: ping_loop(hosts, opts, status)
1010
loop every opts.ping_interval
11-
Loop->>Resolve: resolve targets for current cycle
12-
Resolve-->>Loop: addresses
13-
Loop->>Runner: run_scans(..., callback)
14-
Runner-->>Loop: ScanRecord stream
15-
Loop->>State: compare current state vs previous
11+
PingLoop->>Resolve: resolve targets for current cycle
12+
Resolve-->>PingLoop: addresses
13+
PingLoop->>Runner: run_scans(..., callback)
14+
Runner-->>PingLoop: ScanRecord stream
15+
PingLoop->>State: compare current state vs previous
1616
alt first pass or changed
17-
Loop->>Out: emit_port_result(change=true/first)
17+
PingLoop->>Out: emit_port_result(change=true/first)
1818
else unchanged
19-
Note over Loop: No text output; JSON depends on filters
19+
Note over PingLoop: No text output, JSON depends on filters
2020
end
21-
Loop->>State: prune missing keys
21+
PingLoop->>State: prune missing keys
2222
alt key disappeared
23-
Loop->>Out: emit_unavailable(...)
23+
PingLoop->>Out: emit_unavailable(...)
2424
end
2525
end
26-

0 commit comments

Comments
 (0)