Run sequential containerized workloads on the same volume using tools from each container along the way.
Sequence is, first and foremost, a library for running sequential containerized workloads on the same volume to produce some result. To achieve this, it builds upon some existing technologies:
Runtime
whose default implementation is Docker to run each containerized task.Sequence aims to have tools built from this library to unify the development and continuous integration (CI) experiences:
sqnctl
CLI to run workflows against local changes before pushing them to be executed by CIsqncd
RPC daemon that can be connected to remotely to run workloadsmake
is required - version 3.81 is testedgolang
is required - version 1.18.x or above is required for genericsdocker
is required - version 20.10.x is testedbuf
is required if modifying proto - version 1.4.x is testedupx
is required for compressing sqnc-shim
on generateprotoc
is required if modifying proto - version 3.19.x is tested
protoc-gen-go
- version 1.26.x is testedprotoc-gen-sqnc-go
The latter two of these can be installed by:
make tools
Create a .env
that looks like .env.example
but with a real GitHub token, and:
make test # go test ./...
Format .go
code.
make fmt # go fmt ./...
make lint # golangci-lint run
Generate .go
code from .proto
code.
make generate # buf generate .