首页 > 解决方案 > 具有多个分支的 Bitbucket 管道

问题描述

我想使用 bitbucket 管道,我有这样的 bitbucket-pipelines.yml:

image: java:8

pipelines:
  default:
    - step:
        caches:
          - gradle
          - android-sdk

        script:
          /*SOME CODE*/

          # Build apk
          - chmod a+x ./gradlew
          - ./gradlew assembleDebug

  branches:
    develop:
      - step:
          caches:
            - gradle
            - android-sdk

          script:
            /*SOME CODE*/

            # Build apk
            - chmod a+x ./gradlew
            - ./gradlew assembleDebug

          artifacts:
            - app/build/outputs/apk/debug/*.apk

definitions:
  caches:
    android-sdk: android-sdk

但是“脚本”中有很多相同的代码,有没有办法解决这个问题?也许将相同的代码移动到脚本中?

我已将移动代码放到 build.sh 中,但出现错误:

+ ./build.sh
./build.sh: line 4: -: command not found
./build.sh: line 5: -: command not found
./build.sh: line 8: -: command not found

标签: bitbucket-pipelines

解决方案


创建build.sh文件是可能的。但是,当您将脚本的命令复制到文件时,看起来好像您没有删除“-”字符。对于给定的文件,您build.sh应该如下所示:

/* SOME CODE*/

# Build apk
chmod a+x ./gradlew
./gradlew assembleDebug

注意每个命令之前没有'-'。您的 bitbucket-pipelines.yml 文件应如下所示:

pipelines:
  default:
    - step:
        caches:
          - gradle
          - android-sdk

        script:
          - ./build.sh

  branches:
    develop:
      - step:
          caches:
            - gradle
            - android-sdk

          script:
            - ./build.sh

          artifacts:
            - app/build/outputs/apk/debug/*.apk

definitions:
  caches:
    android-sdk: android-sdk

推荐阅读