MCPcopy Create free account
hub / github.com/shipwright-io/build

github.com/shipwright-io/build

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.21.4 ↗ · + Follow · compare 16 versions
1,323 symbols 4,631 edges 257 files ⚖ custom 612 documented · 46% updated 6d agov0.21.0 · 2026-09-05★ 821141 open issues

Browse by type

Functions 1,213 Types & classes 110
What it actually does AI analysis from the code graph — generated when you open this
loading…
README
<img alt="Work in Progress" src="https://img.shields.io/badge/Status-Work%20in%20Progress-informational">
<a alt="GoReport" href="https://goreportcard.com/report/github.com/shipwright-io/build"><img src="https://goreportcard.com/badge/github.com/shipwright-io/build"></a>
<a href="https://github.com/shipwright-io/build/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/github/license/shipwright-io/build"></a>
<a href="https://pkg.go.dev/mod/github.com/shipwright-io/build"><img src="https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white"></a>
<a href="https://bestpractices.dev/projects/5315"><img src="https://bestpractices.dev/projects/5315/badge" alt="openssf best practices badge"></a>
<img src="https://api.scorecard.dev/projects/github.com/shipwright-io/build/badge" alt="openssf scorecard"/>

Shows the Shipwright logo, which is a heptagon containing a stylized ship next to the word shipwright.

Shipwright is an extensible framework for building container images on Kubernetes.

Why?

With Shipwright, developers get a simplified approach for building container images, by defining a minimal YAML that does not require any previous knowledge of containers or container tooling. All you need is your source code in git and access to a container registry.

Shipwright supports any tool that can build container images in Kubernetes clusters, such as:

Try It!

  • We assume you already have a Kubernetes cluster (v1.34+). If you don't, you can use KinD, which you can install by running ./hack/install-kind.sh.

  • We also require a Tekton installation (v1.6+). To install the latest LTS release, run:

bash kubectl apply --filename https://infra.tekton.dev/tekton-releases/pipeline/previous/v1.15.1/release.yaml

If you are using OpenShift cluster refer Running on OpenShift for some more configurations.

  • Install the Shipwright deployment. To install the latest version, run:

bash kubectl apply --filename https://github.com/shipwright-io/build/releases/download/latest/release.yaml --server-side curl --silent --location https://raw.githubusercontent.com/shipwright-io/build/v0.20.14/hack/setup-webhook-cert.sh | bash curl --silent --location https://raw.githubusercontent.com/shipwright-io/build/v0.20.14/hack/storage-version-migration.sh | bash

To install the latest nightly release, run:

bash kubectl apply --filename "https://github.com/shipwright-io/build/releases/download/nightly/nightly-$(curl --silent --location https://github.com/shipwright-io/build/releases/download/nightly/latest.txt).yaml" --server-side curl --silent --location https://raw.githubusercontent.com/shipwright-io/build/main/hack/setup-webhook-cert.sh | bash curl --silent --location https://raw.githubusercontent.com/shipwright-io/build/main/hack/storage-version-migration.sh | bash

  • Install the Shipwright strategies. To install the latest version, run:

bash kubectl apply --filename https://github.com/shipwright-io/build/releases/download/latest/sample-strategies.yaml --server-side

To install the latest nightly release, run:

bash kubectl apply --filename "https://github.com/shipwright-io/build/releases/download/nightly/nightly-$(curl --silent --location https://github.com/shipwright-io/build/releases/download/nightly/latest.txt)-sample-strategies.yaml" --server-side

  • Generate a secret to access your container registry, such as one on Docker Hub or Quay.io:

bash REGISTRY_SERVER=https://index.docker.io/v1/ REGISTRY_USER=<your_registry_user> REGISTRY_PASSWORD=<your_registry_password> kubectl create secret docker-registry push-secret \ --docker-server=$REGISTRY_SERVER \ --docker-username=$REGISTRY_USER \ --docker-password=$REGISTRY_PASSWORD \ --docker-email=<your_email>

  • Create a Build object, replacing <REGISTRY_ORG> with the registry username your push-secret secret have access to:

bash REGISTRY_ORG=<your_registry_org> cat <<EOF | kubectl apply -f - apiVersion: shipwright.io/v1beta1 kind: Build metadata: name: buildpack-nodejs-build spec: source: type: Git git: url: https://github.com/shipwright-io/sample-nodejs contextDir: source-build strategy: name: buildpacks-v3 kind: ClusterBuildStrategy output: image: docker.io/${REGISTRY_ORG}/sample-nodejs:latest pushSecret: push-secret EOF

To view the Build which you just created:

```bash $ kubectl get builds

NAME REGISTERED REASON BUILDSTRATEGYKIND BUILDSTRATEGYNAME CREATIONTIME buildpack-nodejs-build True Succeeded ClusterBuildStrategy buildpacks-v3 68s ```

  • Submit your BuildRun:

