Buddy创新环境变量,Jenkins目前无法企及

环境变量可在流水线中通过使用键值对以便重复手动更新相同的值。环境变量让开发人员节省查找和输入访问信息的时间,并消除在其脚本中提供敏感详细信息的风险。

ENV变量用于参数化构建脚本,在流水线中设置变量将致使相同的构建操作根据流水线以不同的方式工作。

设置环境变量

添加新变量时,以下字段可用:

  • 权限范围 – 定义变量的权限范围级别
  • 加密 – 启用加密将隐藏日志中的变量值
  • 类型 – 如果您设置为固定,变量的值将始终不变。切换选项至可设置将让您更改值并将其传递给下一个操作或执行。

环境变量分为4个级别:

  1. 工作区 - 适用于所有项目和流水线,在工作区选项中配置。
  2. 项目 - 可用于项目中的所有流水线,在项目选项中配置。
  3. 流水线 - 仅适用于所创建的流水线(例如,生产服务器信息),在流水线中配置。
  4. 操作 - 仅适用于定义变量的操作

危险

每个后续层都将覆盖更高层次的值。例如,如果您有两个相同的变量:一个在工作区级别定义,另一个在流水线级别定义,Buddy将使用该流水线中的流水线设置值以及帐户其余部分的工作区值。

Buddy创新环境变量,Jenkins目前无法企及

信息

了解有关传递参数的更多信息

使用示例​

让我们配置一些变量来加密对 FTP 服务器的访问:

  1. 转到您的部署流水线并点击变量选项卡
  2. 添加具有相应值的变量,例如:Hostname: FTP_HOST / 192.168.0.100Login: FTP_LOGIN / adminPassword: FTP_PASS / buddy1234
Buddy创新环境变量,Jenkins目前无法企及

  1. 现在,您可以使用变量将访问凭据存储访问到部署服务器:
Buddy创新环境变量,Jenkins目前无法企及

支持环境变量字段​

整个服务都支持环境变量,但最常用于构建操作。您可以通过在支持字段的开头输入$来预设变量:

Buddy创新环境变量,Jenkins目前无法企及

以下是当前支持的字段列表:

操作名称

支持字段

Amazon S3

SourcePath, Remote Path, Tag Objects Value

AWS CLI

Run Commands

AWS CLI 2

Run Commands

AWS ECS

Source Path

AWS Lambda Deploy

Source Path

AWS Lambda Trigger

Payload

Azure App Service

URL, Login, Password

Azure CLI

Run Commands

Azure Storage

Source Path, Remote Path

Build Android App

Run Commands, Mount Filesystem Path, Mount Container Path, Working dir

Build Android React Native Application

Run Commands, Mount Filesystem Path, Mount Container Path, Working dir

Build Docker Image

Name, Value

Build Flutter App

Run Commands, Mount Filesystem Path, Mount Container Path, Working dir

Build Ionic app

Mount Filesystem Path, Mount Container Path, Working dir

Bugsnag

API Key, Version, Revision, Builder Name, Release Stage

CloudFront

Base URL, Source Path

Cloudflare

Base URL

CodeDeploy

Source Path, Bucke tName, Description

Compress images

Source Path, Destination Path

Copy files

Source Path, Remote Path

Custom Build

Run Commands, Mount Filesystem Path, Mount Container Path, Working dir

Datadog

Event Title, Content, Host, Tags, Aggregation Key

Datadog Service Check

Hostname, Check

DigitalOcean Droplet

Source Path, Port, Login, Password, Remote Path, SSH Key Passphrase

DigitalOcean Spaces

SourcePath, Remote Path

DigitalOcean Spaces CDN

BaseURL

Discord

Channel, Attachments, Message

Dockerfile

Build Arguments

Dockerfile Linter

Dockerfile, YAML file with ignores

Elastic Beanstalk

Source, Version, Bucket 1, Environment 2

Email

Subject, Attachments, Message

ESLint

Mount Filesystem Path, Mount Container Path, Working dir

Find & replace

Source Path, Replacements

Firebase

Mount Filesystem Path, Mount Container Path, Working dir

FTP

Source Path, Hostname, Port, Login, Password, RemotePath

FTP Download

Hostname, Port, Login, Password, Source Path, Destination Path

FTPS

Source Path, Hostname, Port, Login, Password, Remote Path

Function Deploy


GCE

Source Path, Hostname, Port, Login, Password, Remote Path

GCloud CLI

Run Commands

GCS

SourcePath, RemotePath

Ghost Inspector

Path

Git Push

URL, Login, Password

Gitcrypt lock


Gitcrypt unlock


Google App Engine

Source Path, Bucket, Version, ImageURL

Google CDN

BaseURL

Google Cloud CLI

Run Commands

Google Cloud Functions

Source Path

Google Cloud Storage

