我有一个包含以下文件的存储库:
app.js
bitbucket-pipelines.yml
package-lock.json
package.json
Run Code Online (Sandbox Code Playgroud)
我想将node_modules/ app.js package.json它们压缩并上传到 S3。我写了下面的管道:
image: atlassian/default-image:2
pipelines:
branches: # Pipelines should that will be triggered when a push is made in the below branch
master:
- step:
name: Deploy to S3
script:
- zip -r archive.zip node_modules/ app.js package.json
- pipe: atlassian/aws-s3-deploy:0.5.0
variables:
AWS_ACCESS_KEY_ID:
AWS_SECRET_ACCESS_KEY:
AWS_DEFAULT_REGION:
COMMAND: 'upload-only'
ZIP_FILE: 'archive.zip'
S3_BUCKET: 'lambda-bucket/lambda'
LOCAL_PATH: '$(pwd)'
ACL: 'private'
Run Code Online (Sandbox Code Playgroud)
管道成功运行,但会将存储库中的所有文件(包括新创建的 zip)上传到 S3。如何确保管道只上传 zip 文件?
传统上,我一直在发行
pip install docker-compose
Run Code Online (Sandbox Code Playgroud)
我的管道脚本中有关需要它的步骤的说明,通常用于集成测试。
这很方便,因为它可以完美地与 Bitbucket 的 docker 服务提供的 docker 二进制文件一起运行,并且受益于 pip 缓存,因为我已经在这些步骤中使用了 python 图像。但我宁愿使用最新的软件,所以我正在寻找安装 docker-compose V2 的机制。
理想情况下,解决方案应该
有人解决这个问题吗?你的经验是什么?
我有一个带有yarn build命令的位桶管道。问题是输出总是错过最后几行:
+ yarn build\nyarn run v1.22.19\n$ react-scripts build\nCreating an optimized production build...\nCompiled successfully.\nFile sizes after gzip:\nRun Code Online (Sandbox Code Playgroud)\n之后应该会有更多行File sizes after gzip:。
我的bitbucket-pipelines.yml:
+ yarn build\nyarn run v1.22.19\n$ react-scripts build\nCreating an optimized production build...\nCompiled successfully.\nFile sizes after gzip:\nRun Code Online (Sandbox Code Playgroud)\n最大的问题是何时yarn build出错。因为我没有看到最后几行,所以我无法说出它失败的原因。发生这种情况时,我必须yarn build在本地计算机上手动运行才能查看完整日志,这不是最佳解决方案。
当我在我的机器上运行相同的yarn build命令时,我得到完整的日志:
\xe2\x9d\xaf yarn build\nyarn run v1.22.19\n$ react-scripts build\nCreating an optimized production build...\nCompiled successfully.\n\nFile sizes after gzip:\n\n 383.56 kB build/static/js/main.a23388a2.js\n 13.39 …Run Code Online (Sandbox Code Playgroud) 我在 bit-bucket 帐户下有一个存储库,该存储库有这 4 个分支:
- master
- API
- Admin
- Web
Run Code Online (Sandbox Code Playgroud)
我只有bitbucket-pipelines.yml下面的一个master branch,就像这样:
image: maven:3.5.0-jdk-7
pipelines:
branches:
API:
- step:
caches:
- maven
script:
- mvn install
Run Code Online (Sandbox Code Playgroud)
所以我希望每当 API 分支发生任何推送时都会触发这个管道,事实上除非推送到 master 分支,否则它不会发生,唯一的出路是将这个相同的文件也放在 API 分支下,虽然文档说它只有一个位于 repo root 下的副本master branch,那么我怎样才能实现这一目标呢?
如果我需要在所有分支中放置相同的管道文件,我认为它完全是嘲笑,那么任何人都可以澄清这一点吗?提前致谢!
强文本我有一个管道设置,可以在我提交到特定分支时进行自动发布。问题是我使用的 maven-release-plugin 将其更改提交到同一个存储库和分支。这会触发相同的管道并创建一个循环。
如何排除特定分支的sertain提交?
- step:
name: TEST01 - Automatic build and test
caches:
- maven
script:
# Here I would like to add a check to stop if some criteria is met like commitmessage==[maven-release-plugin] or something similar
- mvn release:clean release:prepare --batch-mode -f ggw- core/pom.xml -s ggw-core/external/settings-test01.xml
- mvn release:perform -f ggw-core/pom.xml -s ggw-core/external/settings-test01.xml -X -e
Run Code Online (Sandbox Code Playgroud) 我有一个运行良好的 bitbucket 管道脚本和一个 version.sh bash 脚本。管道将调用版本脚本,并且在 version.sh 中存在由 bitbucket 正确引用的环境变量(我在 repo 的设置中添加了变量)。
但是,我的 build.gradle 文件中现在也有变量,但是当我尝试使用gradle build.
我不断收到的错误是 could not get unknown property '$context_url' for root project 'my_project' of type org.gradle.api.Project.
变量位于 artifactory/publish 部分:
artifactory {
contextUrl = $context_url
publish {
repository {
repoKey = 'repo'
username = $artifactory_user
password = $artifactory_password
}
defaults {
publications('mavenJava')
publishArtifacts = true
publishPom = true
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在 gradle.build 文件中尝试了不同的语法,例如:
$context_url'$context_url'"$context_url"变量在本地工作,我将变量存储在我的个人 ~/gradle/gradle.properties 文件中。
不知道还有什么可以尝试的。