Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems. https://projecteuler.net/
This repository is my take on Project Euler solutions as well as an example of various CI/CD tools.
- Kotlin
- Gradle
The following CI/CD tools are used to build and test the code in this project.
- Tekton
- Pipelines as Code
- dependabot
Monitor vulnerabilities in dependencies used in your project and keep your dependencies up-to-date with Dependabot.
Tekton is used as the primary CI solution for building and testing the code in this repository. The Pipelines as Code project supplements Tekton and allows PipelineRun definitions to be stored alongside the source code.
The Tekton instance is running on a self-hosted k3s cluster to showcase the combining of a cloud-based SCM on-prem CI tools.
sequenceDiagram
participant Developer
box External
participant GitHub
end
box Network Edge
participant proxy as Reverse Proxy
end
box Private Network
participant PAC as Pipelines as Code
participant Tekton
end
Developer->>GitHub: Push code/Open Pull Request
GitHub->>proxy: POST webhook (via GitHub App)
proxy->>PAC: Forward GitHub webhook
PAC->>PAC: Validate webhook payload
PAC->>PAC: Fetch PipelineRun from SCM
PAC-->>Tekton: Create PipelineRun
Tekton->>Tekton: Build/Test
PAC->>PAC: Wait for PipelineRun to complete
Tekton-->>PAC: PipelineRun complete
PAC->>GitHub: Report build status to GitHub