Source Path, Remote Path

Google Compute Engine

Source Path, Hostname, Port, Login, Password, Remote Path

Google Function Trigger


Heroku


Heroku CLI

Run Commands

Honeybadger

Environment

HTTP

EndpointURL, Login, Password, Request headers

Image compression

Source, Destination

Kubernetes Apply

Server, Username, Password, Source Path, Prune Whitelist, Grace Period

Kubernetes CLI

Server, Username, Password, Run Commands

Run Kubernetes Job

Server, Username, Password, YAML

Run Kubernetes Pod

Server, Username, Password, YAML

Set Kubernetes Image

Server, Username, Password, ImageName, Image Tag

Lambda Deploy

SourcePath

Lambda Trigger

Qualifier

Link validator

URL

Lighthouse

URL

Local Shell


Loggly

Tags

Monitoring

Environment 3, Application 4

MS Teams

Channel email, Title, Attachments from filesystem

Netlify


New Relic

Description, Changelog, Version

Pass arguments


PHP CodeSniffer

Mount Filesystem Path, Mount Container Path, Working dir

Ping

Host

Publish APK to Google Play

APK, Main expansion file, Patch expansion file, Service Key, Package name, Mapping file

Pushbullet

Title, URL, Message

Push Docker Image

Login, Password, Repository, Tags

Pushover

Title, URL, URL Title, Message

Rackspace

Source Path, Remote Path

Raygun

Access Token, API Key, Version, User, Email, Comment

Replace

Source Path, Replacements (name)

Rollbar

Environment, Comment, Username, Rollbar Username

Rsync

Source Path, Hostname, Port, Login, Password, Remote Path

Run Docker Image

Login, Password, Image, Version, CMD, Entrypoint

Run Helm CMDs

Run Commands, Server, Username, Password

Run next pipeline

Comment

Sentry

Release Version, Deploy Environment, Release URL, Deploy URL, Repository

Sentry On-premises

Release Version, Deploy Environment, Release URL, Deploy URL, Repository

Sign APK

Select the APK, Location, Keystore Password, Key Alias, Output Directory, Output APK Name

SFTP

SourcePath, Hostname, Port, Login, Password, Remote Path, Private SSH Key, SSH Key Passphrase

SFTP Download

Hostname, Port, Login, Password, Source Path, Destination Path, Private SSH Key, SSH Key Passphrase

Shopify

SourcePath

Slack

Attachments, Message

Sleep


SMS

Message

S3 Download

Source Path, Destination

Split tests

Tests Path

SSH

Source Path, Hostname, Port, Login, Password, RemotePath

SSL verify

Website URL

TCP

Host, Port, String To Send, String To Expect

Theme Kit CLI

Run Commands

Telegram

Attachments, Message

UpCloud

Source Path, Port, Login, Password, RemotePath, SSH Key Passphrase

Visual tests


Vultr

SourcePath, Port, Login, Password, Remote Path

Wait for approval

Question

WEB

URL, Check For String, Login, Password, Request headers

WebDAV

Source Path, Hostname, Login, Password

ZIP

Source Path, Target Path, File Name

1-4这些字段在前端不可用。但是,如果通过REST API或YAML添加操作,则变量正常工作。

危险

有些字段是HTML文本区域,不支持推荐使用变量。例如,通知中的消息字段。 但是它们确实完全支持ENV VAR。

提示

您还可以在列出的操作中使用多行环境变量

信息

如果您在此处未找到您的操作或必填字段不受支持,请联系客服:support@buddy.red

默认环境变量​

Buddy 在每次执行期间填充许多环境变量 - 例如您部署的分支和执行的ID。以下是填充变量列表:

名称

BUDDY

Represents whether the current environment is a Buddy environment

BUDDY_WORKSPACE_URL

The URL of the workspace

BUDDY_WORKSPACE_ID

The ID of the workspace

BUDDY_WORKSPACE_NAME

The ID of the workspace

BUDDY_WORKSPACE_DOMAIN

The slug of the workspace

BUDDY_PROJECT_URL

The URL of the project

BUDDY_PROJECT_NAME

The name of the project

BUDDY_PROJECT_NAME_ID

The ID of the project

BUDDY_REPO_SLUG

The slug of the repository

BUDDY_REPO_SSH_URL

The SSH URL of the repository

BUDDY_SCM_URL

The URL of the repository synchronized with the project

BUDDY_SCM_PROVIDER

The name of the Git hosting provider synchronized with the project

BUDDY_PIPELINE_URL

The URL of the executed pipeline

BUDDY_PIPELINE_ID

The ID of the executed pipeline

BUDDY_PIPELINE_NAME

The name of the executed pipeline

BUDDY_PIPELINE_REF_NAME

The branch/tag/pull request or a wildcard string set in the executed pipeline

