Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ArtifactDownload = Manifest{ Action: sdk.Action{ Name: sdk.ArtifactDownload, Description: "This action can be used to retrieve an artifact previously uploaded by an Artifact Upload.", Parameters: []sdk.Parameter{ { Name: "path", Description: "Path where artifacts will be downloaded.", Type: sdk.StringParameter, }, { Name: "tag", Description: "Artifact are uploaded with a tag, generally {{.cds.version}}.", Type: sdk.StringParameter, Value: "{{.cds.version}}", }, { Name: "pattern", Type: sdk.StringParameter, Description: "(optional) Empty: download all files. Otherwise, enter regexp pattern to choose file: (fileA|fileB).", Value: "", Advanced: true, }, }, }, Example: exportentities.PipelineV1{ Version: exportentities.PipelineVersion1, Name: "Pipeline1", Stages: []string{"Stage1"}, Jobs: []exportentities.Job{{ Name: "Job1", Stage: "Stage1", Steps: []exportentities.Step{ { ArtifactDownload: &exportentities.StepArtifactDownload{ Path: "{{.cds.workspace}}", Pattern: "*.tag.gz", Tag: "{{.cds.version}}", }, }, }, }}, }, }
ArtifactDownload action definition.
View Source
var ArtifactUpload = Manifest{ Action: sdk.Action{ Name: sdk.ArtifactUpload, Description: "This action can be used to upload artifacts in CDS. This is the recommended way to share files between pipelines or stages.", Parameters: []sdk.Parameter{ { Name: "path", Type: sdk.StringParameter, Description: "Path of file to upload, example: ./src/yourFile.json.", }, { Name: "tag", Type: sdk.StringParameter, Description: "Artifact will be uploaded with a tag, generally {{.cds.version}}.", Value: "{{.cds.version}}", }, { Name: "destination", Description: "(optional) Destination of this artifact. Use the name of integration attached on your project.", Value: "", Type: sdk.StringParameter, Advanced: true, }, }, }, Example: exportentities.PipelineV1{ Version: exportentities.PipelineVersion1, Name: "Pipeline1", Stages: []string{"Stage1"}, Jobs: []exportentities.Job{{ Name: "Job1", Stage: "Stage1", Steps: []exportentities.Step{ { ArtifactUpload: &exportentities.StepArtifactUpload{ Path: "{{.cds.workspace}}/myFile", Tag: "{{.cds.version}}", }, }, }, }}, }, }
ArtifactUpload action definition.
View Source
var CheckoutApplication = Manifest{ Action: sdk.Action{ Name: sdk.CheckoutApplicationAction, Description: `CDS Builtin Action. Checkout a repository into a new directory. This action use the configuration from application vcs strategy to git clone the repository. The clone will be done with a depth of 50 and with submodules. If you want to modify theses options, you have to use gitClone action. `, Parameters: []sdk.Parameter{ { Name: "directory", Description: "The name of a directory to clone into.", Value: "{{.cds.workspace}}", Type: sdk.StringParameter, }, }, Requirements: []sdk.Requirement{ { Name: "git", Type: sdk.BinaryRequirement, Value: "git", }, }, }, Example: exportentities.PipelineV1{ Version: exportentities.PipelineVersion1, Name: "Pipeline1", Stages: []string{"Stage1"}, Jobs: []exportentities.Job{{ Name: "Job1", Stage: "Stage1", Steps: []exportentities.Step{ { Checkout: &checkoutExample, }, }, }}, }, }
CheckoutApplication action definition.
View Source
var Coverage = Manifest{ Action: sdk.Action{ Name: sdk.CoverageAction, Description: `CDS Builtin Action. Upload you coverage file to CDS as a coverage run result. `, Parameters: []sdk.Parameter{ { Name: "path", Description: `Path of the coverage report file.`, Type: sdk.StringParameter, }, }, }, Example: exportentities.PipelineV1{ Version: exportentities.PipelineVersion1, Name: "Pipeline1", Stages: []string{"Stage1"}, Jobs: []exportentities.Job{{ Name: "Job1", Stage: "Stage1", Steps: []exportentities.Step{ { Coverage: &exportentities.StepCoverage{ Path: "./coverage.xml", }, }, }, }}, }, }
Coverage action definition.
View Source
var DeployApplication = Manifest{ Action: sdk.Action{ Name: sdk.DeployApplicationAction, Description: `Deploy an application, useful only if you have a Deployment Plaftorm associated to your current application.`, }, Example: exportentities.PipelineV1{ Version: exportentities.PipelineVersion1, Name: "Pipeline1", Stages: []string{"Stage1"}, Jobs: []exportentities.Job{{ Name: "Job1", Stage: "Stage1", Steps: []exportentities.Step{ { Deploy: &deployExample, }, }, }}, }, }
DeployApplication action definition.
View Source
var GitClone = Manifest{ Action: sdk.Action{ Name: sdk.GitCloneAction, Description: "Clone a repository into a new directory.", Parameters: []sdk.Parameter{ { Name: "url", Description: `URL must contain information about the transport protocol, the address of the remote server, and the path to the repository. If your application is linked to a repository, you can use {{.git.url}} (clone over ssh) or {{.git.http_url}} (clone over https).`, Value: "{{.git.url}}", Type: sdk.StringParameter, }, { Name: "privateKey", Value: "", Description: `(optional) Set the private key to be able to git clone from ssh. You can create an application key named 'app-key' and use it in this action. The public key have to be granted on your repository.`, Type: sdk.KeySSHParameter, }, { Name: "user", Description: "(optional) Set the user to be able to git clone from https with authentication.", Type: sdk.StringParameter, }, { Name: "password", Description: "(optional) Set the password to be able to git clone from https with authentication.", Type: sdk.StringParameter, }, { Name: "branch", Description: "(optional) Instead of pointing the newly created HEAD to the branch pointed to by the cloned repository’s HEAD, point to {{.git.branch}} branch instead.", Value: "{{.git.branch}}", Type: sdk.StringParameter, }, { Name: "commit", Description: "(optional) Set the current branch head (HEAD) to the commit.", Value: "{{.git.hash}}", Type: sdk.StringParameter, }, { Name: "directory", Description: "(optional) The name of a directory to clone into.", Value: "{{.cds.workspace}}", Type: sdk.StringParameter, }, { Name: "depth", Description: "(optional) Clone with a depth of 50 by default. You can remove --depth with the value 'false'.", Value: "", Type: sdk.StringParameter, Advanced: true, }, { Name: "submodules", Description: "(optional) Submodules are cloned by default, you can set 'false' to avoid this.", Value: "true", Type: sdk.BooleanParameter, Advanced: true, }, { Name: "tag", Description: "(optional) Useful when you want to git clone a specific tag. Empty by default, you can set to `{{.git.tag}}` to clone a tag from your repository. In this way, in your workflow payload you can add a key in your JSON like \"git.tag\": \"1.0.2\".", Value: sdk.DefaultGitCloneParameterTagValue, Type: sdk.StringParameter, Advanced: true, }, }, Requirements: []sdk.Requirement{ sdk.Requirement{ Name: "git", Type: sdk.BinaryRequirement, Value: "git", }, }, }, Example: exportentities.PipelineV1{ Version: exportentities.PipelineVersion1, Name: "Pipeline1", Stages: []string{"Stage1"}, Jobs: []exportentities.Job{{ Name: "Job1", Stage: "Stage1", Steps: []exportentities.Step{ { GitClone: &exportentities.StepGitClone{ URL: "{{.git.url}}", Branch: "{{.git.branch}}", Commit: "{{.git.commit}}", PrivateKey: "proj-mykey", Directory: "{{.cds.workspace}}", }, }, }, }}, }, }
GitClone action definition.
View Source
var GitTag = Manifest{ Action: sdk.Action{ Name: sdk.GitTagAction, Description: `Tag the current branch and push it. Use vcs config from your application. Semver used if fully compatible with https://semver.org. `, Parameters: []sdk.Parameter{ { Name: "tagLevel", Description: "Set the level of the tag. Must be 'major' or 'minor' or 'patch'.", Value: "", Type: sdk.StringParameter, }, { Name: "tagPrerelease", Description: "(optional) Prerelease version of the tag. Example: alpha on a tag 1.0.0 will return 1.0.0-alpha.", Value: "", Type: sdk.StringParameter, }, { Name: "tagMetadata", Description: "(optional) Metadata of the tag. Example: cds.42 on a tag 1.0.0 will return 1.0.0+cds.42.", Value: "", Type: sdk.StringParameter, }, { Name: "tagMessage", Description: "(optional) Set a message for the tag.", Value: "", Type: sdk.StringParameter, }, { Name: "path", Description: "(optional) The path to your git directory.", Value: "{{.cds.workspace}}", Type: sdk.StringParameter, }, { Name: "prefix", Description: "(optional) Add a prefix for tag name.", Value: "", Type: sdk.StringParameter, Advanced: true, }, }, Requirements: []sdk.Requirement{ { Name: "git", Type: sdk.BinaryRequirement, Value: "git", }, { Name: "gpg", Type: sdk.BinaryRequirement, Value: "gpg", }, }, }, Example: exportentities.PipelineV1{ Version: exportentities.PipelineVersion1, Name: "Pipeline1", Parameters: map[string]exportentities.ParameterValue{ "tagLevel": exportentities.ParameterValue{ Type: "list", DefaultValue: "major;minor;patch", Description: "major, minor or patch", }, }, Stages: []string{"Stage1"}, Jobs: []exportentities.Job{{ Name: "Job1", Stage: "Stage1", Steps: []exportentities.Step{ { Checkout: &checkoutExample, }, { GitTag: &exportentities.StepGitTag{ Path: "{{.cds.workspace}}", TagLevel: "{{.cds.pip.tagLevel}}", TagMessage: "Release from CDS run {{.cds.version}}", }, }, }, }}, }, }
GitTag action definition.
View Source
var JUnit = Manifest{ Action: sdk.Action{ Name: sdk.JUnitAction, Description: "This action parses a given Junit formatted XML file to extract its test results.", Parameters: []sdk.Parameter{ { Name: "path", Description: `Path to junit xml file.`, Type: sdk.TextParameter, }, }, }, Example: exportentities.PipelineV1{ Version: exportentities.PipelineVersion1, Name: "Pipeline1", Stages: []string{"Stage1"}, Jobs: []exportentities.Job{{ Name: "Job1", Stage: "Stage1", Steps: []exportentities.Step{ { JUnitReport: &exampleJUnit, }, }, }}, }, }
JUnit action definition.
View Source
var List = []Manifest{ ArtifactDownload, ArtifactUpload, PushBuildInfo, CheckoutApplication, Coverage, DeployApplication, GitClone, GitTag, JUnit, Promote, ReleaseVCS, Release, Script, }
List of all available actions.
View Source
var Promote = Manifest{ Action: sdk.Action{ Name: sdk.PromoteAction, Description: "This action promote artifacts in an artifact manager", Parameters: []sdk.Parameter{ { Name: "artifacts", Description: "(optional) Set a list of artifacts, separate by ','. You can also use regexp.", Type: sdk.StringParameter, }, { Name: "srcMaturity", Description: "Repository suffix from which the artifact will be moved", Type: sdk.StringParameter, Advanced: true, }, { Name: "destMaturity", Description: "Repository suffix in which the artifact will be moved", Type: sdk.StringParameter, Value: "release", }, { Name: "setProperties", Description: "Properties to add on the promoted artifacts", Type: sdk.StringParameter, Advanced: true, }, }, }, Example: exportentities.PipelineV1{ Version: exportentities.PipelineVersion1, Name: "Pipeline1", Stages: []string{"Stage1"}, Jobs: []exportentities.Job{{ Name: "Job1", Stage: "Stage1", Steps: []exportentities.Step{ { Promote: &exportentities.StepPromote{ Artifacts: "(.*).zip", }, }, }, }}, }, }
Promote action definition.
View Source
var PushBuildInfo = Manifest{ Action: sdk.Action{ Name: sdk.PushBuildInfo, Description: `Push build info into an artifact manager, useful only if you have an artifact manager linked to your workflow.`, }, Example: exportentities.PipelineV1{ Version: exportentities.PipelineVersion1, Name: "Pipeline1", Stages: []string{"Stage1"}, Jobs: []exportentities.Job{{ Name: "Job1", Stage: "Stage1", Steps: []exportentities.Step{ { PushBuildInfo: &pushBuildInfoExample, }, }, }}, }, }
PushBuildInfo action definition.
View Source
var Release = Manifest{ Action: sdk.Action{ Name: sdk.ReleaseAction, Description: "This action creates a release on a artifact manager. It promotes artifacts.", Parameters: []sdk.Parameter{ { Name: "releaseNote", Description: "(optional) Set a release note for the release.", Type: sdk.TextParameter, }, { Name: "artifacts", Description: "(optional) Set a list of artifacts, separate by ','. You can also use regexp.", Type: sdk.StringParameter, }, { Name: "srcMaturity", Description: "Repository suffix from which the artifact will be moved", Type: sdk.StringParameter, Advanced: true, }, { Name: "destMaturity", Description: "Repository suffix in which the artifact will be moved", Type: sdk.StringParameter, Value: "release", }, { Name: "setProperties", Description: "Properties to add on the released artifacts", Type: sdk.StringParameter, Advanced: true, }, }, }, Example: exportentities.PipelineV1{ Version: exportentities.PipelineVersion1, Name: "Pipeline1", Stages: []string{"Stage1"}, Jobs: []exportentities.Job{{ Name: "Job1", Stage: "Stage1", Steps: []exportentities.Step{ { Release: &exportentities.StepRelease{ Artifacts: "(.*).zip", }, }, }, }}, }, }
Release action definition.
View Source
var ReleaseVCS = Manifest{ Action: sdk.Action{ Name: sdk.ReleaseVCSAction, Description: "This action creates a release on the git repository linked to the application, if repository manager implements it.", Parameters: []sdk.Parameter{ { Name: "tag", Description: "Tag attached to the release.", Value: "{{.cds.release.version}}", Type: sdk.StringParameter, }, { Name: "title", Value: "", Description: "Set a title for the release.", Type: sdk.StringParameter, }, { Name: "releaseNote", Description: "(optional) Set a release note for the release.", Type: sdk.TextParameter, }, { Name: "artifacts", Description: "(optional) Set a list of artifacts, separate by ','. You can also use regexp.", Type: sdk.StringParameter, }, }, }, Example: exportentities.PipelineV1{ Version: exportentities.PipelineVersion1, Name: "Pipeline1", Parameters: map[string]exportentities.ParameterValue{ "tagLevel": exportentities.ParameterValue{ Type: "list", DefaultValue: "major;minor;patch", Description: "major, minor or patch", }, }, Stages: []string{"Stage1"}, Jobs: []exportentities.Job{{ Name: "Job1", Stage: "Stage1", Steps: []exportentities.Step{ { Checkout: &checkoutExample, }, { GitTag: &exportentities.StepGitTag{ Path: "{{.cds.workspace}}", TagLevel: "{{.cds.pip.tagLevel}}", TagMessage: "Release from CDS run {{.cds.version}}", }, }, { Script: []string{ "#!/bin/sh", "TAG=`git describe --abbrev=0 --tags`", "worker export tag $TAG", }, }, { ReleaseVCS: &exportentities.StepReleaseVCS{ Artifacts: "{{.cds.workspace}}/myFile", Title: "{{.cds.build.tag}}", ReleaseNote: "My release {{.cds.build.tag}}", Tag: "{{.cds.build.tag}}", }, }, }, }}, }, }
ReleaseVCS action definition.
View Source
var Script = Manifest{ Action: sdk.Action{ Name: sdk.ScriptAction, Description: `This action executes a given script with a given interpreter.`, Parameters: []sdk.Parameter{ { Name: "script", Description: `Content of your script. You can put #!/bin/bash, or #!/bin/perl at first line. Make sure that the binary used is in the pre-requisites of action.`, Type: sdk.TextParameter, }, }, }, Example: exportentities.PipelineV1{ Version: exportentities.PipelineVersion1, Name: "Pipeline1", Stages: []string{"Stage1"}, Jobs: []exportentities.Job{{ Name: "Job1", Stage: "Stage1", Steps: []exportentities.Step{ { Script: []string{ "#!/bin/sh", "echo \"{{.cds.application}}\"", }, }, }, }}, }, }
Script action definition.
Functions ¶
This section is empty.
Types ¶
type Manifest ¶
type Manifest struct { Action sdk.Action Example exportentities.PipelineV1 }
Manifest for a action.
Click to show internal directories.
Click to hide internal directories.