modulepackage
0.0.0-20220724225147-70db0aba4a72
Repository: https://github.com/frantjc/sequence.git
Documentation: pkg.go.dev
# README
sequence
Run sequential containerized workloads on the same volume using tools from each container along the way.
summary
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:
- Borrow GitHub Action's Workflow syntax and expand upon it (e.g. by allowing each step to designate what image it should run inside). This should allow Sequence to utilize useful GitHub Actions, which are GitHub repositories which can be concisely referenced to execute complicated tasks (e.g. downloading and installing Go)
- Use a pluggable container
Runtime
whose default implementation is Docker to run each containerized task. - Take advantage of Concourse Resources to additionally expand the functionality of what a single step can do
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 CI -
sqncd
RPC daemon that can be connected to remotely to run workloads
developing
make
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 compressingsqnc-shim
on generateprotoc
is required if modifying proto - version 3.19.x is testedprotoc-gen-go
- version 1.26.x is tested- (hopefully) temporarily,
protoc-gen-sqnc-go
The latter two of these can be installed by:
make tools
test
Create a .env
that looks like .env.example
but with a real GitHub token, and:
make test # go test ./...
lint
Format .go
code.
make fmt # go fmt ./...
make lint # golangci-lint run
generate
Generate .go
code from .proto
code.
make generate # buf generate .
# Functions
No description provided by the author
NewClient returns a new Client.
No description provided by the author
No description provided by the author
No description provided by the author
NewStepFromFile parses and returns a Step from the given file name.
NewStepFromReader parses and returns a Step from the given reader e.g.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
NewWorkflowServiceClient constructs a client for the sequence.WorkflowService service.
NewWorkflowServiceHandler builds an HTTP handler from the service implementation.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Constants
ActionMetadataKey is the key in a Step's Step_Out.Metadata map that holds the json encoding of the action that the step cloned.
No description provided by the author
No description provided by the author
No description provided by the author
WorkflowServiceName is the fully-qualified name of the WorkflowService service.
# Variables
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
New is an alias to NewClient.
No description provided by the author
No description provided by the author
No description provided by the author
# Structs
Client is a wrapper around each of sequence's rpc clients.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
UnimplementedWorkflowServiceHandler returns CodeUnimplemented from all methods.
No description provided by the author
# Interfaces
No description provided by the author
WorkflowServiceClient is a client for the sequence.WorkflowService service.
WorkflowServiceHandler is an implementation of the sequence.WorkflowService service.
# Type aliases
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author