Commit Graph

515 Commits

Author SHA1 Message Date
qwerty287
b4708c895e Fix typos in pipeline/pipeline.go (#6094)
Co-authored-by: 6543 <6543@obermui.de>
2026-02-09 14:54:21 +01:00
6543
904a40674f Detached or service steps report back too (#6039) 2026-02-07 09:18:13 +01:00
qwerty287
fe9db664fe Add some tests (#6076) 2026-02-06 23:49:42 +01:00
6543
8a8f9ad3aa Fix pipeline cancellation status handling and step state synchronization (#6011)
Co-authored-by: pnkcaht <samzoovsk19@gmail.com>
Co-authored-by: qwerty287 <80460567+qwerty287@users.noreply.github.com>
Co-authored-by: Lauris B <lauris@nix.lv>
2026-02-05 21:41:05 +01:00
6543
cd62ab5f3e Local backend: cleanup generated script for cmd.exe shell (#6029) 2026-01-28 07:10:29 +01:00
6543
47ffb3209e Local backend: setup clone step respects context (#6030) 2026-01-28 06:47:18 +01:00
Sam Richard
b1cbd961b2 Fix/docker kill container on cancel (#6018)
## Fix: kill docker container on pipeline cancellation

### What was happening
When a pipeline step was canceled (e.g. manual cancel or agent shutdown), the Docker backend would stop waiting for the container but **would not actively terminate it**.  
This caused containers running long-lived commands (like `sleep`, `tail -f`, servers, etc.) to continue running in the background.

## Related Issue
Closes #6016 

### What this PR changes
This PR ensures that **when the step context is canceled**, the running Docker container is **immediately killed**.

- Listens to `ctx.Done()` in `WaitStep`
- Sends a `ContainerKill` using a non-cancelable context
- Preserves existing behavior for normal container exit
- Prevents orphaned containers after pipeline cancellation

### Why this approach
Docker containers do not automatically stop when the caller context is canceled.  
Explicitly killing the container on `ctx.Done()` guarantees correct cleanup and matches expected CI behavior.
2026-01-27 00:19:44 +01:00
6543
3786077c07 Update Architecture: move pipeline/rpc => rpc & server/{grpc => rpc} (#6012) 2026-01-26 21:25:38 +01:00
6543
9d21e09c46 Local backend handle canceled steps case (#6008) 2026-01-25 17:26:56 +01:00
qwerty287
bd8e2f350e Use require to exit tests (#5998) 2026-01-22 09:41:20 +01:00
qwerty287
cd88723b2d Use NoError for error assertion (#5992) 2026-01-20 08:43:51 +01:00
6543
d1b7e35ca8 Improve service syntax related docs and tests nits (#5991) 2026-01-19 19:44:18 +02:00
6543
4e0b91fbd2 Remove deactivated secrets type from container defintion (#5983) 2026-01-18 21:48:47 +01:00
qwerty287
8c231aa99d Allow to disable a cron (#5896)
Co-authored-by: 6543 <6543@obermui.de>
2025-12-24 09:02:03 +00:00
Martin Schmidt
b7b33db98b feat(kubernetes): add support for pod affinity and anti-affinity configurations (#5854) 2025-12-17 13:59:22 +01:00
6543
93cba04b36 Allow untrusted repo to still drop network for steps (#5820)
as it is an undocumented feature this might change / move into a more generalized backend network option at some point ...

but i think we could at least support it as proposed in this patch meanwhile
2025-12-09 16:57:44 +01:00
Henrik Huitti
ba2b806e83 fix(kubernetes): sanitize step names or skip hostname assignment (#5848) 2025-12-09 01:37:12 +01:00
Martin Schmidt
6aab68063c fix: Reintroduce stop all pods on workflow (#5815) 2025-12-02 21:10:01 +01:00
Martin Schmidt
9f828c96b0 Add support for headless Kubernetes services (#5764)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Henrik Huitti <henrik.huitti@henhu.fi>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Robert Kaussow <mail@thegeeklab.de>
2025-12-02 14:42:00 +01:00
Henrik Huitti
068a961d01 feat: include CI_COMMIT_TAG env in deployment events (#5773) 2025-11-21 16:13:55 +01:00
qwerty287
4ab721b920 Revert "Add support for sidecar containers and volumes in Kubernetes backend" (#5726) 2025-11-06 17:33:23 +01:00
Martin Schmidt
02ea16ecbf Add support for sidecar containers and volumes in Kubernetes backend (#5666) 2025-11-06 16:45:38 +01:00
LUKIEYF
40f847b944 Add Header User-Agent for request client (#5664)
add Header User-Agent for request client for more precise in recognized the http request from.

close #3778
2025-11-05 11:41:48 +01:00
6543
dd0f5932b3 Switch from BoolTrue to optional.Option[bool] (#5693) 2025-11-04 14:43:30 +01:00
renovate[bot]
09e8d32353 chore(deps): update dependency golangci/golangci-lint to v2.6.0 (#5702)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: qwerty287 <qwerty287@posteo.de>
2025-11-03 15:22:20 +01:00
Harri Avellan
69fc5bfa25 fix: panic due to an invalid memory address when injectSecretRecursive encounters nil values (#5699) 2025-10-31 08:10:00 +01:00
LUKIEYF
7ce65365b1 Enhancement log stream reading and writing and handle new lines and max-size (#5683)
Co-authored-by: qwerty287 <80460567+qwerty287@users.noreply.github.com>
Co-authored-by: Anbraten <6918444+anbraten@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-10-29 19:13:20 +01:00
6543
393a598212 Make local backend work with cli exec (#4102) 2025-10-27 13:12:26 +01:00
6543
3d43a3fce6 Make pipeline/frontend/yaml/* types able to be marshaled back to YAML (#1835) 2025-10-25 10:27:22 +02:00
6543
75f773062b cli: show description of default value for --backend-local-temp-dir instead of value (#5656) 2025-10-20 23:30:46 +02:00
Marcus Ramberg
ab641bd3fe Improve log.CopyByLine to be more robust (#5641) 2025-10-16 15:51:50 +02:00
Marcus Ramberg
647fa843f6 Modernize a couple of loops, fix incorrect function docs (#5637) 2025-10-14 13:00:19 +02:00
6543
aeb29f2609 flake.lock: Update (#5635) 2025-10-13 18:52:28 +02:00
6543
a68111fb24 Make TestCopyLineByLine less flaky (#5589) 2025-10-02 08:17:47 +02:00
6543
61835d72bb make local backend tests less flaky (#5586) 2025-10-01 20:04:49 +02:00
6543
44c8921c19 local backend: fix steps having logs form other steps (#5582)
## problem

if steps where started concurrent, the stdout pipeline reader war overwritten and you randomly got the wrong command stream 
from a step.

## change

where we have possible race conditions, we now use thread save types
e.g. store the command struct and the output reader in sync.Map

also a lot of tests where added
2025-10-01 16:58:37 +02:00
6543
2a97ae9bcd Document pipeline backend engine interface precisely (#5583) 2025-10-01 13:06:34 +02:00
6543
9edaa1e0c3 local backend test shells if unknown (#5570)
currently if we don't know the shell we just assume posix.
this adds a small test, to ensure it is and fail gracefully before doing weird stuff.

## Test Conf

```yaml
skip_clone: true
steps:
  build:
    image: "true"
    commands:
      - echo "building..."
```
2025-10-01 12:29:48 +02:00
6543
e11f110db0 local backend: fix windows cmd.exe command escaping (#5569) 2025-09-30 16:52:43 +02:00
Harri Avellan
0fc615c178 Trace errors during SetupWorkflow, make service step setup errors visible to user (#5559)
Co-authored-by: qwerty287 <80460567+qwerty287@users.noreply.github.com>
Co-authored-by: Robert Kaussow <mail@thegeeklab.de>
2025-09-28 21:56:43 +02:00
Henrik Huitti
a3c3846c16 fix(k8s): add retry logic with exponential backoff for pod log streaming (#5550) 2025-09-25 18:37:51 +00:00
6543
388557d94a New event pull request metadata (#5214)
Co-authored-by: qwerty287 <qwerty287@posteo.de>
2025-09-25 00:07:45 +02:00
qwerty287
e9c545e25b Add StepFinished to log service (#5530) 2025-09-24 13:41:03 +02:00
Robert Kaussow
2f3c4a28c1 Migrate to mockery v3 (#5547) 2025-09-24 13:12:55 +02:00
Henrik Huitti
0bd69e876f Add task UUID label to Kubernetes pods (#5544) 2025-09-23 20:30:20 +02:00
Robert Kaussow
7707e843f2 Show human readable information in queue info (#5516)
Co-authored-by: qwerty287 <80460567+qwerty287@users.noreply.github.com>
2025-09-23 09:35:49 +02:00
Robert Kaussow
8a69a1cfc6 Fix formatting and version formatting tools (#5540) 2025-09-23 00:36:46 +02:00
Gusted
d2ea85e55f fix: allow spaces in WOODPECKER_PLUGINS_PRIVILEGED (#5494) 2025-09-09 22:33:53 +00:00
Sebastian Klaus
4fd240a144 fix: changed schema definition for "backend_options.kubernetes.tolerations" to accept an array of objects (#5478)
Co-authored-by: qwerty287 <80460567+qwerty287@users.noreply.github.com>
2025-09-05 19:04:15 +02:00
6543
c5a5bbea5d Add milestone to metadata (#5174) 2025-09-01 16:12:54 +02:00