{"id":5834,"date":"2024-03-18T11:03:57","date_gmt":"2024-03-18T10:03:57","guid":{"rendered":"https:\/\/onlu.ch\/tekton-cicd-example-project-github-integration-testing-part-3-3\/"},"modified":"2025-07-18T12:02:22","modified_gmt":"2025-07-18T10:02:22","slug":"tekton-cicd-example-project-github-integration-testing-part-3-3","status":"publish","type":"post","link":"https:\/\/onlu.ch\/en\/tekton-cicd-example-project-github-integration-testing-part-3-3\/","title":{"rendered":"Tekton CICD example project &#8211; GitHub Integration &amp; testing (part 3\/3)"},"content":{"rendered":"\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<p class=\"wp-block-paragraph\">In this final part, we&#8217;ll explore how to set up and integrate the created golang pipeline using GitHub and GitHub webhooks with Tekton pipelines running on GCP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A simple GoLang project has been created, comprising a basic health endpoint for system monitoring especially for kubernetes probes. Its primary functionality centers on a sum function, which accepts two input parameters and communicates the result back to the client via RESTful API. The project also includes thorough testing to guarantee its sum function is working as expected.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The app is available under <a href=\"https:\/\/github.com\/c-linse\/go-add-app\">https:\/\/github.com\/c-linse\/go-add-app.<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/onlu.ch\/wp-content\/uploads\/2024\/03\/GitHub-Logo-1024x576.png\" alt=\"\" class=\"wp-image-2619\" srcset=\"https:\/\/onlu.ch\/wp-content\/uploads\/2024\/03\/GitHub-Logo-1024x576.png 1024w, https:\/\/onlu.ch\/wp-content\/uploads\/2024\/03\/GitHub-Logo-300x169.png 300w, https:\/\/onlu.ch\/wp-content\/uploads\/2024\/03\/GitHub-Logo-768x432.png 768w, https:\/\/onlu.ch\/wp-content\/uploads\/2024\/03\/GitHub-Logo-1536x864.png 1536w, https:\/\/onlu.ch\/wp-content\/uploads\/2024\/03\/GitHub-Logo-2048x1152.png 2048w, https:\/\/onlu.ch\/wp-content\/uploads\/2024\/03\/GitHub-Logo-650x366.png 650w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1 Setting up GitHub webhook<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">To set up a GitHub webhook for triggering Tekton pipelines, follow these steps:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Copy the external IP address of the Tekton event listener service. Using the following command: <\/p>\n\n\n\n<pre class=\"wp-block-code\">\n$ kubectl get svc\n<\/pre>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"wp-block-paragraph\">In the GitHub repository settings, navigate to Webhooks and add a new webhook. Set the payload URL to `http:\/\/<external_ip>:<port>\/`, replacing `<external_ip>` with the Tekton event listener external IP and `<port>` with the port configured for the Tekton event listener service.   <\/port><\/external_ip><\/port><\/external_ip><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Note<\/strong>: In an enterprise environment, it is of course important to use an ingress controller with a valid server certificate!<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" width=\"941\" height=\"1024\" src=\"https:\/\/onlu.ch\/wp-content\/uploads\/2024\/03\/Screenshot-2024-03-13-at-17.13.09-941x1024.png\" alt=\"\" class=\"wp-image-2538\" style=\"width:353px;height:auto\" srcset=\"https:\/\/onlu.ch\/wp-content\/uploads\/2024\/03\/Screenshot-2024-03-13-at-17.13.09-941x1024.png 941w, https:\/\/onlu.ch\/wp-content\/uploads\/2024\/03\/Screenshot-2024-03-13-at-17.13.09-276x300.png 276w, https:\/\/onlu.ch\/wp-content\/uploads\/2024\/03\/Screenshot-2024-03-13-at-17.13.09-768x836.png 768w, https:\/\/onlu.ch\/wp-content\/uploads\/2024\/03\/Screenshot-2024-03-13-at-17.13.09-597x650.png 597w, https:\/\/onlu.ch\/wp-content\/uploads\/2024\/03\/Screenshot-2024-03-13-at-17.13.09.png 1150w\" sizes=\"(max-width: 941px) 100vw, 941px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">2 Testing pipeline execution happy path<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><em>Git commit on feature branch<\/em><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Lets create a feature branch and trigger the pipeline.<\/p>\n\n\n\n<pre class=\"wp-block-code\">\n$ git fetch origin\n$ git checkout main\n$ git checkout -b feature\/division\n$ git push --set-upstream origin feature\/division\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">We see already that the build has been started, indicated by the orange circle. We can monitor the pipeline execution via the Tekton dashboard to ensure the pipeline triggers and completes successfully.<br\/>This can be done by simply clicking on the orange circle and by clicking on &#8220;details&#8221;. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We can see that the build only contains the lint, test and go build job, showcasing that the strategy for feature branches works just fine.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><em>Git commit on main branch<\/em><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Similarly on the main branch we can for example merge a pull request which has been reviewed and can be merged.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After merging we can observe in the details that the job contains the whole chain from linting, testing, building, to creating container images,<br\/>helm packages and the deploy step to a dev stage. After only 2 minutes we got the whole cycle executed. <\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><em><em>Creating a git tag<\/em><\/em><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Finally we can create a Git tag to trigger the pipeline for creating releases or deploying specific versions of the application.<\/p>\n\n\n\n<pre class=\"wp-block-code\">\n$ git fetch origin\n$ git checkout <commit_hash>\n$ git tag -a <tag_name> -m \"Description of the tag\"\n$ git push origin <tag_name>\n<\/tag_name><\/tag_name><\/commit_hash><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">When we monitor the pipeline execution, we can see that we deploy this time to the qa namespace instead of the dev namespace, since the qa namespaces<br\/>deserves a higher quality level. This staging principle could be extended to a different level, f.e. when working with release candidates. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4 Verifying artifact availability<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">As the pipeline turns green for building and pushing the container image and the helmet package lets observe if thats<br\/>really the case.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><em>Checking container image availability<\/em><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">After pipeline execution, verify the availability of the container image<\/p>\n\n\n\n<pre class=\"wp-block-code\">\n$ podman pull quay.io\/christoph_linse\/go-add-app\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Of course, since this registry is accisble only after authentication, ensure to be logged in.<\/p>\n\n\n\n<pre class=\"wp-block-code\">\n$ podman login quay.io\/christoph_linse\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Checking helm repository publication<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Check if the Helm repository has been published<\/p>\n\n\n\n<pre class=\"wp-block-code\">\n$ helm repo add tekton-course-charts https:\/\/c-linse.github.io\/tekton-course-charts    \n$ helm repo update\n$ helm search repo tekton-course-charts \n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">We should see that the helmet chart has been published successfully.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Note: This helm repository is served via github pages, since it is really fast to setup and easy to use. That makes it<br\/>simple to showcase helm in demo like this. To know more about github pages check <a href=\"https:\/\/helm.sh\/docs\/topics\/chart_repository\/#github-pages-example\">this link<\/a>.<br\/>A helm repository basically contains the index.yaml with a list of packaged helm charts as leveraged in the custom<br\/>helm chart task.  <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5 Verifying continuous deployment<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">We would be able now to deploy this helm chart as any other to the kubernetes cluster to see if our app is working as<br\/>supposed to. Fortunately we have developed the continues deployment step, so we can check the status of this app.<br\/>A brief look into the cluster itself shows that we have indeed the golang app running in the dev namespace. <\/p>\n\n\n\n<pre class=\"wp-block-code\">\n$ kubectl get deployments\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">6 Conclusion<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In conclusion, we&#8217;ve established a streamlined Go development pipeline leveraging GitProject and WebHooks. Our pipeline<br\/>exhibits enterprise-grade functionality by incorporating reusable tasks from Tekton Hub and customizing tasks to suit<br\/>project requirements. With an agnostic approach, our pipeline can be easily adapted for other Go projects, providing<br\/>flexibility and total control over the development and deployment process.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">By following the steps outlined in this article, you can elevate your Go development workflows, enhance collaboration,<br\/>and accelerate project delivery while maintaining reliability and flexibility. Streamline your development journey<br\/>today with GitProject and WebHooks! <\/p>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>In this final part, we&#8217;ll explore how to set up and integrate the created golang pipeline using GitHub and GitHub webhooks with Tekton pipelines running on GCP. A simple GoLang [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[78],"tags":[],"class_list":["post-5834","post","type-post","status-publish","format-standard","hentry","category-tech-en"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Tekton CICD example project - GitHub Integration &amp; testing (part 3\/3) - ONLU AG<\/title>\n<meta name=\"description\" content=\"Raspberry Pi, Angular, Golang, Ansible, Podman\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/onlu.ch\/en\/tekton-cicd-example-project-github-integration-testing-part-3-3\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tekton CICD example project - GitHub Integration &amp; testing (part 3\/3) - ONLU AG\" \/>\n<meta property=\"og:description\" content=\"Raspberry Pi, Angular, Golang, Ansible, Podman\" \/>\n<meta property=\"og:url\" content=\"https:\/\/onlu.ch\/en\/tekton-cicd-example-project-github-integration-testing-part-3-3\/\" \/>\n<meta property=\"og:site_name\" content=\"ONLU AG\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-18T10:03:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-18T10:02:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/onlu.ch\/wp-content\/uploads\/2024\/03\/GitHub-Logo-1024x576.png\" \/>\n<meta name=\"author\" content=\"Christoph Linse\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Christoph Linse\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/onlu.ch\\\/en\\\/tekton-cicd-example-project-github-integration-testing-part-3-3\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/onlu.ch\\\/en\\\/tekton-cicd-example-project-github-integration-testing-part-3-3\\\/\"},\"author\":{\"name\":\"Christoph Linse\",\"@id\":\"https:\\\/\\\/onlu.ch\\\/en\\\/#\\\/schema\\\/person\\\/353c364495054e80cbd27ab514737661\"},\"headline\":\"Tekton CICD example project &#8211; GitHub Integration &amp; testing (part 3\\\/3)\",\"datePublished\":\"2024-03-18T10:03:57+00:00\",\"dateModified\":\"2025-07-18T10:02:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/onlu.ch\\\/en\\\/tekton-cicd-example-project-github-integration-testing-part-3-3\\\/\"},\"wordCount\":723,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/onlu.ch\\\/en\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/onlu.ch\\\/en\\\/tekton-cicd-example-project-github-integration-testing-part-3-3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/onlu.ch\\\/wp-content\\\/uploads\\\/2024\\\/03\\\/GitHub-Logo-1024x576.png\",\"articleSection\":[\"Tech\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/onlu.ch\\\/en\\\/tekton-cicd-example-project-github-integration-testing-part-3-3\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/onlu.ch\\\/en\\\/tekton-cicd-example-project-github-integration-testing-part-3-3\\\/\",\"url\":\"https:\\\/\\\/onlu.ch\\\/en\\\/tekton-cicd-example-project-github-integration-testing-part-3-3\\\/\",\"name\":\"Tekton CICD example project - GitHub Integration &amp; testing (part 3\\\/3) - ONLU AG\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/onlu.ch\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/onlu.ch\\\/en\\\/tekton-cicd-example-project-github-integration-testing-part-3-3\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/onlu.ch\\\/en\\\/tekton-cicd-example-project-github-integration-testing-part-3-3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/onlu.ch\\\/wp-content\\\/uploads\\\/2024\\\/03\\\/GitHub-Logo-1024x576.png\",\"datePublished\":\"2024-03-18T10:03:57+00:00\",\"dateModified\":\"2025-07-18T10:02:22+00:00\",\"description\":\"Raspberry Pi, Angular, Golang, Ansible, Podman\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/onlu.ch\\\/en\\\/tekton-cicd-example-project-github-integration-testing-part-3-3\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/onlu.ch\\\/en\\\/tekton-cicd-example-project-github-integration-testing-part-3-3\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/onlu.ch\\\/en\\\/tekton-cicd-example-project-github-integration-testing-part-3-3\\\/#primaryimage\",\"url\":\"https:\\\/\\\/onlu.ch\\\/wp-content\\\/uploads\\\/2024\\\/03\\\/GitHub-Logo-1024x576.png\",\"contentUrl\":\"https:\\\/\\\/onlu.ch\\\/wp-content\\\/uploads\\\/2024\\\/03\\\/GitHub-Logo-1024x576.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/onlu.ch\\\/en\\\/tekton-cicd-example-project-github-integration-testing-part-3-3\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/onlu.ch\\\/en\\\/home-page\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tekton CICD example project &#8211; GitHub Integration &amp; testing (part 3\\\/3)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/onlu.ch\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/onlu.ch\\\/en\\\/\",\"name\":\"ONLU AG\",\"description\":\"Massgeschneiderte Software \u2013 Ihr hoch-qualifiziertes IT Team\",\"publisher\":{\"@id\":\"https:\\\/\\\/onlu.ch\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/onlu.ch\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/onlu.ch\\\/en\\\/#organization\",\"name\":\"ONLU AG\",\"alternateName\":\"ONLU.CH\",\"url\":\"https:\\\/\\\/onlu.ch\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/onlu.ch\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/onlu.ch\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/onlu-logo-red-arrow.png\",\"contentUrl\":\"https:\\\/\\\/onlu.ch\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/onlu-logo-red-arrow.png\",\"width\":800,\"height\":221,\"caption\":\"ONLU AG\"},\"image\":{\"@id\":\"https:\\\/\\\/onlu.ch\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/ch.linkedin.com\\\/company\\\/onlu\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/onlu.ch\\\/en\\\/#\\\/schema\\\/person\\\/353c364495054e80cbd27ab514737661\",\"name\":\"Christoph Linse\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3a295372eae36b7fa132ff908936fec734764799ddec57d186881d0f2a164372?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3a295372eae36b7fa132ff908936fec734764799ddec57d186881d0f2a164372?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3a295372eae36b7fa132ff908936fec734764799ddec57d186881d0f2a164372?s=96&d=mm&r=g\",\"caption\":\"Christoph Linse\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tekton CICD example project - GitHub Integration &amp; testing (part 3\/3) - ONLU AG","description":"Raspberry Pi, Angular, Golang, Ansible, Podman","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/onlu.ch\/en\/tekton-cicd-example-project-github-integration-testing-part-3-3\/","og_locale":"en_US","og_type":"article","og_title":"Tekton CICD example project - GitHub Integration &amp; testing (part 3\/3) - ONLU AG","og_description":"Raspberry Pi, Angular, Golang, Ansible, Podman","og_url":"https:\/\/onlu.ch\/en\/tekton-cicd-example-project-github-integration-testing-part-3-3\/","og_site_name":"ONLU AG","article_published_time":"2024-03-18T10:03:57+00:00","article_modified_time":"2025-07-18T10:02:22+00:00","og_image":[{"url":"https:\/\/onlu.ch\/wp-content\/uploads\/2024\/03\/GitHub-Logo-1024x576.png","type":"","width":"","height":""}],"author":"Christoph Linse","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Christoph Linse","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/onlu.ch\/en\/tekton-cicd-example-project-github-integration-testing-part-3-3\/#article","isPartOf":{"@id":"https:\/\/onlu.ch\/en\/tekton-cicd-example-project-github-integration-testing-part-3-3\/"},"author":{"name":"Christoph Linse","@id":"https:\/\/onlu.ch\/en\/#\/schema\/person\/353c364495054e80cbd27ab514737661"},"headline":"Tekton CICD example project &#8211; GitHub Integration &amp; testing (part 3\/3)","datePublished":"2024-03-18T10:03:57+00:00","dateModified":"2025-07-18T10:02:22+00:00","mainEntityOfPage":{"@id":"https:\/\/onlu.ch\/en\/tekton-cicd-example-project-github-integration-testing-part-3-3\/"},"wordCount":723,"commentCount":0,"publisher":{"@id":"https:\/\/onlu.ch\/en\/#organization"},"image":{"@id":"https:\/\/onlu.ch\/en\/tekton-cicd-example-project-github-integration-testing-part-3-3\/#primaryimage"},"thumbnailUrl":"https:\/\/onlu.ch\/wp-content\/uploads\/2024\/03\/GitHub-Logo-1024x576.png","articleSection":["Tech"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/onlu.ch\/en\/tekton-cicd-example-project-github-integration-testing-part-3-3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/onlu.ch\/en\/tekton-cicd-example-project-github-integration-testing-part-3-3\/","url":"https:\/\/onlu.ch\/en\/tekton-cicd-example-project-github-integration-testing-part-3-3\/","name":"Tekton CICD example project - GitHub Integration &amp; testing (part 3\/3) - ONLU AG","isPartOf":{"@id":"https:\/\/onlu.ch\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/onlu.ch\/en\/tekton-cicd-example-project-github-integration-testing-part-3-3\/#primaryimage"},"image":{"@id":"https:\/\/onlu.ch\/en\/tekton-cicd-example-project-github-integration-testing-part-3-3\/#primaryimage"},"thumbnailUrl":"https:\/\/onlu.ch\/wp-content\/uploads\/2024\/03\/GitHub-Logo-1024x576.png","datePublished":"2024-03-18T10:03:57+00:00","dateModified":"2025-07-18T10:02:22+00:00","description":"Raspberry Pi, Angular, Golang, Ansible, Podman","breadcrumb":{"@id":"https:\/\/onlu.ch\/en\/tekton-cicd-example-project-github-integration-testing-part-3-3\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/onlu.ch\/en\/tekton-cicd-example-project-github-integration-testing-part-3-3\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/onlu.ch\/en\/tekton-cicd-example-project-github-integration-testing-part-3-3\/#primaryimage","url":"https:\/\/onlu.ch\/wp-content\/uploads\/2024\/03\/GitHub-Logo-1024x576.png","contentUrl":"https:\/\/onlu.ch\/wp-content\/uploads\/2024\/03\/GitHub-Logo-1024x576.png"},{"@type":"BreadcrumbList","@id":"https:\/\/onlu.ch\/en\/tekton-cicd-example-project-github-integration-testing-part-3-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/onlu.ch\/en\/home-page\/"},{"@type":"ListItem","position":2,"name":"Tekton CICD example project &#8211; GitHub Integration &amp; testing (part 3\/3)"}]},{"@type":"WebSite","@id":"https:\/\/onlu.ch\/en\/#website","url":"https:\/\/onlu.ch\/en\/","name":"ONLU AG","description":"Massgeschneiderte Software \u2013 Ihr hoch-qualifiziertes IT Team","publisher":{"@id":"https:\/\/onlu.ch\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/onlu.ch\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/onlu.ch\/en\/#organization","name":"ONLU AG","alternateName":"ONLU.CH","url":"https:\/\/onlu.ch\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/onlu.ch\/en\/#\/schema\/logo\/image\/","url":"https:\/\/onlu.ch\/wp-content\/uploads\/2023\/06\/onlu-logo-red-arrow.png","contentUrl":"https:\/\/onlu.ch\/wp-content\/uploads\/2023\/06\/onlu-logo-red-arrow.png","width":800,"height":221,"caption":"ONLU AG"},"image":{"@id":"https:\/\/onlu.ch\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/ch.linkedin.com\/company\/onlu"]},{"@type":"Person","@id":"https:\/\/onlu.ch\/en\/#\/schema\/person\/353c364495054e80cbd27ab514737661","name":"Christoph Linse","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3a295372eae36b7fa132ff908936fec734764799ddec57d186881d0f2a164372?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3a295372eae36b7fa132ff908936fec734764799ddec57d186881d0f2a164372?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3a295372eae36b7fa132ff908936fec734764799ddec57d186881d0f2a164372?s=96&d=mm&r=g","caption":"Christoph Linse"}}]}},"_links":{"self":[{"href":"https:\/\/onlu.ch\/en\/wp-json\/wp\/v2\/posts\/5834","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/onlu.ch\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/onlu.ch\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/onlu.ch\/en\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/onlu.ch\/en\/wp-json\/wp\/v2\/comments?post=5834"}],"version-history":[{"count":2,"href":"https:\/\/onlu.ch\/en\/wp-json\/wp\/v2\/posts\/5834\/revisions"}],"predecessor-version":[{"id":5836,"href":"https:\/\/onlu.ch\/en\/wp-json\/wp\/v2\/posts\/5834\/revisions\/5836"}],"wp:attachment":[{"href":"https:\/\/onlu.ch\/en\/wp-json\/wp\/v2\/media?parent=5834"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/onlu.ch\/en\/wp-json\/wp\/v2\/categories?post=5834"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/onlu.ch\/en\/wp-json\/wp\/v2\/tags?post=5834"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}