我正在尝试使用 terraform v0.14.3 部署一个 bitbucket 管道以在谷歌云中创建资源。运行 terraform 命令后,管道失败并显示以下错误:
Error: Invalid legacy provider address
This configuration or its associated state refers to the unqualified provider
"google".
You must complete the Terraform 0.13 upgrade process before upgrading to later
versions.
Run Code Online (Sandbox Code Playgroud)
我们将 terraform 的本地版本更新为 v.0.13.0,然后运行:terraform 0.13upgrade如本指南中所述:https ://www.terraform.io/upgrade-guides/0-13.html 。生成的 versions.tf 文件需要 terraform 版本 >=0.13,我们所需的提供程序块现在如下所示:
terraform {
backend "gcs" {
bucket = "some-bucket"
prefix = "terraform/state"
credentials = "key.json" #this is just a bitbucket pipeline variable
}
required_providers {
google = { …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Android的Bitbucket管道中设置持续集成(CI).
我使用Android Studio 2.1.1创建了一个示例空白活动.
使用Pipelines我正在使用uber/android-build-environment Docker容器,它可以很好地创建环境.这是我的bitbucket-pipelines.yml
image: uber/android-build-environment:latest
pipelines:
default:
- step:
script:
- echo y | android update sdk --filter "extra-android-m2repository" --no-ui -a # Grab the Android Support Repo which isn't included in the container
- ./gradlew assembleDebug
Run Code Online (Sandbox Code Playgroud)
由于uber/android-build-environment期望像这样运行,因此需要进行一些更改:
docker run -i -v $PWD:/project -t uber/android-build-environment /bin/bash /project/ci/build.sh
Run Code Online (Sandbox Code Playgroud)
例如,源不会复制到卷/project,而是管道将Bitbucket仓库的内容复制到容器的工作目录:
/opt/atlassian/bitbucketci/agent/build
Run Code Online (Sandbox Code Playgroud)
当./gradlew assembleDebug运行出现以下错误:
...
FAILURE: Build failed with an exception.
* What went wrong:
Could not create service of type …Run Code Online (Sandbox Code Playgroud) continuous-integration android bitbucket docker bitbucket-pipelines
我是Bitbucket管道(Beta)和docker的新手.没有以前的CI集成经验
我跟着这个问题,但对初学者没有明确的描述
我正在尝试使用docker容器在Android项目的Bitbucket管道中设置持续集成(CI)
我想在这个容器中使用我以前的android项目
我遵循的步骤
第1步.已安装的Docker软件工具.成功安装.
第2步.成功创建虚拟机
第3步.从Kitematic(Beta)Uber/Android-Build-Environment创建容器
第4步.使用成功构建项目
$ eval "$(docker-machine env default)"
$ docker build -t uber/android-build-environment .
Run Code Online (Sandbox Code Playgroud)
第5步.改变直接工作到android项目
步骤6.运行此命令时出现问题
docker run -i -v $PWD:/project -t uber/android-build-environment /bin/bash /project/ci/build.sh
Run Code Online (Sandbox Code Playgroud)
错误来了:
/bin/bash: /project/ci/build.sh: No such file or directory
Docker机器细节
docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default - virtualbox Running tcp://192.168.99.100:2376 v1.12.1
Run Code Online (Sandbox Code Playgroud)
Docker服务
docker service ls
Run Code Online (Sandbox Code Playgroud)
Docker Machine ENV
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.XX.XXX:XXXX"
export …Run Code Online (Sandbox Code Playgroud) continuous-integration android continuous-deployment bitbucket-pipelines
是否可以在bitbucket管道中组合多个具有相同步骤的分支?
例如:我工作的团队使用两个名称之一作为他们的评论分支,"rev"或"staging".无论哪种方式,都使用相同的步骤发布到我们的审查服务器.现在,分支被单独调出.
pipelines:
branches:
rev:
steps:
- echo 'step'
staging:
steps:
- echo 'step'
Run Code Online (Sandbox Code Playgroud)
但它可能是这样的
pipelines:
branches:
rev|staging:
steps:
- echo 'step'
Run Code Online (Sandbox Code Playgroud) 我一直试图围绕如何利用BitBucket的Pipelines将我的(Laravel)应用程序自动部署到Vultr Server实例上.
我手动执行以下步骤,我试图自动复制:
commit我的变化,并push以回购到位桶ssh root@ipaddresscd到正确的目录:cd /var/www/html/app/pull我从我的BitBucket回购:git pull origin mastercomposer install,php artisan migrate等等.exit我的理解是你可以使用Pipelines自动化这个,这是真的吗?
到目前为止,我已经为管道和我的服务器设置了一个SSH密钥对,因此我的服务器authorized_keys文件包含来自BitBucket Pipelines的公钥.
我的管道文件bitbucket-pipelines.yml如下:
image: atlassian/default-image:latest
pipelines:
default:
- step:
deployment: staging
caches:
- composer
script:
- ssh root@ipaddress
- cd /var/www/html/app/
- git pull origin master
- php artisan down
- composer install --no-dev --prefer-dist
- php artisan cache:clear
- php artisan …Run Code Online (Sandbox Code Playgroud) 问题:在自动构建中
执行rake assets:precompile任务时,我的RAM耗尽.是否有任何策略可以执行增量预编译,或以其他方式执行预编译阶段而不消耗尽可能多的RAM?看起来该任务比构建的基线消耗大约850 MB.
上下文:
我正在尝试获得一个Docker容器Bitbucket Pipelines版本的自动构建.应用程序堆栈包括Rails 4.2.7,PostgreSQL 9.3,Java 8,Maven 3.3.9和JRuby 9.1.2.0.我尝试使用Debian Jessie创建基于Alpine Linux的图像,但它在基线内存方面没有太大差别.
ruby ruby-on-rails ruby-on-rails-4 docker bitbucket-pipelines
是否可以在分支之间共享步骤并仍然运行分支特定步骤?例如,开发和发布分支具有相同的构建过程,但上载到单独的S3存储桶.
pipelines:
default:
- step:
script:
- cd source
- npm install
- npm build
develop:
- step:
script:
- s3cmd put --config s3cmd.cfg ./build s3://develop
staging:
- step:
script:
- s3cmd put --config s3cmd.cfg ./build s3://staging
Run Code Online (Sandbox Code Playgroud)
我看到这篇文章(Bitbucket Pipelines - 具有相同步骤的多个分支)但它是相同的步骤.
我正在做的是尝试让 bitbucket pipline 做我的 iOS CD,我包含了 docker fastlanetools/fastlane 镜像,在我拉取和运行 docker 镜像的步骤中一切正常,我能够通过调用 fastlane beta 来让 fastlane 命令工作在步骤中。
发生的事情是 fastlane 退出时出现错误 Apple Generic versioning is not enabled in this project。
我按照苹果文档从这里从 xCode 启用它 我将项目中的所有目标更改为使用 App Generic 但仍然无法正常工作
我有这个管道文件来对我的项目进行单元测试:
image: jameslin/python-test
pipelines:
default:
- step:
script:
- service mysql start
- pip install -r requirements/test.txt
- export DJANGO_CONFIGURATION=Test
- python manage.py test
Run Code Online (Sandbox Code Playgroud)
但是可以切换到另一个Docker镜像进行部署吗?
image: jameslin/python-deploy
pipelines:
default:
- step:
script:
- ansible-playbook deploy
Run Code Online (Sandbox Code Playgroud)
我似乎无法找到任何说明是或否的文件.
我在我的bitbucket-pipelines.yml文件中使用以下代码远程deply代码到登台服务器.
image: php:7.1.1
pipelines:
default:
- step:
script:
# install ssh
- apt-get update && apt-get install -y openssh-client
# get the latest code
- ssh user@domain.com -F ~/.ssh/config "cd /path/to/code && git pull"
# update composer
- ssh user@domain.com -F ~/.ssh/config "cd /path/to/code && composer update --no-scripts"
# optimise files
- ssh user@domain.com -F ~/.ssh/config "cd /path/to/code && php artisan optimize"
Run Code Online (Sandbox Code Playgroud)
这一切都有效,除了每次运行管道时,都会下载并安装ssh客户端(为构建时间增加约30秒).有没有办法可以缓存这一步?
我怎样才能缓存这个apt-get步骤?
例如,像这样的工作(或者需要进行哪些更改才能完成以下工作):
pipelines:
default:
- step:
caches:
- aptget
script:
- apt-get update …Run Code Online (Sandbox Code Playgroud)