Merge pull request #592 from aluzzardi/universe-docs

universe docs
This commit is contained in:
Sam Alba 2021-06-09 09:32:58 +02:00 committed by GitHub
commit e2a8607971
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
39 changed files with 1227 additions and 41 deletions

View File

@ -38,7 +38,7 @@ jobs:
- name: Lint - name: Lint
run: | run: |
make shellcheck cuelint check-buildkit-version make shellcheck cuelint check-buildkit-version docslint
- name: Markdown Lint - name: Markdown Lint
uses: nosborn/github-action-markdown-cli@v1.1.1 uses: nosborn/github-action-markdown-cli@v1.1.1

View File

@ -30,7 +30,7 @@ shellcheck:
shellcheck ./tests/*.bats ./tests/*.bash shellcheck ./tests/*.bats ./tests/*.bash
.PHONY: lint .PHONY: lint
lint: shellcheck cuelint golint check-buildkit-version lint: shellcheck cuelint golint check-buildkit-version docslint
.PHONY: check-buildkit-version .PHONY: check-buildkit-version
check-buildkit-version: check-buildkit-version:
@ -51,6 +51,14 @@ install: dagger
go install ./cmd/dagger go install ./cmd/dagger
.PHONY: docs .PHONY: docs
docs: docs: dagger
./cmd/dagger/dagger doc --output ./docs/reference/universe --format md
.PHONY: docslint
docslint: docs
@test -z "$$(git status -s . | grep -e "^ M" | grep docs/reference/universe | cut -d ' ' -f3 | tee /dev/stderr)"
.PHONY: web
web:
yarn --cwd "./website" install yarn --cwd "./website" install
yarn --cwd "./website" start yarn --cwd "./website" start

View File

@ -122,8 +122,21 @@ func FormatValue(val *compiler.Value) string {
return strings.ReplaceAll(valStr, "\n", "\\n") return strings.ReplaceAll(valStr, "\n", "\\n")
} }
// ValueDocString returns the value doc from the comment lines // ValueDocFull returns the full doc of the value
func ValueDocString(val *compiler.Value) string { func ValueDocFull(val *compiler.Value) string {
docs := []string{}
for _, c := range val.Doc() {
docs = append(docs, c.Text())
}
doc := strings.TrimSpace(strings.Join(docs, "\n"))
if len(doc) == 0 {
return "-"
}
return doc
}
// ValueDocOneLine returns the value doc as a single line
func ValueDocOneLine(val *compiler.Value) string {
docs := []string{} docs := []string{}
for _, c := range val.Doc() { for _, c := range val.Doc() {
docs = append(docs, strings.TrimSpace(c.Text())) docs = append(docs, strings.TrimSpace(c.Text()))

View File

@ -8,6 +8,7 @@ import (
"io/fs" "io/fs"
"os" "os"
"path" "path"
"path/filepath"
"strings" "strings"
"text/tabwriter" "text/tabwriter"
"unicode/utf8" "unicode/utf8"
@ -151,7 +152,7 @@ func loadCode(packageName string) (*compiler.Value, error) {
func printValuesText(iw io.Writer, libName string, values []*compiler.Value) { func printValuesText(iw io.Writer, libName string, values []*compiler.Value) {
w := tabwriter.NewWriter(iw, 0, 4, len(textPadding), ' ', 0) w := tabwriter.NewWriter(iw, 0, 4, len(textPadding), ' ', 0)
for _, i := range values { for _, i := range values {
docStr := terminalTrim(common.ValueDocString(i)) docStr := terminalTrim(common.ValueDocOneLine(i))
fmt.Fprintf(w, "\t\t%s\t%s\t%s\n", fmt.Fprintf(w, "\t\t%s\t%s\t%s\n",
formatLabel(libName, i), common.FormatValue(i), docStr) formatLabel(libName, i), common.FormatValue(i), docStr)
} }
@ -164,12 +165,11 @@ func printValuesMarkdown(iw io.Writer, libName string, values []*compiler.Value)
fmt.Fprintf(w, "| Name\t| Type\t| Description \t|\n") fmt.Fprintf(w, "| Name\t| Type\t| Description \t|\n")
fmt.Fprintf(w, "| -------------\t|:-------------:\t|:-------------:\t|\n") fmt.Fprintf(w, "| -------------\t|:-------------:\t|:-------------:\t|\n")
for _, i := range values { for _, i := range values {
fmt.Fprintf(w, "|*%s*\t|``%s``\t|%s\t|\n", fmt.Fprintf(w, "|*%s*\t| `%s`\t|%s\t|\n",
formatLabel(libName, i), formatLabel(libName, i),
mdEscape(common.FormatValue(i)), mdEscape(common.FormatValue(i)),
mdEscape(common.ValueDocString(i))) mdEscape(common.ValueDocOneLine(i)))
} }
fmt.Fprintln(w)
w.Flush() w.Flush()
} }
@ -181,7 +181,7 @@ func valuesToJSON(libName string, values []*compiler.Value) []ValueJSON {
v := ValueJSON{} v := ValueJSON{}
v.Name = formatLabel(libName, i) v.Name = formatLabel(libName, i)
v.Type = common.FormatValue(i) v.Type = common.FormatValue(i)
v.Description = common.ValueDocString(i) v.Description = common.ValueDocOneLine(i)
val = append(val, v) val = append(val, v)
} }
@ -201,18 +201,20 @@ func PrintDoc(ctx context.Context, w io.Writer, packageName string, val *compile
switch format { switch format {
case textFormat: case textFormat:
fmt.Fprintf(w, "Package %s\n", packageName) fmt.Fprintf(w, "Package %s\n", packageName)
fmt.Fprintf(w, "\n%s\n", common.ValueDocString(val)) fmt.Fprintf(w, "\n%s\n", common.ValueDocFull(val))
case markdownFormat: case markdownFormat:
fmt.Fprintf(w, "## Package %s\n", mdEscape(packageName)) fmt.Fprintf(w, "---\nsidebar_label: %s\n---\n\n",
comment := common.ValueDocString(val) filepath.Base(packageName),
)
fmt.Fprintf(w, "# %s\n", mdEscape(packageName))
comment := common.ValueDocFull(val)
if comment == "-" { if comment == "-" {
fmt.Println()
break break
} }
fmt.Fprintf(w, "\n%s\n\n", mdEscape(comment)) fmt.Fprintf(w, "\n%s\n", mdEscape(comment))
case jsonFormat: case jsonFormat:
packageJSON.Name = packageName packageJSON.Name = packageName
comment := common.ValueDocString(val) comment := common.ValueDocFull(val)
if comment != "-" { if comment != "-" {
packageJSON.Description = comment packageJSON.Description = comment
} }
@ -235,18 +237,18 @@ func PrintDoc(ctx context.Context, w io.Writer, packageName string, val *compile
} }
// Field Name + Description // Field Name + Description
comment := common.ValueDocString(v) comment := common.ValueDocOneLine(v)
switch format { switch format {
case textFormat: case textFormat:
fmt.Fprintf(w, "\n%s\n\n%s%s\n", name, textPadding, comment) fmt.Fprintf(w, "\n%s\n\n%s%s\n", name, textPadding, comment)
case markdownFormat: case markdownFormat:
fmt.Fprintf(w, "### %s\n\n", name) fmt.Fprintf(w, "\n## %s\n\n", name)
if comment != "-" { if comment != "-" {
fmt.Fprintf(w, "%s\n\n", mdEscape(comment)) fmt.Fprintf(w, "%s\n\n", mdEscape(comment))
} }
case jsonFormat: case jsonFormat:
fieldJSON.Name = name fieldJSON.Name = name
comment := common.ValueDocString(val) comment := common.ValueDocOneLine(val)
if comment != "-" { if comment != "-" {
fieldJSON.Description = comment fieldJSON.Description = comment
} }
@ -263,9 +265,9 @@ func PrintDoc(ctx context.Context, w io.Writer, packageName string, val *compile
fmt.Fprintf(w, "\n%sInputs:\n", textPadding) fmt.Fprintf(w, "\n%sInputs:\n", textPadding)
printValuesText(w, name, inp) printValuesText(w, name, inp)
case markdownFormat: case markdownFormat:
fmt.Fprintf(w, "#### %s Inputs\n\n", mdEscape(name)) fmt.Fprintf(w, "### %s Inputs\n\n", mdEscape(name))
if len(inp) == 0 { if len(inp) == 0 {
fmt.Fprintf(w, "_No input._\n\n") fmt.Fprintf(w, "_No input._\n")
break break
} }
printValuesMarkdown(w, name, inp) printValuesMarkdown(w, name, inp)
@ -284,9 +286,9 @@ func PrintDoc(ctx context.Context, w io.Writer, packageName string, val *compile
fmt.Fprintf(w, "\n%sOutputs:\n", textPadding) fmt.Fprintf(w, "\n%sOutputs:\n", textPadding)
printValuesText(w, name, out) printValuesText(w, name, out)
case markdownFormat: case markdownFormat:
fmt.Fprintf(w, "#### %s Outputs\n\n", mdEscape(name)) fmt.Fprintf(w, "\n### %s Outputs\n\n", mdEscape(name))
if len(out) == 0 { if len(out) == 0 {
fmt.Fprintf(w, "_No output._\n\n") fmt.Fprintf(w, "_No output._\n")
break break
} }
printValuesMarkdown(w, name, out) printValuesMarkdown(w, name, out)
@ -325,15 +327,9 @@ func walkStdlib(ctx context.Context, output, format string) {
return err return err
} }
f, err := os.Create(filepath)
if err != nil {
return err
}
defer f.Close()
pkg := fmt.Sprintf("dagger.io/%s", p) pkg := fmt.Sprintf("dagger.io/%s", p)
lg.Info().Str("package", pkg).Str("format", format).Msg("generating doc") lg.Info().Str("package", pkg).Str("format", format).Msg("generating doc")
val, err := loadCode(fmt.Sprintf("dagger.io/%s", p)) val, err := loadCode(pkg)
if err != nil { if err != nil {
if strings.Contains(err.Error(), "no CUE files") { if strings.Contains(err.Error(), "no CUE files") {
lg.Warn().Str("package", p).Err(err).Msg("ignoring") lg.Warn().Str("package", p).Err(err).Msg("ignoring")
@ -342,7 +338,13 @@ func walkStdlib(ctx context.Context, output, format string) {
return err return err
} }
PrintDoc(ctx, f, p, val, format) f, err := os.Create(filepath)
if err != nil {
return err
}
defer f.Close()
PrintDoc(ctx, f, pkg, val, format)
return nil return nil
}) })

View File

@ -69,7 +69,7 @@ var listCmd = &cobra.Command{
inp.Path(), inp.Path(),
common.FormatValue(inp), common.FormatValue(inp),
isUserSet(st, inp), isUserSet(st, inp),
common.ValueDocString(inp), common.ValueDocOneLine(inp),
) )
} }

View File

@ -72,7 +72,7 @@ func ListOutputs(ctx context.Context, st *state.State, isTTY bool) {
fmt.Fprintf(w, "%s\t%s\t%s\n", fmt.Fprintf(w, "%s\t%s\t%s\n",
out.Path(), out.Path(),
common.FormatValue(out), common.FormatValue(out),
common.ValueDocString(out), common.ValueDocOneLine(out),
) )
} }

View File

@ -0,0 +1,4 @@
{
"label": "Reference",
"position": 5
}

View File

@ -0,0 +1,3 @@
{
"label": "Universe"
}

View File

@ -0,0 +1,15 @@
---
sidebar_label: alpine
---
# dagger.io/alpine
## #Image
### #Image Inputs
_No input._
### #Image Outputs
_No output._

View File

@ -0,0 +1,37 @@
---
sidebar_label: aws
---
# dagger.io/aws
## #CLI
Re-usable aws-cli component
### #CLI Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*config.region* | `string` |AWS region |
|*config.accessKey* | `dagger.#Secret` |AWS access key |
|*config.secretKey* | `dagger.#Secret` |AWS secret key |
### #CLI Outputs
_No output._
## #Config
Base AWS Config
### #Config Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*region* | `string` |AWS region |
|*accessKey* | `dagger.#Secret` |AWS access key |
|*secretKey* | `dagger.#Secret` |AWS secret key |
### #Config Outputs
_No output._

View File

@ -0,0 +1,26 @@
---
sidebar_label: cloudformation
---
# dagger.io/aws/cloudformation
## #Stack
AWS CloudFormation Stack
### #Stack Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*config.region* | `string` |AWS region |
|*config.accessKey* | `dagger.#Secret` |AWS access key |
|*config.secretKey* | `dagger.#Secret` |AWS secret key |
|*source* | `string` |Source is the Cloudformation template (JSON/YAML string) |
|*stackName* | `string` |Stackname is the cloudformation stack |
|*onFailure* | `*"DO_NOTHING" \| "ROLLBACK" \| "DELETE"` |Behavior when failure to create/update the Stack |
|*timeout* | `*10 \| \>=0 & int` |Timeout for waiting for the stack to be created/updated (in minutes) |
|*neverUpdate* | `*false \| bool` |Never update the stack if already exists |
### #Stack Outputs
_No output._

View File

@ -0,0 +1,23 @@
---
sidebar_label: ecr
---
# dagger.io/aws/ecr
## #Credentials
Credentials retriever for ECR
### #Credentials Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*config.region* | `string` |AWS region |
|*config.accessKey* | `dagger.#Secret` |AWS access key |
|*config.secretKey* | `dagger.#Secret` |AWS secret key |
### #Credentials Outputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*secret* | `string` |- |

View File

@ -0,0 +1,5 @@
---
sidebar_label: ecs
---
# dagger.io/aws/ecs

View File

@ -0,0 +1,25 @@
---
sidebar_label: eks
---
# dagger.io/aws/eks
## #KubeConfig
KubeConfig config outputs a valid kube-auth-config for kubectl client
### #KubeConfig Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*config.region* | `string` |AWS region |
|*config.accessKey* | `dagger.#Secret` |AWS access key |
|*config.secretKey* | `dagger.#Secret` |AWS secret key |
|*clusterName* | `string` |EKS cluster name |
|*version* | `*"v1.19.9" \| string` |Kubectl version |
### #KubeConfig Outputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*kubeconfig* | `string` |kubeconfig is the generated kube configuration file |

View File

@ -0,0 +1,24 @@
---
sidebar_label: elb
---
# dagger.io/aws/elb
## #RandomRulePriority
Returns a non-taken rule priority (randomized)
### #RandomRulePriority Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*config.region* | `string` |AWS region |
|*config.accessKey* | `dagger.#Secret` |AWS access key |
|*config.secretKey* | `dagger.#Secret` |AWS secret key |
|*listenerArn* | `string` |ListenerArn |
### #RandomRulePriority Outputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*priority* | `string` |exported priority |

View File

@ -0,0 +1,66 @@
---
sidebar_label: rds
---
# dagger.io/aws/rds
## #CreateDB
### #CreateDB Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*config.region* | `string` |AWS region |
|*config.accessKey* | `dagger.#Secret` |AWS access key |
|*config.secretKey* | `dagger.#Secret` |AWS secret key |
|*name* | `string` |DB name |
|*dbArn* | `string` |ARN of the database instance |
|*secretArn* | `string` |ARN of the database secret (for connecting via rds api) |
|*dbType* | `string` |- |
### #CreateDB Outputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*out* | `string` |Name of the DB created |
## #CreateUser
### #CreateUser Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*config.region* | `string` |AWS region |
|*config.accessKey* | `dagger.#Secret` |AWS access key |
|*config.secretKey* | `dagger.#Secret` |AWS secret key |
|*username* | `string` |Username |
|*password* | `string` |Password |
|*dbArn* | `string` |ARN of the database instance |
|*secretArn* | `string` |ARN of the database secret (for connecting via rds api) |
|*grantDatabase* | `*"" \| string` |- |
|*dbType* | `string` |- |
### #CreateUser Outputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*out* | `string` |Outputed username |
## #Instance
### #Instance Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*config.region* | `string` |AWS region |
|*config.accessKey* | `dagger.#Secret` |AWS access key |
|*config.secretKey* | `dagger.#Secret` |AWS secret key |
|*dbArn* | `string` |ARN of the database instance |
### #Instance Outputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*hostname* | `_\|_` |DB hostname |
|*port* | `_\|_` |DB port |
|*info* | `_\|_` |- |

View File

@ -0,0 +1,49 @@
---
sidebar_label: s3
---
# dagger.io/aws/s3
## #Put
S3 file or Directory upload
### #Put Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*config.region* | `string` |AWS region |
|*config.accessKey* | `dagger.#Secret` |AWS access key |
|*config.secretKey* | `dagger.#Secret` |AWS secret key |
|*target* | `string` |Target S3 URL (eg. s3://\<bucket-name\>/\<path\>/\<sub-path\>) |
|*contentType* | `*"" \| string` |Object content type |
|*always* | `*true \| bool` |Always write the object to S3 |
### #Put Outputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*url* | `string` |URL of the uploaded S3 object |
## #Sync
S3 Sync
### #Sync Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*config.region* | `string` |AWS region |
|*config.accessKey* | `dagger.#Secret` |AWS access key |
|*config.secretKey* | `dagger.#Secret` |AWS secret key |
|*source* | `dagger.#Artifact` |Source Artifact to upload to S3 |
|*target* | `string` |Target S3 URL (eg. s3://\<bucket-name\>/\<path\>/\<sub-path\>) |
|*delete* | `*false \| bool` |Files that exist in the destination but not in the source are deleted during sync. |
|*contentType* | `*"" \| string` |Object content type |
|*always* | `*true \| bool` |Always write the object to S3 |
### #Sync Outputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*url* | `string` |URL of the uploaded S3 object |

View File

@ -0,0 +1,17 @@
---
sidebar_label: dagger
---
# dagger.io/dagger
## #Secret
Secret value
### #Secret Inputs
_No input._
### #Secret Outputs
_No output._

View File

@ -0,0 +1,161 @@
---
sidebar_label: op
---
# dagger.io/dagger/op
op: low-level operations for Dagger processing pipelines
## #Copy
### #Copy Inputs
_No input._
### #Copy Outputs
_No output._
## #DockerBuild
### #DockerBuild Inputs
_No input._
### #DockerBuild Outputs
_No output._
## #DockerLogin
### #DockerLogin Inputs
_No input._
### #DockerLogin Outputs
_No output._
## #Exec
### #Exec Inputs
_No input._
### #Exec Outputs
_No output._
## #Export
Export a value from fs state to cue
### #Export Inputs
_No input._
### #Export Outputs
_No output._
## #FetchContainer
### #FetchContainer Inputs
_No input._
### #FetchContainer Outputs
_No output._
## #FetchGit
### #FetchGit Inputs
_No input._
### #FetchGit Outputs
_No output._
## #Load
### #Load Inputs
_No input._
### #Load Outputs
_No output._
## #Local
### #Local Inputs
_No input._
### #Local Outputs
_No output._
## #Mkdir
### #Mkdir Inputs
_No input._
### #Mkdir Outputs
_No output._
## #Op
One operation in a pipeline
### #Op Inputs
_No input._
### #Op Outputs
_No output._
## #PushContainer
### #PushContainer Inputs
_No input._
### #PushContainer Outputs
_No output._
## #Subdir
### #Subdir Inputs
_No input._
### #Subdir Outputs
_No output._
## #Workdir
### #Workdir Inputs
_No input._
### #Workdir Outputs
_No output._
## #WriteFile
### #WriteFile Inputs
_No input._
### #WriteFile Outputs
_No output._

View File

@ -0,0 +1,91 @@
---
sidebar_label: docker
---
# dagger.io/docker
## #Build
Build a Docker image from source, using included Dockerfile
### #Build Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*source* | `dagger.#Artifact` |- |
### #Build Outputs
_No output._
## #Client
A container image to run the Docker client
### #Client Inputs
_No input._
### #Client Outputs
_No output._
## #ImageFromDockerfile
Build a Docker image from the provided Dockerfile contents
### #ImageFromDockerfile Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*dockerfile* | `string` |- |
|*context* | `dagger.#Artifact` |- |
### #ImageFromDockerfile Outputs
_No output._
## #Pull
Pull a docker container
### #Pull Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*from* | `string` |Remote ref (example: "index.docker.io/alpine:latest") |
### #Pull Outputs
_No output._
## #Push
Push a docker image
### #Push Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*ref* | `string` |Remote ref (example: "index.docker.io/alpine:latest") |
|*source* | `dagger.#Artifact` |Image |
### #Push Outputs
_No output._
## #Run
### #Run Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*ssh.host* | `string` |ssh host |
|*ssh.user* | `string` |ssh user |
|*ssh.port* | `*22 \| int` |ssh port |
|*ssh.key* | `dagger.#Secret` |private key |
|*ref* | `string` |Image reference (e.g: nginx:alpine) |
### #Run Outputs
_No output._

View File

@ -0,0 +1,84 @@
---
sidebar_label: file
---
# dagger.io/file
DEPRECATED: see dagger.io/os
## #Append
### #Append Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*filename* | `string` |- |
|*permissions* | `*0o644 \| int` |- |
|*contents* | `(string\|bytes)` |- |
|*from* | `dagger.#Artifact` |- |
### #Append Outputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*orig* | `string` |- |
## #Create
### #Create Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*filename* | `string` |- |
|*permissions* | `*0o644 \| int` |- |
|*contents* | `(string\|bytes)` |- |
### #Create Outputs
_No output._
## #Glob
### #Glob Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*glob* | `string` |- |
|*from* | `dagger.#Artifact` |- |
### #Glob Outputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*filenames* | `_\|_` |trim suffix because ls always ends with newline |
|*files* | `string` |- |
## #Read
### #Read Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*filename* | `string` |- |
|*from* | `dagger.#Artifact` |- |
### #Read Outputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*contents* | `string` |- |
## #read
### #read Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*path* | `string` |- |
|*from* | `dagger.#Artifact` |- |
### #read Outputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*data* | `string` |- |

View File

@ -0,0 +1,37 @@
---
sidebar_label: gcp
---
# dagger.io/gcp
## #Config
Base Google Cloud Config
### #Config Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*region* | `string` |GCP region |
|*project* | `string` |GCP project |
|*serviceKey* | `dagger.#Secret` |GCP service key |
### #Config Outputs
_No output._
## #GCloud
Re-usable gcloud component
### #GCloud Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*config.region* | `string` |GCP region |
|*config.project* | `string` |GCP project |
|*config.serviceKey* | `dagger.#Secret` |GCP service key |
### #GCloud Outputs
_No output._

View File

@ -0,0 +1,23 @@
---
sidebar_label: gcr
---
# dagger.io/gcp/gcr
## #Credentials
Credentials retriever for GCR
### #Credentials Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*config.region* | `string` |GCP region |
|*config.project* | `string` |GCP project |
|*config.serviceKey* | `dagger.#Secret` |GCP service key |
### #Credentials Outputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*secret* | `string` |- |

View File

@ -0,0 +1,25 @@
---
sidebar_label: gke
---
# dagger.io/gcp/gke
## #KubeConfig
KubeConfig config outputs a valid kube-auth-config for kubectl client
### #KubeConfig Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*config.region* | `string` |GCP region |
|*config.project* | `string` |GCP project |
|*config.serviceKey* | `dagger.#Secret` |GCP service key |
|*clusterName* | `string` |GKE cluster name |
|*version* | `*"v1.19.9" \| string` |Kubectl version |
### #KubeConfig Outputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*kubeconfig* | `string` |kubeconfig is the generated kube configuration file |

View File

@ -0,0 +1,53 @@
---
sidebar_label: git
---
# dagger.io/git
## #CurrentBranch
Get the name of the current checked out branch or tag
### #CurrentBranch Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*repository* | `dagger.#Artifact` |- |
### #CurrentBranch Outputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*name* | `string` |- |
## #Repository
A git repository
### #Repository Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*remote* | `string` |Git remote. Example: `"https://github.com/dagger/dagger"` |
|*ref* | `string` |Git ref: can be a commit, tag or branch. Example: "main" |
|*subdir* | `*null \| string` |(optional) Subdirectory |
### #Repository Outputs
_No output._
## #Tags
List tags of a repository
### #Tags Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*repository* | `dagger.#Artifact` |- |
### #Tags Outputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*tags* | `[]` |- |

View File

@ -0,0 +1,70 @@
---
sidebar_label: go
---
# dagger.io/go
## #Build
### #Build Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*version* | `*"1.16" \| string` |Go version to use |
|*source* | `dagger.#Artifact` |Source Directory to build |
|*packages* | `*"." \| string` |Packages to build |
|*arch* | `*"amd64" \| string` |Target architecture |
|*os* | `*"linux" \| string` |Target OS |
|*tags* | `*"" \| string` |Build tags to use for building |
|*ldflags* | `*"" \| string` |LDFLAGS to use for linking |
### #Build Outputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*output* | `string` |Specify the targeted binary name |
## #Container
A standalone go environment
### #Container Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*version* | `*"1.16" \| string` |Go version to use |
|*source* | `dagger.#Artifact` |- |
|*image.from* | `"docker.io/golang:1.16-alpine"` |Remote ref (example: "index.docker.io/alpine:latest") |
### #Container Outputs
_No output._
## #Go
### #Go Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*version* | `*"1.16" \| string` |Go version to use |
|*args* | `[]` |Arguments to the Go binary |
|*source* | `dagger.#Artifact` |Source Directory to build |
### #Go Outputs
_No output._
## #Test
### #Test Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*version* | `*"1.16" \| string` |Go version to use |
|*source* | `dagger.#Artifact` |Source Directory to build |
|*packages* | `*"." \| string` |Packages to test |
|*args* | `["test", "-v", *"." \| string]` |Arguments to the Go binary |
### #Test Outputs
_No output._

View File

@ -0,0 +1,59 @@
---
sidebar_label: io
---
# dagger.io/io
## #Dir
Standard interface for directory operations in cue
### #Dir Inputs
_No input._
### #Dir Outputs
_No output._
## #File
Standard interface for file operations in cue
### #File Inputs
_No input._
### #File Outputs
_No output._
## #ReadWriter
### #ReadWriter Inputs
_No input._
### #ReadWriter Outputs
_No output._
## #Reader
### #Reader Inputs
_No input._
### #Reader Outputs
_No output._
## #Writer
### #Writer Inputs
_No input._
### #Writer Outputs
_No output._

View File

@ -0,0 +1,30 @@
---
sidebar_label: yarn
---
# dagger.io/js/yarn
Yarn is a package manager for Javascript applications
## #Package
A Yarn package.
### #Package Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*source* | `dagger.#Artifact` |Application source code |
|*package* | `struct` |Extra alpine packages to install |
|*cwd* | `*"." \| string` |working directory to use |
|*env* | `struct` |Environment variables |
|*writeEnvFile* | `*"" \| string` |Write the contents of `environment` to this file, in the "envfile" format. |
|*buildDir* | `*"build" \| string` |Read build output from this directory (path must be relative to working directory). |
|*script* | `*"build" \| string` |Run this yarn script |
|*args* | `*[] \| []` |Optional arguments for the script |
### #Package Outputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*build* | `struct` |- |

View File

@ -0,0 +1,31 @@
---
sidebar_label: kubernetes
---
# dagger.io/kubernetes
## #Kubectl
### #Kubectl Inputs
_No input._
### #Kubectl Outputs
_No output._
## #Resources
Apply Kubernetes resources
### #Resources Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*namespace* | `*"default" \| string` |Kubernetes Namespace to deploy to |
|*version* | `*"v1.19.9" \| string` |Version of kubectl client |
|*kubeconfig* | `dagger.#Secret` |Kube config file |
### #Resources Outputs
_No output._

View File

@ -0,0 +1,27 @@
---
sidebar_label: helm
---
# dagger.io/kubernetes/helm
## #Chart
Install a Helm chart
### #Chart Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*name* | `string` |Helm deployment name |
|*namespace* | `string` |Kubernetes Namespace to deploy to |
|*action* | `*"installOrUpgrade" \| "install" \| "upgrade"` |Helm action to apply |
|*timeout* | `*"5m" \| string` |time to wait for any individual Kubernetes operation (like Jobs for hooks) |
|*wait* | `*true \| bool` |if set, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment, StatefulSet, or ReplicaSet are in a ready state before marking the release as successful. It will wait for as long as timeout |
|*atomic* | `*true \| bool` |if set, installation process purges chart on fail. The wait option will be set automatically if atomic is used |
|*kubeconfig* | `dagger.#Secret` |Kube config file |
|*version* | `*"3.5.2" \| string` |Helm version |
|*kubectlVersion* | `*"v1.19.9" \| string` |Kubectl version |
### #Chart Outputs
_No output._

View File

@ -0,0 +1,33 @@
---
sidebar_label: kustomize
---
# dagger.io/kubernetes/kustomize
## #Kustomization
### #Kustomization Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*version* | `*"v3.8.7" \| string` |Kustomize binary version |
### #Kustomization Outputs
_No output._
## #Kustomize
Apply a Kubernetes Kustomize folder
### #Kustomize Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*source* | `dagger.#Artifact` |Kubernetes source |
|*kustomization* | `string` |Optional Kustomization file |
|*version* | `*"v3.8.7" \| string` |Kustomize binary version |
### #Kustomize Outputs
_No output._

View File

@ -0,0 +1,42 @@
---
sidebar_label: netlify
---
# dagger.io/netlify
## #Account
A Netlify account
### #Account Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*name* | `*"" \| string` |Use this Netlify account name (also referred to as "team" in the Netlify docs) |
|*token* | `dagger.#Secret` |Netlify authentication token |
### #Account Outputs
_No output._
## #Site
A Netlify site
### #Site Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*account.name* | `*"" \| string` |Use this Netlify account name (also referred to as "team" in the Netlify docs) |
|*account.token* | `dagger.#Secret` |Netlify authentication token |
|*contents* | `dagger.#Artifact` |Contents of the application to deploy |
|*name* | `string` |Deploy to this Netlify site |
|*create* | `*true \| bool` |Create the Netlify site if it doesn't exist? |
### #Site Outputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*url* | `string` |Website url |
|*deployUrl* | `string` |Unique Deploy URL |
|*logsUrl* | `string` |Logs URL for this deployment |

View File

@ -0,0 +1,49 @@
---
sidebar_label: os
---
# dagger.io/os
## #Container
Built-in container implementation, using buildkit
### #Container Inputs
_No input._
### #Container Outputs
_No output._
## #Dir
### #Dir Inputs
_No input._
### #Dir Outputs
_No output._
## #File
Built-in file implementation, using buildkit
### #File Inputs
_No input._
### #File Outputs
_No output._
## #ReadDir
### #ReadDir Inputs
_No input._
### #ReadDir Outputs
_No output._

View File

@ -0,0 +1,33 @@
---
sidebar_label: random
---
# dagger.io/random
Random generation utilities.
Example:
```cue
str: random.#String & {
seed: "str"
length: 10
}
```
## #String
Generate a random string
### #String Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*seed* | `string` |Seed of the random string to generate. When using the same `seed`, the same random string will be generated because of caching. |
|*length* | `*12 \| number` |length of the string |
### #String Outputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*out* | `string` |generated random string |

View File

@ -0,0 +1,20 @@
---
sidebar_label: terraform
---
# dagger.io/terraform
## #Configuration
### #Configuration Inputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*version* | `*"latest" \| string` |- |
|*source* | `dagger.#Artifact` |- |
### #Configuration Outputs
| Name | Type | Description |
| ------------- |:-------------: |:-------------: |
|*output* | `struct` |- |

View File

@ -3,11 +3,9 @@ package op
// One operation in a pipeline // One operation in a pipeline
// //
// #Op does not current enforce the op spec at full resolution, to avoid // FIXME: #Op does not current enforce the op spec at full resolution, to avoid
// triggering performance issues. See // FIXME: triggering performance issues. See https://github.com/dagger/dagger/issues/445
// https://github.com/dagger/dagger/issues/445 // FIXME: To enforce the full #Op spec (see op_fullop.cue), run with "-t fullop"
//
// To enforce the full #Op spec (see op_fullop.cue), run with "-t fullop"
#Op: { #Op: {
do: string do: string
... ...

View File

@ -10,7 +10,7 @@ import (
#Repository: { #Repository: {
// Git remote. // Git remote.
// Example: "https://github.com/dagger/dagger") // Example: `"https://github.com/dagger/dagger"`
remote: string @dagger(input) remote: string @dagger(input)
// Git ref: can be a commit, tag or branch. // Git ref: can be a commit, tag or branch.

View File

@ -1,5 +1,4 @@
// Yarn is a package manager for Javascript applications // Yarn is a package manager for Javascript applications
// https://yarnpkg.com
package yarn package yarn
import ( import (

View File

@ -1,12 +1,16 @@
// Random generation utilities. // Random generation utilities.
// //
// Example: // Example:
// ``` //
// ```cue
// str: random.#String & { // str: random.#String & {
// seed: "str" // seed: "str"
// length: 10 // length: 10
// } // }
// ``` // ```
//
//
//
package random package random
import ( import (