bitbucket-pipelines - 具有多个分支的 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
解决方案
创建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
推荐阅读
- android - 如何在android中创建水平滚动网格视图?
- php - Laravel如何将视图中的功能添加到控制器(业务逻辑层)
- opencv - CMakeLists 找不到 opencv 库,虽然我定义了它
- php - PHP [process_control_timeout] 冻结应用程序
- node.js - Node.js 项目中的中间件/错误
- c# - 如何在不使用 c# 形式的计时器的情况下使用性能计数器?我收到一个错误,例如找不到类别名称
- java - 无法从 Java 中找到到所请求目标的有效认证路径,但可以通过浏览器登录
- go - 如何为 Go 包装器正确配置 ffmpeg
- linker-errors - C 中未定义的引用和链接器错误
- angular - $any() 类型转换成角度的用途和目的是什么