Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sagikazarmark/goci
High-level CI config DSL written in Go based on Dagger
https://github.com/sagikazarmark/goci
Last synced: 23 days ago
JSON representation
High-level CI config DSL written in Go based on Dagger
- Host: GitHub
- URL: https://github.com/sagikazarmark/goci
- Owner: sagikazarmark
- License: mit
- Created: 2023-01-13T00:20:02.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-05-01T15:08:01.000Z (over 1 year ago)
- Last Synced: 2024-05-02T05:04:03.330Z (7 months ago)
- Language: Go
- Size: 63.5 KB
- Stars: 27
- Watchers: 5
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Go CI
![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/sagikazarmark/goci/ci.yaml?style=flat-square)
![Go Version](https://img.shields.io/badge/go%20version-%3E=1.19-61CFDD.svg?style=flat-square)
[![go.dev reference](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white&style=flat-square)](https://pkg.go.dev/mod/github.com/sagikazarmark/goci)
[![built with nix](https://img.shields.io/badge/builtwith-nix-7d81f7?style=flat-square)](https://builtwithnix.org)**High-level CI config DSL written in Go based on [Dagger](https://dagger.io/).**
**⚠️ This tool is still under heavy development! Things may change. ⚠️**
## Features
- [x] Go test
- [x] GolangCI Lint
- [x] CI detection
- [ ] CodeCov upload
- [ ] Build pipelines
- [ ] Build matrix
- [ ] Pipelines
- [ ] Step dependencies## Goals
- Create a high-level interface for building a CI based on Dagger
- Hide low-level (Dagger) details as much as possible## Usage
Install the library:
```shell
go get github.com/sagikazarmark/goci
```Create CLI tool:
```go
package mainfunc main() {
client, err := dagger.Connect(ctx)
if err != nil {
return panic(err)
}
defer client.Close()c := golang.Test(client)
output, err := container.Stdout(ctx)
if err != nil {
return panic(err)
}fmt.Print(output)
}
```## License
The project is licensed under the [MIT License](LICENSE).