0.6.0
Pipelines as Code 0.6.0
We are thrilled to announce the release of Pipelines as Code 0.6.0
This release brings many features and a new architecture, moving away from a triggers and task based flow to use a controller to control the PipelineRun
execution.
If you are upgrading from a 0.5.x release, make sure to read the upgrade notes before installing the 0.6 release.
Install Notes
To install you can simply use kubectl
.
OpenShift
kubectl apply -f https://raw.githubusercontent.com/openshift-pipelines/pipelines-as-code/release-0.6.0/release.yaml
Kubernetes
kubectl apply -f https://raw.githubusercontent.com/openshift-pipelines/pipelines-as-code/release-0.6.0/release.k8s.yaml
tkn-pac
tkn pac boostrap
- this will install the latest version and let you create a GitHub appstkn pac bootstrap --skip-github-app
- this will just install the latest version.
Documentation
New Features
New Documentation Website
We have a new documentation website pipelinesascode.com.
New Controller
instead of using the tekton triggers eventlistenner to handle events, we are now using new controller, which allows us to have greater flexibility to manage the Runs.
A nice side effect is a much improved startup between the time the webhook is received to the time we report it on the Github/provider interfaces.
There is no user changes, the only difference will be the location of the Pipelines as Code logs inside the pipelines-as-code
namespace, now located inside the controller logs instead of the individual TaskRun.
Add Gitlab support
We have added Gitlab support. Using a webhook, it will report back the status of the pipelines directly as a comment of the merge request, see the documentation for more info.
Documentation: https://pipelinesascode.com/docs/install/gitlab/
Advanced pipeline filtering with CEL
You are now able to use CEL to match a pipelinerun to an event. This allows a more flexible filtering on request to match PipelineRun to events.
Documentation: https://pipelinesascode.com/docs/guide/autoringprs/#advanced-event-matching
More template variables
New template variables has been added :
{{source_branch}}
: The branch name where the event come from.{{target_branch}}
: The branch name on which the event targets (same as source_branch for push events).{{pull_request_number}}
: The pull or merge request number, only defined when we are in a pull_request event type.
Documentation: https://pipelinesascode.com/docs/guide/autoringprs/
Timeout from PipelineRun are now respected
We are now respecting the timeout parameter from the PipelineRun
or from the Tekton controller. Unless the global setting default-pipelinerun-timeout
in the pipelines-as-code
configmap is set.
Documentation: https://pipelinesascode.com/docs/install/settings/
Upgrade Notes
Cleanup
Since we moved away from the triggers template, there will be some cleaning to do before installing the update.
Launch this command to clean up the resources manually :
for t in TriggerBinding CronJob EventListener TaskRun TriggerBinding TriggerTemplate;do \
kubectl delete --all -n pipelines-as-code ${t};done
Route/Ingress change
Since we have moved to use a controller, the route on OpenShift or Ingress on Kubernetes may need to be updated. This is the target Service
that needs to be used :
to:
kind: Service
name: pipelines-as-code-controller
Repo CRD changes
The default secret key for repository CRD are :
provider.token
- previouslytoken
webhook.secret
- previouslysecret
you may have to update your repo crds if you were using the previous defaults.
Default timeout on PipelineRun
We previously had a hard limit of 2 hours on every PipelineRun
, we are now able to respect the settings as configured on the PipelineRun
.
If you are upgrading, you may want to remove the default-pipelinerun-timeout
setting from the configmap.
Changelog
- 010bc25: ACL support, from comment and project/group level (@chmouel)
- 9b056c4: Add E2E Test badge to workflow (@chmouel)
- 0775cec: Add better comment in the default generated tmpl (@chmouel)
- fb312e0: Add check_run in bootstrap & remove commit comment (not supported) (@sm43)
- a9e272c: Add dev links (@chmouel)
- fba9cad: Add documentation (@chmouel)
- 6498ebc: Add gitlab e2e test (@chmouel)
- 040e653: Add gitlab env into gha workflow (@chmouel)
- 98ebbe9: Add info from where the branch come from (@chmouel)
- 12ba5c5: Add pagination (@chmouel)
- a35df38: Add preview URLS build (@chmouel)
- 3d2c3a6: Add pull request number template variable (@chmouel)
- d9327ad: Add push support (@chmouel)
- aabf58f: Add release process documentation (@chmouel)
- d247f5d: Add sender, source_branch, target_branch variables (@chmouel)
- 1007fb4: Add support for /retest and /ok-to-test (@chmouel)
- 6d51637: Add tekton and Openshift pipelines to readme (@chmouel)
- ffa9bd7: Add tests for pkg/consoleui and kinteract/labels (@chmouel)
- 467aebb: Add unit test for create sttus (@chmouel)
- 5bc6c55: Add vale grammar editing (@chmouel)
- 03ea1b2: Adds controller for PAC (@sm43)
- 91b2b28: Adds unit test for pac handler (@sm43)
- 8eaccc9: Allow replaying webhooks directly (@chmouel)
- 29ced5f: Apply suggestions from code review frm super SM43 (@chmouel)
- 86c6059: Better error reporting when Hub API is down (@chmouel)
- 7b0d636: Bitbucket-server: adds payload validation using webhook secret (@sm43)
- 62b8674: CI fixes for gh:actions and pac (@chmouel)
- 5492d9b: Cleanup: removes unnecessary rbac role for controller (@sm43)
- d824220: Create stable tags on release (@chmouel)
- 02ca95d: Detect if we have cluster task and use this for generation (@chmouel)
- becf3ca: Do buildah push to quay directly in pipeline (@chmouel)
- 705c4fe: Don't match a pipeline if we don't have annotation (@chmouel)
- 137bc69: Enables bitbucket cloud provider in controller (@sm43)
- 4bbfa38: Enables bitbucket server provider in controller (@sm43)
- ed7787b: Enables gitlab provider in controller (@sm43)
- 05b0c88: First jab at gitlab support (@chmouel)
- 1a0ade1: Fix cli href link (@chmouel)
- 1d2446b: Fix deb and rpm names generation on release (@chmouel)
- 17cf25c: Fix generating image (@chmouel)
- 7a2e61e: Fix github pull request trigger target (@chmouel)
- 0a9edd0: Fix link (@chmouel)
- 48db590: Fix markdown last comma (@chmouel)
- 2fcf40c: Fix running controller on Dockerfile (@chmouel)
- eb3acf2: Fix spelling (@chmouel)
- 63e0844: Fix unit test since we moved to use triggertarget instead of EventType (@chmouel)
- 7402411: Formatting for release-process.md (@chmouel)
- 72ac6c8: GitHub: removes unsupported event from bootstrap cmd and docs (@sm43)
- bf538df: Github pull req test (@sm43)
- 1afe13b: Gitlab: adds payload validation using webhook secret (@sm43)
- e2e4731: Implement Advanced event matching via CEL (@chmouel)
- 665ca3f: Improve replay-last-pr script (@chmouel)
- 442c722: Make sure we clean the test cache before running the tests (@chmouel)
- 1ac7a42: Make sure we strip refs/heads when exposing branch (@chmouel)
- 7d25892: Make test-unit less verbose (@chmouel)
- 72af6d2: More doc tweaking (@chmouel)
- 7ce3f42: Move common code for providers to a single place (@sm43)
- e2ef124: Move documentation to a hugo site (@chmouel)
- 3571133: Output a json message at the end after processing (@chmouel)
- ccf00e2: Parse event type and payload at single place (@sm43)
- c288b17: Pass all headers when replaying github requests (@chmouel)
- cbee724: Point to the release version when releasing in release (@chmouel)
- d8a3d40: Print the version to stdout instead of stderr (@chmouel)
- e639143: Read pac installation namespace from env (@sm43)
- c04aed6: Refactor all e2e tests (@chmouel)
- cc6d6fa: Remove all references to eventListnener (@chmouel)
- 9fb4823: Remove building from github actions (@chmouel)
- c3d508d: Remove metadata.creationTimestamp (@chmouel)
- d6aab9a: Remove payload fix func in github (@sm43)
- 47d8293: Remove spinner, since never used (yet) (@chmouel)
- e1a9aca: Remove trailing spaces (@chmouel)
- 865fae0: Remove trailing whitespaces (@chmouel)
- ed17556: Repo create cmd: convert username to lowercase and then use it (@sm43)
- 5e3db73: Respect timeout from pr by default (@chmouel)
- 5586114: Restart controller after configmap changes in CI (@sm43)
- 166d91d: Run over the documentation to proselint (@chmouel)
- 8a5ddda: Save replayed event in replay-last-gh-delivery.sh (@chmouel)
- 7a3b4a0: Show better name in sample (@chmouel)
- 3e0f4b2: Spelling update (@chmouel)
- 9ff7d14: Start level of table of contents from 2 (@chmouel)
- f626599: Store targetbranch status wo/ refs/heads prefix (@chmouel)
- 063ce22: Support kubernetes clusters for bootstrap (@chmouel)
- 769ba57: Supporting same kind of events across providers: (@sm43)
- 5fc4004: TestGetTektonDir TODO commit message (@chmouel)
- 3e0aaf5: Try to detect if pac is installed via operator (@chmouel)
- ed613b2: Update README.md (@chmouel)
- 938d751: Update docs for webhook secret and other fixes (@sm43)
- 1178c63: Update docs/content/dev/release-process.md (@chmouel)
- 37f97fc: Update documentation related to install and operator (@chmouel)
- 0590938: Update go-toolset image on push pipeline too (@chmouel)
- 6ec60b3: Update golden files (@chmouel)
- 00b81c6: Update install.md (@chmouel)
- e4c2ea6: Update proper email address for conduct report (@chmouel)
- 1328c53: Update to tekton 0.33 shipped with 1.7 OSP (@chmouel)
- 0f1896c: Updates docs to have one secret with both keys for webhook (@sm43)
- 1bc7dd1: Use 8.5 ubi for ko defaultBaseImage (@chmouel)
- 0ebb629: Use Tag instead of Tags for goreleaser template (@chmouel)
- 439f3c7: Use defaults for pipelinerun template in repo create cmd (@sm43)
- dbbdcdd: Use official GitHub name with capital H (@chmouel)
- 731efe7: Use target_branch for the branch to push for (@chmouel)
- 2cef320: Use ubi-micro 8.5 for the default template (@chmouel)
- e5c7b1c: [doc] Move links to dev folder (@chmouel)
- 311e665: [gh app] Update exiting check run if there is one (@chmouel)
- 710de5e: [github] Detect all yaml inside .tekton subdirectories (@chmouel)
- fc63dcc: [github] Improve github acl unittest coverage (@chmouel)
- 31ba7f0: [githubaction] collect all pods logs directly after pipeline finished (@chmouel)
- a9e45c9: [gitlab] always post comment on succces/failure (@chmouel)
- 1c89283: [resolver] Skip trying to resolve Pipeline bundle (@chmouel)
- ef9322c: [status] Fix PR status when no tasks has run (@chmouel)
- 970b2ec: add README status of provider (@chmouel)
- af33c36: add TestParsePayload test for mr, still need to add rest for others (@chmouel)
- 17ba8b1: add a better prerelease snippet to not have to copy and paste badly (@chmouel)
- 5be66c9: add comments about events (@chmouel)
- be7d377: add commitinfo/config/setclient test (@chmouel)
- b92b9e2: add debugging script and some documentation (@chmouel)
- 0ed26ea: add gitlab acl unittests (@chmouel)
- d88da00: add last test on parsePayload for note (@chmouel)
- 108694f: add link in readme (@chmouel)
- 4d9d869: add notes (@chmouel)
- 98e2b51: add save option (@chmouel)
- 4768428: add support for ghe (@chmouel)
- 71e0b25: add support for non public github (@chmouel)
- 49bb21b: add test for parsepayload push event (@chmouel)
- 6576b4f: add the release.yaml directly on the release page (@chmouel)
- df3bd09: adds e2e test for unsupported/skipped event (@sm43)
- 05f46b7: adds missing check in secret test (@sm43)
- ff69d1c: adds probes to controller deployment (@sm43)
- df4c09f: adds unit test for event parsing (@sm43)
- a9086ef: bitbucket cloud Fix getting files from API (@chmouel)
- 25af8d2: bitbucket cloud: enables source ip check (@sm43)
- 57dfe80: cleanup org/repo from here as not used. (@chmouel)
- d9d0e32: decouple Event object from Run as Run is shared among all api calls (@sm43)
- 642ebae: decouple event specific info from pac (@sm43)
- 657ccc9: disbling e2e, will enable with changes for controller based execution (@sm43)
- b7a09f0: documentation fixes (@chmouel)
- f90f456: dump configmap along with logs & drop triggers installation (@sm43)
- aaaba69: enable all github e2e tests (@sm43)
- 1185b75: enable clear cache before running test (@sm43)
- e0461ed: enable github e2e test (@sm43)
- f4142ea: enable secretRef for gitlab interceptor (@chmouel)
- d2a111e: exposes func for checking retest and ok-to-test comments (@sm43)
- 4424baf: filter request before processing (GitHub) (@sm43)
- 668f9f4: finished unittest for gitlab.go >> 93% (@chmouel)
- 7cf0af5: fix e2e tests failing to cleanup pr (@chmouel)
- 849f478: fix gofumpt errors (@chmouel)
- 3ca7a86: fix some docs issues (@chmouel)
- 55bb6dd: fix some fumpt formatting (@chmouel)
- 948d730: fix some warnings on documentation formatting (@chmouel)
- f6ca23d: fix target pac version variable on release (@chmouel)
- ea6bbdd: fix tkn pac repo create not accepting namespace (@chmouel)
- 3c3dff5: fix workflow error (@chmouel)
- 554eb05: fixes comment regex to allow string along with /retest and /ok-to-test (@sm43)
- d2d0777: fixes ghe failures with app (@sm43)
- bf2b333: fixes metrics error at start of controller (@sm43)
- a0f68f9: fixes reponse err: write response header before body (@sm43)
- af25597: gitlab, add test to make sure we are disallowed by default (@chmouel)
- a2aebdd: gitlab: automatically detect private instances (@chmouel)
- 543902f: gitlab: error gracefully when push has no commits (@chmouel)
- 995a5d5: handle status as comment (@chmouel)
- e273510: init github client only in case of valid payload (@sm43)
- 83777be: log skipped event as info and log error only for unsupported (@sm43)
- 11b46ee: make sure to specify the namespace or we won't be able to get the log (@chmouel)
- 6beabf8: make sure to split the / to - or it will buig on secret creation (@chmouel)
- 98af30b: make sure we fail if the PR has timeout or failed (@chmouel)
- b4d57eb: make sure we remove the Hook suffix to look better on status (@chmouel)
- dbb7c53: make sure we use triggertarget, since in gitlab it's called differently (@chmouel)
- 909f2ad: markdownlint the markdown files and add a test in pr pipeline (@chmouel)
- 51459ea: minor corrections (@sm43)
- b7a9c72: move controller manifest to config dir and rename older config (@sm43)
- e3334fe: move logic for finding event type to provider (@sm43)
- db80449: never fail when collecting logs in github pipeline (@chmouel)
- afd7396: only run github e2e on go changes, not yaml (@chmouel)
- 159e00d: pac: doc fixes (@sm43)
- 5f4c71d: remove obsolete comment (@chmouel)
- 585f686: remove old manifests (@sm43)
- e569099: remove public docs from here (@chmouel)
- 7f9a5e8: rename parseEventPayload and remove github unwanted code (@sm43)
- 86048e2: return if failed to find event type (@sm43)
- 9c9b92c: returns "ok" if not a POST call (@sm43)
- afb37ac: reuses github validate signature func for bitbucket server (@sm43)
- 81abc95: reword bitbucket cloud documentation (@chmouel)
- 4db7674: set copyright to the current year in release yamls (@chmouel)
- e00041a: set wait back to 2 hours 🙃 (@chmouel)
- 6d28b43: shuffle wording on release (@chmouel)
- c435b30: skip checking triggers in bootstrap command (@sm43)
- 599df9c: split further the pages into their own (@chmouel)
- 64ab07e: strip whitespaces (@chmouel)
- 0255a33: switch to pre-commit tools for pre-commit checks (@chmouel)
- 131f151: tidy gomod (@chmouel)
- 766a4e6: tkn-pac: install from the release from the new release file branch (@chmouel)
- e98ee8d: try to fix permissions errors (@chmouel)
- 1ccd0ec: update documentation with regard to subtree (@chmouel)
- 3292d42: update go toolset image to latest with 1.16 (@chmouel)
- 132fcc2: update go.mod libraries (@chmouel)
- ff95e9e: update gotest.tools to latest (@chmouel)
- 20be4e1: update role back to prev (@sm43)
- 20e48d2: update secrets test for change in seedData (@sm43)
- e39da2b: update to latest golangci-lint (@chmouel)
- 6430def: updates bootstrap to fetch updated controller route (@sm43)
- 7d69ad8: use pull_request_number for generatign preview urls (@chmouel)
- 26d3269: user username/password for upload since it is protected (@chmouel)
- 73c6c1f: validate payload for valid json before processing (@sm43)
- b5c1dfb: validate webhook payload (@chmouel)