BUDDY_PIPELINE_TRIGGER_MODE

The trigger mode set in the executed pipeline

BUDDY_PIPELINE_TARGET_SITE_URL

The target website URL

BUDDY_INVOKER_URL

The URL to the profile of the execution invoker

BUDDY_INVOKER_ID

The ID of the execution invoker

BUDDY_INVOKER_NAME

The name of the execution invoker

BUDDY_INVOKER_EMAIL

The email address of the execution invoker

BUDDY_INVOKER_AVATAR_URL

The URL of the avatar of the execution invoker

BUDDY_EXECUTION_URL

The URL of the current execution

BUDDY_EXECUTION_ID

The ID of the current execution

BUDDY_EXECUTION_START_DATE

The date of the current execution

BUDDY_EXECUTION_MODE

The trigger mode used to run the current execution

BUDDY_EXECUTION_CLEAR_CACHE

Represents whether the cache was purged before the current execution

BUDDY_EXECUTION_REFRESH

Represents whether the files were uploaded from scratch by the deployment actions in the current execution

BUDDY_EXECUTION_COMMENT

The comment attached to the current execution

BUDDY_EXECUTION_BRANCH

The name of the Git branch of the current execution

BUDDY_EXECUTION_TAG

The name of the Git tag of the current execution (provided the execution is tagged)

BUDDY_EXECUTION_PULL_REQUEST_ID

The ID of the currently executed pull request

BUDDY_EXECUTION_PULL_REQUEST_NO

The number of the currently executed pull request

BUDDY_EXECUTION_PULL_REQUEST_BASE_BRANCH

The name of the Git BASE branch of the currently executed Pull Request

BUDDY_EXECUTION_PULL_REQUEST_HEAD_BRANCH

The name of the Git HEAD branch of the currently executed Pull Request

BUDDY_EXECUTION_PREVIOUS_REVISION

The SHA1 hash of the commit of the previous execution

BUDDY_EXECUTION_PREVIOUS_REVISION_MESSAGE

The commit message of the previously executed revision

BUDDY_EXECUTION_PREVIOUS_REVISION_SUBJECT

The commit subject of the previously executed revision

BUDDY_EXECUTION_REVISION

The SHA1 hash of the commit of the current execution

BUDDY_EXECUTION_REVISION_URL

The URL of the commit of the current execution

BUDDY_EXECUTION_REVISION_SHORT

The short hash of the commit of the current execution

BUDDY_EXECUTION_REVISION_MESSAGE

The commit message of the currently executed revision

BUDDY_EXECUTION_REVISION_SUBJECT

The commit subject of the currently executed revision

BUDDY_EXECUTION_REVISION_COMMITTER_EMAIL

The email address of the commiter email of the currently executed revision

BUDDY_EXECUTION_REVISION_COMMITTER_NAME

The email address of the commiter of the currently executed revision

BUDDY_EXECUTION_CHANGELOG

The list of commits pushed since the last executed revision (one commit per line)

BUDDY_EXECUTION_CHANGELOG_ADDED

The list of files added since the last executed revision (comma-separated)

BUDDY_EXECUTION_CHANGELOG_DELETED

The list of files deleted since the last executed revision (comma-separated)

BUDDY_EXECUTION_CHANGELOG_CHANGED

The list of files changed since the last executed revision (comma-separated)

BUDDY_EXECUTION_TIME

The total time of the current execution until the action is triggered (in seconds)

BUDDY_FAILED_ACTION_LOGS

The logs from the action that has failed in the current execution (one entry per line)

BUDDY_FAILED_ACTION_NAME

The name of the action that has failed in the current execution

BUDDY_EXECUTION_WARNINGS_COUNT

The total number of warnings that appeared in the current execution

CI

Represents whether the current environment is another CI environment

您可以在下面找到上述变量的示例值列表:

