Commit Graph

38 Commits

Author SHA1 Message Date
root
3188c88737 Make SonarQube analysis non-blocking in the pipeline
Prompted by migrating SonarQube to k8s mid-session, which briefly broke
Jenkins' connectivity to it (server URL config points at a fixed
IP:port that had to move). That's exactly the kind of outage this stage
shouldn't be able to turn into a failed deploy: analysis quality isn't a
deploy gate the way the build/Sonar-unrelated stages are.

Wrapped in catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') —
if SonarQube is unreachable for any reason, the stage fails visibly (shows
red in the stage view) and the build is marked UNSTABLE (not hidden), but
the pipeline continues to Deploy instead of stopping there.
2026-08-21 15:40:05 +02:00
root
4dd4b8ef9b Checkout: hostPath-mount the VPS's own CloudOps checkout instead of cloning
18 straight clone failures today (early EOF / invalid index-pack) even with
http.postBuffer/http.version tuning applied — Gitea's HTTP endpoint itself is
degraded right now, not something fixable client-side. Sidesteps it entirely:
the docker-agent pod template now hostPath-mounts /root/CloudOps (read-only,
see k3s-cloud-init.groovy) and Checkout just `cp -r`s from it, no network
fetch at all. Build/SonarQube paths revert to ./platform/ (no more repo/
subdirectory, since we're not cloning into one).

Real tradeoff, accepted deliberately: builds now reflect whatever's on the
VPS's disk at build time, not necessarily what's pushed to Gitea. Depends on
/root/CloudOps being kept current via the normal git pull workflow.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 11:55:41 +02:00
root
3c90fe9ce8 Replace Jenkins Git plugin checkout with a plain shell clone + retry loop
The Git plugin's checkout([...]) step doesn't expose http.postBuffer/
http.version tuning, which is what's reliably fixed every stuck
push/clone today (VPS and both laptops) — meanwhile checkout was failing
~10 times in a row, consistently dying at 84-95% during the shallow clone
(early EOF / invalid index-pack). Bypasses the plugin entirely: a plain
`git clone` with those settings applied, wrapped in its own 8-attempt
bash retry loop, using the existing dd13f593-06b1-4a5a-9477-2df0d186b490
credential (confirmed via credentials.xml to be a UsernamePasswordCredentialsImpl,
compatible with the usernamePassword binding as-is).

Code now lands in a repo/ subdirectory instead of the workspace root, so
every stage referencing a repo-relative path was updated to match:
- Build Docker Image: ./platform/ -> ./repo/platform/
- SonarQube Analysis: -Dsonar.sources=platform -> -Dsonar.sources=repo/platform
Deploy to Kubernetes needed no changes — it only references the already-built
image tag and hardcoded kubectl args, no filesystem paths into the checkout.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 11:46:39 +02:00
b4308b7d15 fix jenkinsfile structure, add retry(5) to checkout 2026-08-14 12:52:00 +01:00
8f6add243f add retry(5) to checkout stage - gitea git-upload-pack drops connections intermittently 2026-08-14 12:49:06 +01:00
root
9791d541de fix jenkins checkout: skip default full checkout, use shallow clone 2026-08-14 13:37:52 +02:00
a284269574 test push after jenkins checkout fix 2026-08-14 12:33:28 +01:00
5c9d5372a2 fix deploy stage: use k3s kubectl, mask token from logs 2026-08-06 01:31:40 +01:00
6af8e5f791 sonar sidecar container, unique image tags, real k8s deploy stage 2026-08-06 01:06:24 +01:00
78d114f41d switch to k8s agent, remove docker deploy placeholder 2026-08-06 00:02:16 +01:00
df99603d9e ADD SonarQube 2026-06-10 17:16:30 +01:00
c9db50638e ADD SonarQube 2026-06-10 17:10:43 +01:00
ec53903726 ADD SonarQube 2026-06-10 17:06:03 +01:00
4e39130210 fix jenkins build 2026-06-08 13:30:25 +01:00
dd384aebe4 fix jenkins build 2026-06-08 13:26:55 +01:00
e2fd7e7c91 ADD: remove architecture , fix sites 2026-06-07 18:35:25 +01:00
d4d15da0df ADD: sites and architecture module fix 2026-06-07 18:16:20 +01:00
c3fbb0b9da ADD: sites and architecture module fix 2026-06-07 18:11:02 +01:00
f51d5755c2 ADD: sites and architecture module fix 2026-06-07 18:06:09 +01:00
dbc83830ef fix: hostname 2026-06-06 15:45:36 +01:00
0d7468dd7f fix: remove BuildKit due to missing buildx component 2026-06-04 15:55:49 +01:00
c37f83433c fix: remove BuildKit due to missing buildx component 2026-06-04 15:42:04 +01:00
eacf533e9f fix: remove BuildKit due to missing buildx component 2026-06-04 15:40:55 +01:00
3ee079b18e fix: use psutil for reliable CPU and memory metrics 2026-06-04 15:36:39 +01:00
47600ccd42 fix: remove /proc/sys/kernel/hostname mount in docker run 2026-06-04 15:12:35 +01:00
7255c510b3 fix: cpu/memory , test webhook 2026-06-04 14:53:34 +01:00
92908695ae fix: cpu/memory , test webhook 2026-06-04 14:42:36 +01:00
7a3f3113f3 fix: cpu/memory , test webhook 2026-06-04 14:37:55 +01:00
a89fe1ecfd fix: cpu/memory , test webhook 2026-06-04 14:29:22 +01:00
a5bd4b75cf fix: cpu/memory , test webhook 2026-06-04 14:16:45 +01:00
161e5f8a86 fix: add docker CLI and host passwd mount 2026-06-04 12:59:05 +01:00
c162db4374 Fix Dockerfile - add flask install 2026-05-19 22:03:42 +01:00
70542f539d Fix Dockerfile - add flask install 2026-05-19 21:56:12 +01:00
261b6bf392 Fix Dockerfile - add flask install 2026-05-19 21:55:06 +01:00
53c2134f2b Fix Dockerfile - add flask install 2026-05-19 21:53:30 +01:00
1e199b589c Change platform port to 8088 2026-05-19 21:40:58 +01:00
4b5ada60f2 Fix Jenkinsfile - use Docker build instead of python3 2026-05-19 21:30:38 +01:00
8fdf930ae9 Add Dockerfile and Jenkinsfile 2026-05-19 00:05:03 +01:00