Categorygithub.com/frantjc/sequence
modulepackage
0.0.0-20220724225147-70db0aba4a72
Repository: https://github.com/frantjc/sequence.git
Documentation: pkg.go.dev

# README

sequence

push

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 tested
  • golang is required - version 1.18.x or above is required for generics
  • docker is required - version 20.10.x is tested
  • buf is required if modifying proto - version 1.4.x is tested
  • upx is required for compressing sqnc-shim on generate
  • protoc is required if modifying proto - version 3.19.x is tested

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 .

# Packages

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

# 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