BUDDY=true
BUDDY_WORKSPACE_URL=https://app.buddy.works/myworkspace
BUDDY_WORKSPACE_ID=1
BUDDY_WORKSPACE_NAME=My Workspace
BUDDY_WORKSPACE_DOMAIN=myworkspace
BUDDY_PROJECT_URL=https://app.buddy.works/myworkspace/my-project
BUDDY_PROJECT_NAME=my-project
BUDDY_PROJECT_NAME_ID=my-project
BUDDY_REPO_SLUG=buddyworks/my-project
BUDDY_REPO_SSH_URL=git@github.com:buddyworks/my-project
BUDDY_SCM_URL=https://github.com/buddyworks/my-project
BUDDY_SCM_PROVIDER=GITHUB
BUDDY_PIPELINE_URL=https://app.buddy.works/myworkspace/my-project/pipelines/pipeline/1
BUDDY_PIPELINE_ID=1
BUDDY_PIPELINE_NAME=Deploy to Production
BUDDY_PIPELINE_REF_NAME=master
BUDDY_PIPELINE_TRIGGER_MODE=CLICK
BUDDY_PIPELINE_TARGET_SITE_URL=https://buddy.works/
BUDDY_INVOKER_URL=https://app.buddy.works/myworkspace/profile/1
BUDDY_INVOKER_ID=1
BUDDY_INVOKER_NAME=Mike Benson
BUDDY_INVOKER_EMAIL=mikebenson@buddy.works
BUDDY_INVOKER_AVATAR_URL=https://app.buddy.works/image-server/user/0/0/0/0/0/0/1/05d20f3d58ce09a3b4e9g3334a810603/w/32/32/AVATAR.png
BUDDY_EXECUTION_URL=https://app.buddy.works/myworkspace/my-project/pipelines/pipeline/1/execution/5d9dc42c422f5a268b389d08
BUDDY_EXECUTION_ID=1
BUDDY_EXECUTION_START_DATE=2019-01-01T11:27:40.140Z
BUDDY_EXECUTION_MODE=CLICK
BUDDY_EXECUTION_CLEAR_CACHE=false
BUDDY_EXECUTION_REFRESH=false
BUDDY_EXECUTION_COMMENT=My first execution
BUDDY_EXECUTION_BRANCH=master
BUDDY_EXECUTION_TAG=v1.0
BUDDY_EXECUTION_PULL_REQUEST_ID=pull/1
BUDDY_EXECUTION_PULL_REQUEST_NO=1
BUDDY_EXECUTION_PULL_REQUEST_BASE_BRANCH=master
BUDDY_EXECUTION_PULL_REQUEST_HEAD_BRANCH=master/feature1
BUDDY_EXECUTION_REVISION=e5e13f8b7f8d5c6096a0501dc09b48eef05fea96
BUDDY_EXECUTION_REVISION_URL=https://app.buddy.works/myworkspace/my-project/repository/commit/e5e13f8b7f8d5c6096a0501dc09b48eef05fea96
BUDDY_EXECUTION_REVISION_SHORT=e5e13f8
BUDDY_EXECUTION_REVISION_MESSAGE=Create buddy.yml
BUDDY_EXECUTION_REVISION_SUBJECT=Create buddy.yml
BUDDY_EXECUTION_REVISION_COMMITTER_EMAIL=mikebenson@buddy.works
BUDDY_EXECUTION_REVISION_COMMITTER_NAME=Mike Benson
BUDDY_EXECUTION_CHANGELOG=[e5e13f8] Create buddy.yml | mikebenson | 2019-01-01T07:14:58
BUDDY_FAILED_ACTION_NAME=Upload files

将变量组合成词组​

变量可以与其他词组合以创建更长的短语,例如,自动命名您的基础设施、版本或沙盒。但是您需要遵守以下规则:

  • 变量之前: 允许任何字符
  • 变量之后: 不允许字母、数字和下杠(_)

正确用法:

release-$BUDDY_EXECUTION_ID-staging
release$BUDDY_EXECUTION_ID:staging
release_$BUDDY_EXECUTION_ID[staging]

错误用法:

release-$BUDDY_EXECUTION_ID_staging (下杠)
release-$BUDDY_EXECUTION_IDstaging (字母)
release-$BUDDY_EXECUTION_ID1staging (数字)

传递变量​

在一个流水线中传递变量很有用。例如,当我们要将文件内容分配给变量并在通知中发送时:

Buddy创新环境变量,Jenkins目前无法企及

信息

  1. 第一个操作构建应用程序并将日志输出保存到logs.txt
  2. 如果构建失败,Local Shell操作会用export LOGS=$(cat log.txt)将logs.txt的内容分配给一个变量。
  3. 然后将日志以$LOGS作为消息内容发送到Slack频道。

危险

确保将变量设置为可设置,否则将无法更改其值。

运行之间传递变量​

您也可以在运行之间传递变量的值。这些值可以保存在一个运行中,然后在另一个运行中使用,例如,您可以使用版本类型设置变量并在每次执行时递增。

信息

您可以在我们的专用指南中阅读有关语义化版本控制的更多信息.

流水线之间传递变量​

您可以使用运行下一个流水线操作在流水线之间传递变量:

  1. 进入操作信息中的变量选项卡
  2. 定义变量的名称和要传递的值:

信息

您可以将目标流水线中的任何变量分配为值

运行之间重置变量​

要在流水线执行之间重置可设置的变量,您可以添加一个带有命令的操作,该命令将清除变量的值(最好在流水线的开头或结尾处):

export mySettableEnv=
Buddy创新环境变量,Jenkins目前无法企及

运行开始时传递变量​

您可以使用传参操作参数化您的执行 - 它会暂停流水线并等待您的输入继续:

Buddy创新环境变量,Jenkins目前无法企及

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章