Bitbucket流水线如何合并两个变量以产生另一个要在其他地方使用的变量

问题描述 投票:1回答:1

我正在尝试使用bitbucket-pipelines.yml锻炼Bitbucket管道

    image: microsoft/dotnet:sdk

pipelines:
 branches:
  master:
    - step:
        script:
          - dotnet build $PROJECT_NAME
          - export EnvrBuild=Production_$BITBUCKET_BUILD_NUMBER
          - '[ ! -e "$BITBUCKET_CLONE_DIR/$EnvrBuild" ] && mkdir $BITBUCKET_CLONE_DIR/$EnvrBuild'
          - dotnet publish $PROJECT_NAME --configuration Release
          - cp -r $BITBUCKET_CLONE_DIR/$PROJECT_NAME/bin/Release/netcoreapp2.1/publish/** $BITBUCKET_CLONE_DIR/$EnvrBuild
        artifacts:
          - $EnvrBuild/**

我是Bitbucket中管道的新手。当我对$ EnvrBuild进行回显时,我得到正确的结果,但是$ EnvrBuild在后续步骤中没有任何内容,并且不会产生任何工件,即使我对值进行硬编码也不管用。有没有办法做类似$ BITBUCKET_BUILD_NUMBER +“ _” + $ BITBUCKET_BRANCH的事情? (我知道这是错误的,但是您了解我要实现的目标。事先谢谢您

yaml bitbucket bitbucket-pipelines
1个回答
1
投票

不允许使用可变扩展来指定工件,您必须提供一个静态值。但是,您可以隐式使用通配符将多个子目录存储在构建目录下。这是一个例子:

image: microsoft/dotnet:sdk

pipelines:
    branches:
      master:
        - step:
          script:
            - dotnet build $PROJECT_NAME
            - export EnvrBuild=Production_$BITBUCKET_BUILD_NUMBER
            - '[ ! -e "$BITBUCKET_CLONE_DIR/$EnvrBuild" ] && mkdir $BITBUCKET_CLONE_DIR/$EnvrBuild'
            - dotnet publish $PROJECT_NAME --configuration Release
            - mkdir -p $BITBUCKET_CLONE_DIR/build_dir/$EnvrBuild
            - cp -r $BITBUCKET_CLONE_DIR/$PROJECT_NAME/bin/Release/netcoreapp2.1/publish/** $BITBUCKET_CLONE_DIR/build_dir/$EnvrBuild
          artifacts:
            - build_dir/**
        - step:
          script:
            - export EnvrBuild=Production_$BITBUCKET_BUILD_NUMBER
            - ls build_dir/$EnvrBuild
© www.soinside.com 2019 - 2024. All rights reserved.