159 Commits
Author SHA1 Message Date
qwerty287andGitHub a360563fad Warn if using secrets/env with plugin (#4027) (#4039) 2024-08-16 17:08:06 +02:00
6543andGitHub cd5f6f71a2 Migrate to github.com/urfave/cli/v3 (#2951) 2024-07-18 01:26:35 +02:00
qwerty287andGitHub a076393561 Exclude dummy backend in production (#3877) 2024-07-08 16:29:43 +02:00
daeab8d3c7 Add dummy backend (#3820)
Co-authored-by: Anbraten <6918444+anbraten@users.noreply.github.com>
2024-06-30 23:06:07 -07:00
Thomas AndersonandGitHub 7bc38a1d8b K8s secrets reference from step (#3655) 2024-06-23 18:20:21 +02:00
044c3a6dd5 Respect cli argument when checking docker backend availability (#3770)
Co-authored-by: Anbraten <6918444+anbraten@users.noreply.github.com>
2024-06-10 12:51:38 +02:00
065eebd306 Agent-wide node selector (#3608)
Co-authored-by: qwerty287 <80460567+qwerty287@users.noreply.github.com>
2024-06-03 17:25:28 +02:00
AnbratenandGitHub f6904d6662 Fix privileged steps in kubernetes (#3711) 2024-05-30 18:53:03 +02:00
6543andGitHub 42f2734308 cspell lint go code (#3706) 2024-05-24 22:35:04 +02:00
37ea906958 fix(deps): update golang-packages (#3713)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: qwerty287 <qwerty287@posteo.de>
2024-05-23 17:37:21 +02:00
Robert KaussowandGitHub 89e100cfd1 Add godot linter to harmonitze toplevel comments (#3650) 2024-05-13 22:58:21 +02:00
ae72102503 Ability to set pod annotations and labels from step (#3609)
Co-authored-by: qwerty287 <80460567+qwerty287@users.noreply.github.com>
2024-05-11 11:45:29 +02:00
225ddb586d Rework entrypoints (#3269)
Co-authored-by: Thomas Anderson <127358482+zc-devs@users.noreply.github.com>
Co-authored-by: 6543 <m.huber@kithara.com>
2024-05-02 14:52:01 +02:00
f211a780f3 Handle ImagePullBackOff pod status (#3580)
close: https://github.com/woodpecker-ci/woodpecker/issues/3555

Put the same logic from `waitStep` and call the function
`isImagePullBackOffState` in the `tailStep` function.

---------

Co-authored-by: elias.souza <elias.souza@quintoandar.com.br>
Co-authored-by: Anbraten <6918444+anbraten@users.noreply.github.com>
2024-04-15 09:08:13 +02:00
qwerty287andGitHub c9a3bfb321 Fix spellcheck and enable more dirs (#3603) 2024-04-09 09:04:53 +02:00
e1b574a4bc Add runtimeClassName in Kubernetes backend options (#3474)
Resolves #3473

---------

Co-authored-by: Thomas Anderson <127358482+zc-devs@users.noreply.github.com>
2024-03-29 10:29:07 +01:00
qwerty287andGitHub 2029813fc2 Remove unused cache properties (#3567) 2024-03-29 09:48:28 +01:00
Robert KaussowandGitHub a779eed3df Enable golangci linter gomnd (#3171) 2024-03-15 18:00:25 +01:00
zowhoeyandGitHub ad507d8ee4 Move generic agent flags to cmd/agent/core (#3484) 2024-03-15 11:31:35 +01:00
AnbratenandGitHub 9db9c7116f Improve security context handling (#3482) 2024-03-13 22:41:13 +01:00
bffc9c8ff8 fix: can't run multiple services on k8s (#3395)
Fix Issue: https://github.com/woodpecker-ci/woodpecker/issues/3288

The way the pod service starts up makes it impossible to run two or more
pipelines at the same time when we have a service section.

The idea is to set the name of the service in the same way we did for
the pod name.

Pipeline: 

```yaml

services:
  mydb:
    image: mysql
    environment:
      - MYSQL_DATABASE=test
      - MYSQL_ROOT_PASSWORD=example
    ports:
      - 3306/tcp
steps:
  get-version:
    image: ubuntu
    commands:
      - ( apt update && apt dist-upgrade -y && apt install -y mysql-client 2>&1 )> /dev/null
      - sleep 30s # need to wait for mysql-server init
      - echo 'SHOW VARIABLES LIKE "version"' | mysql -uroot -hmydb test -pexample
```

Running more than one pipeline result:


![image](https://github.com/woodpecker-ci/woodpecker/assets/22245125/e512309f-0d1e-4125-bab9-2357a710fedd)

---------

Co-authored-by: elias.souza <elias.souza@quintoandar.com.br>
2024-02-17 12:30:06 +01:00
AnbratenandGitHub 6785806873 Fix backend detection (#3353)
closes #3352
2024-02-09 00:04:43 +01:00
AnbratenandGitHub 0b91317cde Fix linter (#3354) 2024-02-08 22:49:07 +01:00
qwerty287andGitHub 6892a9ca57 Parse backend options in backend (#3227)
Currently, backend options are parsed in the yaml parser.
This has some issues:
- backend specific code should be in the backend folders
- it is not possible to add backend options for backends added via
addons
2024-02-08 18:39:32 +01:00
qwerty287andGitHub f92f8b17a3 Make agent usable for external backends (#3270) 2024-02-08 16:33:22 +01:00
Fernando BarbosaandGitHub c7467b9828 fix: agent panic when node is terminated during step execution (#3331)
Fixes https://github.com/woodpecker-ci/woodpecker/issues/3330

This adds error handling on the agent's WaitStep function, on two
sections where it could encounter a `panic: runtime error: invalid
memory address or nil pointer dereference` in case it could no longer
access complete information about a specific pod.

This error was found to happen if the node in which the pod was running
was terminated during the step's execution.
spite active pipelines being executed on the node.

Now instead of a panic on the agent's logs and undefined behavior on the
UI it will display a more helpful error message on the UI.

### Additional context

We observed the bug first on v2.1.1, but tested the fix internally on
top of 2.3.0.


![image](https://github.com/woodpecker-ci/woodpecker/assets/7269710/dfbcf089-85f7-4b5d-8102-f21af95c5cda)
2024-02-05 22:46:14 +01:00
94b882fb95 Add spellcheck config (#3018)
Part of #738 

```
pnpx cspell lint --gitignore '{**,.*}/{*,.*}'
```

---------

Co-authored-by: Anbraten <anton@ju60.de>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: 6543 <6543@obermui.de>
2024-01-27 21:15:10 +01:00
Thomas AndersonandGitHub e5c83190c7 Sanitize pod's step label (#3275)
Closes #3272
2024-01-26 13:42:21 +01:00
EliasandGitHub 1c3159ebb7 fix: bug pod service without label service (#3256) 2024-01-23 07:42:47 +01:00
qwerty287andGitHub 6925afd83b Pin prettier version (#3260) 2024-01-22 21:38:47 +02:00
32a1199519 fix: bug annotations (#3255)
Fix Issue: https://github.com/woodpecker-ci/woodpecker/issues/3254

Co-authored-by: elias.souza <elias.souza@quintoandar.com.br>
2024-01-22 13:39:49 +01:00
qwerty287andGitHub 5e2f7d81b3 Clean up models (#3228) 2024-01-22 07:56:18 +01:00
Thomas AndersonandGitHub 072fa29f4a Fixed Pods creation of WP services (#3236)
Closes #3178
2024-01-21 03:56:37 +01:00
d1d2e9723d Support custom steps entrypoint (#2985)
Closes https://github.com/woodpecker-ci/woodpecker/issues/278

---------

Co-authored-by: Anbraten <anton@ju60.de>
Co-authored-by: 6543 <6543@obermui.de>
2024-01-19 05:34:02 +01:00
Thomas AndersonandGitHub 10f2e209d6 Secured kubernetes backend configuration (#3204)
Follow up of #3165
2024-01-15 03:59:08 +01:00
qwerty287andGitHub 001b5639a6 Use assert for test (#3201)
instead of `if`s
2024-01-14 19:33:58 +01:00
qwerty287andGitHub b9f6f3f9fb Replace goimports with gci (#3202)
`gci` seems to be much more strict.
2024-01-14 18:22:06 +01:00
Thomas AndersonandGitHub 0611fa9b32 Added protocol in port configuration (#2993)
Closes  #2727
2024-01-12 23:57:24 +01:00
Thomas AndersonandGitHub 9bbc446009 Kubernetes AppArmor and seccomp (#3123)
Closes #2545

seccomp
https://kubernetes.io/docs/tutorials/security/seccomp/

https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/135-seccomp/README.md

AppArmor
https://kubernetes.io/docs/tutorials/security/apparmor/

https://github.com/kubernetes/enhancements/blob/fddcbb9cbf3df39ded03bad71228265ac6e5215f/keps/sig-node/24-apparmor/README.md
Went ahead and implemented API from KEP-24 above.
2024-01-12 23:32:24 +01:00
Robert KaussowandGitHub 9bbba4441d Enable golangci linter forcetypeassert (#3168)
Split out from https://github.com/woodpecker-ci/woodpecker/pull/2960
2024-01-12 02:01:02 +01:00
Robert KaussowandGitHub f813badcf9 Enable golangci linter contextcheck (#3170)
Split out from https://github.com/woodpecker-ci/woodpecker/pull/2960
2024-01-11 22:15:15 +01:00
6543andGitHub f8fb28e651 More docker backend test remove more undocumented (#3156)
remove Sysctls and IpcMode
2024-01-11 19:30:13 +01:00
b0a2b1cf2d Lowercase all log strings (#3173)
from #3161

---------

Co-authored-by: 6543 <6543@obermui.de>
2024-01-11 19:17:07 +01:00
6543andGitHub d1fe86b7be Use UUID as podName and cleanup arguments for Kubernetes backend (#3135)
to much args are just horrible to maintain. And we already have it nice
structured stored as step.
2024-01-11 16:32:37 +01:00
Robert KaussowandGitHub 7756c60a33 Enable golangci linter stylecheck (#3167)
This PR only fixes error string formatting, log message strings are
still mixed upper/lowercase (see
https://github.com/woodpecker-ci/woodpecker/pull/3161#issuecomment-1885140649)
and I'm not aware of a linter to enforce it.
2024-01-10 22:56:42 +01:00
qwerty287andGitHub 00df53e941 Clean up logging (#3161)
- use `Err` method instead of format strings
- use `Msg` if no format string is used
2024-01-10 20:57:12 +01:00
qwerty287andGitHub 12c40eb957 Enable gocritic and don't ignore globally (#3159)
Use `nolint` directives instead.

From #2960
2024-01-10 15:34:44 +01:00
768fd71841 Enable some linters (#3129)
Mostly those that did not require much work.

From #2960

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-01-09 21:35:37 +01:00
6543andGitHub c91c6fbe9e TestToConfigSmall ignore sort order of env vars (#3154)
so this https://ci.woodpecker-ci.org/repos/3780/pipeline/11803/30 can
not randomly happen
2024-01-09 18:34:11 +01:00
6543 e3cf7b212c fix also test of #3137 2024-01-09 16:36:17 +01:00