bash cat <<EOF | kubectl create -f - apiVersion: shipwright.io/v1beta1 kind: BuildRun metadata: generateName: buildpack-nodejs-buildrun- spec: build: name: buildpack-nodejs-build EOF

  • Wait until your BuildRun is completed and then you can view it as follows:

```bash $ kubectl get buildruns

NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME buildpack-nodejs-buildrun-xyzds True Succeeded 69s 2s ```

or

bash kubectl get buildrun --output name | xargs kubectl wait --for=condition=Succeeded --timeout=180s

  • After your BuildRun is completed, check your container registry, you will find the new generated image uploaded there.

Running on OpenShift

If you are running on OpenShift and if the pipeline service account isn't already created, here are the steps to create the same:

oc create serviceaccount pipeline
oc adm policy add-scc-to-user privileged -z pipeline
oc adm policy add-role-to-user edit -z pipeline

Please tell us more!

Depending on your source code, you might want to build it differently with Shipwright.

To find out more on what's the best strategy or what else can Shipwright do for you, please visit our tutorial!

More information

Read the Docs

Version Docs Examples
HEAD Docs @ HEAD Examples @ HEAD
v0.21.3 Docs @ v0.21.3 Examples @ v0.21.3
v0.21.2 Docs @ v0.21.2 Examples @ v0.21.2
v0.21.1 Docs @ v0.21.1 Examples @ v0.21.1
v0.21.0 Docs @ v0.21.0 Examples @ v0.21.0
v0.20.14 Docs @ v0.20.14 Examples @ v0.20.14
v0.20.13 Docs @ v0.20.13 Examples @ v0.20.13
v0.20.12 Docs @ v0.20.12 Examples @ v0.20.12
v0.20.11 Docs @ v0.20.11 Examples @ v0.20.11
v0.20.10 Docs @ v0.20.10 Examples @ v0.20.10
v0.20.9 Docs @ v0.20.9 Examples @ v0.20.9
v0.20.8 Docs @ v0.20.8 Examples @ v0.20.8
v0.20.7 Docs @ v0.20.7 Examples @ v0.20.7
v0.20.6 Docs @ v0.20.6 Examples @ v0.20.6
v0.20.5 Docs @ v0.20.5 Examples @ v0.20.5
v0.20.4 Docs @ v0.20.4 Examples @ v0.20.4
v0.20.3 Docs @ v0.20.3 Examples @ v0.20.3
v0.20.2 Docs @ v0.20.2 Examples @ v0.20.2
v0.20.1 Docs @ v0.20.1 Examples @ v0.20.1
v0.20.0 Docs @ v0.20.0 Examples @ v0.20.0
v0.19.8 Docs @ v0.19.8 Examples @ v0.19.8
v0.19.7 Docs @ v0.19.7 Examples @ v0.19.7
v0.19.6 Docs @ v0.19.6 Examples @ v0.19.6
v0.19.5 Docs @ v0.19.5 Examples @ v0.19.5
v0.19.4 Docs @ v0.19.4 Examples @ v0.19.4
v0.19.3 Docs @ v0.19.3 Examples @ v0.19.3
v0.19.2 Docs @ v0.19.2 Examples @ v0.19.2
v0.19.1 Docs @ v0.19.1 Examples @ v0.19.1
v0.19.0 Docs @ v0.19.0 Examples @ v0.19.0
v0.18.4 [Docs @ v0.18.4](https://github.com/shipwright-io/

Extension points exported contracts — how you extend this code

browse all types & interfaces →

Core symbols most depended-on inside this repo

browse all functions →

Shape

Method 716
Function 497
Struct 91
Interface 9
FuncType 6
TypeAlias 4

Languages

Go100%

Modules by API surface

pkg/controller/fakes/manager.go110 symbols
pkg/controller/fakes/client.go84 symbols
test/v1beta1_samples/catalog.go65 symbols
test/v1alpha1_samples/catalog.go58 symbols
test/e2e/v1beta1/common_suite_test.go48 symbols
test/e2e/v1alpha1/common_suite_test.go46 symbols
pkg/reconciler/buildrun/resources/resource_builders.go41 symbols
pkg/reconciler/buildrun/imagebuildrunner.go38 symbols
pkg/controller/fakes/status_writer.go27 symbols
pkg/git/error_parser.go26 symbols
pkg/client/informers/externalversions/factory.go20 symbols
pkg/reconciler/buildrun/pipelinerun_runner.go19 symbols

Dependencies from manifests, versioned

cel.dev/exprv0.25.3 · 1×
dario.cat/mergov1.0.2 · 1×
github.com/ProtonMail/go-cryptov1.1.6 · 1×
github.com/antlr4-go/antlr/v4v4.13.1 · 1×
github.com/beorn7/perksv1.0.1 · 1×
github.com/cyphar/filepath-securejoinv0.6.1 · 1×
github.com/davecgh/go-spewv1.1.2-0.20180830191 · 1×

For agents

$ claude mcp add build \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page