Bitbucket 管道 - 分配自定义变量
Bitbucket pipeline - assign custom variables
我想使用 bash 命令分配自定义变量
image: alpine
pipelines:
default:
- step:
name: docker-login
services:
- docker
script:
- docker login --username $DOCKER_USERNAME --password $DOCKER_PASSWORD
- echo "logged in to docker hub"
- echo $VERSION
variables:
VERSION: cat ./version.txt
- step:
name: build-image
services:
- docker
script:
- echo "running docker image test"
- step:
name: 'set ssh env'
script:
- pipe: atlassian/ssh-run:0.4.0
variables:
SSH_USER: $SSH_USER
SERVER: '$HOST'
COMMAND: 'pwd'
我没有得到文件的输出。正确的语法是什么?
“在 bitbucket-pipelines.yml 中设置环境变量”目前是一个开放的建议,收集对 Bitbucket Cloud 的兴趣:BCLOUD-17453
如果您的 运行 步骤所在的基础映像不支持在外部设置环境变量。你不能创建这样的变量。例如,您的管道图像 atlassian/ssh-run:0.4.0
设置了这些环境变量,因此您可以定义。但是 docker-login
步骤将使用 image: alpine
作为其基础,并且此基础映像没有设置要配置的环境变量。 Bitbucket 中有三种类型的变量(工作区变量、存储库变量和部署变量。)none 满足您在此用例中的需要。因为所有这些变量类型都是静态的并且工作方式为 key/value.
我们可以试试下面的其他方法;
image: alpine
pipelines:
default:
- step:
name: docker-login
services:
- docker
script:
- docker login --username $DOCKER_USERNAME --password $DOCKER_PASSWORD
- echo "logged in to docker hub"
- export VERSION=$(cat ./version.txt)
- echo $VERSION
使用 linux 命令创建变量在这里会有帮助。另外,请记住,这些类型的变量(在本例中为 $VERSION
变量)只会在其步骤中被识别。如果你想携带到其他步骤,你应该使用工件。
我想使用 bash 命令分配自定义变量
image: alpine
pipelines:
default:
- step:
name: docker-login
services:
- docker
script:
- docker login --username $DOCKER_USERNAME --password $DOCKER_PASSWORD
- echo "logged in to docker hub"
- echo $VERSION
variables:
VERSION: cat ./version.txt
- step:
name: build-image
services:
- docker
script:
- echo "running docker image test"
- step:
name: 'set ssh env'
script:
- pipe: atlassian/ssh-run:0.4.0
variables:
SSH_USER: $SSH_USER
SERVER: '$HOST'
COMMAND: 'pwd'
我没有得到文件的输出。正确的语法是什么?
“在 bitbucket-pipelines.yml 中设置环境变量”目前是一个开放的建议,收集对 Bitbucket Cloud 的兴趣:BCLOUD-17453
如果您的 运行 步骤所在的基础映像不支持在外部设置环境变量。你不能创建这样的变量。例如,您的管道图像 atlassian/ssh-run:0.4.0
设置了这些环境变量,因此您可以定义。但是 docker-login
步骤将使用 image: alpine
作为其基础,并且此基础映像没有设置要配置的环境变量。 Bitbucket 中有三种类型的变量(工作区变量、存储库变量和部署变量。)none 满足您在此用例中的需要。因为所有这些变量类型都是静态的并且工作方式为 key/value.
我们可以试试下面的其他方法;
image: alpine
pipelines:
default:
- step:
name: docker-login
services:
- docker
script:
- docker login --username $DOCKER_USERNAME --password $DOCKER_PASSWORD
- echo "logged in to docker hub"
- export VERSION=$(cat ./version.txt)
- echo $VERSION
使用 linux 命令创建变量在这里会有帮助。另外,请记住,这些类型的变量(在本例中为 $VERSION
变量)只会在其步骤中被识别。如果你想携带到其他步骤,你应该使用工件。