https://github.com/owainlewis/frequency
A modular Continuous Integration (CI) platform built on top of Kubernetes.
https://github.com/owainlewis/frequency
automation continuous-integration kubernetes
Last synced: 3 months ago
JSON representation
A modular Continuous Integration (CI) platform built on top of Kubernetes.
- Host: GitHub
- URL: https://github.com/owainlewis/frequency
- Owner: owainlewis
- Created: 2017-12-31T19:19:25.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-05-05T08:28:32.000Z (about 7 years ago)
- Last Synced: 2025-02-12T15:51:55.587Z (4 months ago)
- Topics: automation, continuous-integration, kubernetes
- Language: Go
- Homepage: https://frequency.io
- Size: 45 MB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Frequency.io
Frequency is a CI/CD system designed to run inside Kubernetes inspired by
CircleCI and Wercker but open source and running atop Kubernetes.Kubernetes offers many advantages for CI/CD such as:
#### Convenience
* Run your CI jobs on any Kubernetes cluster
* Build jobs get executed inside Kubernetes pods for infinite elasticity and scale#### Security
* Run CI on your own private infrastructure
* Utilise all the native Kubernetes tooling and security.## Components
#### API
The API server stores and triggers tasks to be executed.
### Tasks
TODO### Builds
TODO### Projects
TODO### Triggers
TODO#### CLI
The CLI lets you execute CI actions locally.
```yaml
# Simple task that checks out code and runs unit tests
image: golang
workspace: /go/src/github.com/wercker/getting-started-golang
checkout:
url: https://github.com/wercker/getting-started-golang.git
steps:
- go test ./...
- echo $(env)
```Complex example
```yaml
kind: kubernetes.io/Pod
image: golang
workspace: /go/src/github.com/wercker/getting-started-golang
env:
- name: DATABASE_USERNAME
valueFrom:
secretKeyRef:
name: mysql-credentials
key: username
- name: DATABASE_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-credentials
key: password
checkout:
url: https://github.com/wercker/getting-started-golang.git
run:
command:
- bash
- "-exc"
args:
- go test ./...; echo $(pwd); ls -la; echo $(env)
```Run the task against the API server and it will execute a CI execution of the unit tests for this project.
```
fq task create -f examples/yaml/task.yaml
```#### Triggers
TODO explain
#### Events
TODO explain
#### Orchestrator (Choreograph)
This engine is responsible for orchestrating piplines of tasks to be executed.