我正在阅读有关如何使用 AWS CodeDeploy 直接从 BitBucket 部署代码的AWS 博客文章。大部分内容都相当简单,直到我提到了 appspec.yml 文件。我知道其目的是描述要部署的内容以及如何部署,但我不明白如何为应用程序(而不仅仅是一个简单的页面)执行此操作。根据我以前的经验,会有一系列步骤,例如
我假设我上面编写的步骤与此处详细介绍的appspec.yml 文件中的“文件”和“挂钩”部分之间存在某种相关性。不幸的是,我无法在头脑中找出两者之间的映射,我发现的每一篇博客文章、在线文档和视频几乎都只是说“你需要这个文件”并指出一个移动一个静态文件的示例并且有一个或两个钩子。我不知道如何集成部署的实际构建部分。
任何人都可以提供一个示例 appspec.yml 文件来说明完整的应用程序部署,而不是简单的复制粘贴,或者向我指出一个可以更好地解释此过程的资源吗?
我想检查我是否有最新版本的程序。我已将我的程序共享到 bitbucket.org ,并且如果我需要提取最新版本,或者我已经拥有最新版本,我希望我的 C++ 代码可以写给我。
我正在使用带有 Git 的本地 BitBucket 服务器。我正在尝试开始持续集成,因此我设置了一个本地 Jenkins 实例。目标是让 Jenkins 检查拉取请求并构建项目,然后向 BitBucket 报告结果。
在 BitBucket 中,我使用Webhook 与 Jenkins 进行 Stash,每次创建/更新拉取请求时它都会通知我的 Jenkins 实例。
在 Jenkins 中,当从上面的插件通知时,我使用Stash pullrequest 构建器插件让 Jenkins 签出 pullrequest。我已经使用了文档中的设置,即
Refspec: +refs/pull-requests/*:refs/remotes/origin/pr/*
Branch Specifier: origin/pr/${pullRequestId}/from
Run Code Online (Sandbox Code Playgroud)
差不多就可以用了...
当我在 BitBucket 中创建新的拉取请求时,Jenkins 会收到通知,检查 PR 并将结果报告回 BitBucket。到目前为止,一切都很好。
但是,当我更新 PR(即提交新代码并推送到 BitBucket)时,Jenkins 会被触发,但仍然检查 PR 中的先前提交,而不是新提交。
我做了一些调查但陷入困境。据我了解,Refspec指定我应该映射refs/remotes/origin/pr/*到refs/pull-requests/*本地。然而,当我对现有 PR 进行新提交时,BitBucket 似乎并未更新 PR 的引用,这导致 Jenkins 只能找到旧的 PR。
当我git ls-remote origin在提交并将更新推送到现有 PR 后运行时,我得到以下信息:
edf245 (new commit)... refs/heads/feature/Name-Of-My-Branch-That-I-Created-Pull-Request-From-pr
af774f (previous commit …Run Code Online (Sandbox Code Playgroud) 我正在尝试设置bitbucket-pipelines.yml文件来进行构建,然后部署反应项目。下面是我的代码。
image: node:10.15.1
pipelines:
default: # Pipelines that are triggered manually via the Bitbucket GUI
- step:
name: Build
script:
- yarn
- yarn build
- step:
name: Deploy
script:
- apt-get update
- apt-get install ncftp
- ncftpput -v -u "$FTP_USERNAME" -p "$FTP_PASSWORD" -R $FTP_HOST $FTP_SITE_ROOT_DEV build/*
- echo Finished uploading /build files to $FTP_HOST$FTP_SITE_ROOT
我得到的结果是:
+ ncftpput -v -u "$FTP_USERNAME" -p "$FTP_PASSWORD" -R $FTP_HOST $FTP_SITE_ROOT_DEV build/*
could not stat build/*: No such file or directory.
ncftpput …
我们尝试加载脚本,但出了点问题。
请确保您的网络设置允许您从以下域下载脚本:
https://aid-frontend.prod.atl-paas.net/atlassian-id/front-end/4.5.0
尝试过 Google Chrome、Firefox、Internet Explorer 也尝试过不同的 PC。
无法登录bitbucket
我尝试连接到 bitbucket 管道中的数据库并使用文档中所述的服务定义,但出现以下错误:
+ mysql -h 127.0.0.1 -u root -ptest_user_password -e "SHOW DATABASES"
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111 "Connection refused")
Run Code Online (Sandbox Code Playgroud)
这是我的bitbucket-pipelines.yaml:
image: debian:stretch
pipelines:
pull-requests:
'*':
- step:
script:
- apt-get update && apt-get install -y mysql-client
- mysql -h 127.0.0.1 -u root -ptest_user_password -e "SHOW DATABASES"
definitions:
services:
mysql:
image: mysql:5.7
variables:
MYSQL_DATABASE: 'pipelines'
MYSQL_ROOT_PASSWORD: 'test_user_password'
Run Code Online (Sandbox Code Playgroud)
有什么想法我做错了吗?
我已将代码提交到我的分支中,但没有人在其中编写任何内容。我是像往常一样先git add然后git commit -m ''然后git push还是需要做其他事情?
在我们的团队中,我们通过 JIRA 创建带有 Bitbucket 集成的分支。因此,分支被推送到 Bitbucket,然后通常由开发人员签出以进行工作。
推送到 Bitbucket 会触发 Jenkins 中分支的构建。此构建是不必要的,因为它构建已经构建的基础分支的最新提交。我们如何避免/跳过此构建?我们使用声明性管道。
我正在做一个与这个问题相同的项目。即使我使用相同的解决方案,我仍然遇到以下错误。git 最近有更新吗?或者有人有解决方案来解决它吗?
16:48:06 + git rev-parse upstream/master
16:48:06 fatal: ambiguous argument 'upstream/master': unknown revision or path not in the working tree.
16:48:06 Use '--' to separate paths from revisions, like this:
16:48:06 'git <command> [<revision>...] -- [<file>...]'
16:48:06 upstream/master
Run Code Online (Sandbox Code Playgroud) 使用java.net.http.HttpClient以下配置将请求发送到 BitBucket API:
var url = "https://bitbucket.org/api/2.0/repositories/asomov/snakeyaml/issues/377";
HttpClient client = HttpClient.newBuilder()
.followRedirects(HttpClient.Redirect.ALWAYS)
.version(HttpClient.Version.HTTP_2)
.build();
HttpRequest request = HttpRequest.newBuilder()
.GET()
.uri(URI.create(url))
.setHeader("User-Agent", "Java 11 HttpClient Bot")
.timeout(Duration.ofSeconds(5))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
Run Code Online (Sandbox Code Playgroud)
总是抛出以下异常:
java.io.IOException: /192.168.1.126:58337: GOAWAY received
at java.net.http/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:576)
at java.net.http/jdk.internal.net.http.HttpClientFacade.send(HttpClientFacade.java:119)
Caused by: java.io.IOException: /192.168.1.126:58337: GOAWAY received
at java.net.http/jdk.internal.net.http.Http2Connection.handleGoAway(Http2Connection.java:985)
at java.net.http/jdk.internal.net.http.Http2Connection.handleConnectionFrame(Http2Connection.java:853)
at java.net.http/jdk.internal.net.http.Http2Connection.processFrame(Http2Connection.java:724)
at java.net.http/jdk.internal.net.http.frame.FramesDecoder.decode(FramesDecoder.java:155)
at java.net.http/jdk.internal.net.http.Http2Connection$FramesController.processReceivedData(Http2Connection.java:232)
at java.net.http/jdk.internal.net.http.Http2Connection.asyncReceive(Http2Connection.java:649)
at java.net.http/jdk.internal.net.http.Http2Connection$Http2TubeSubscriber.processQueue(Http2Connection.java:1275)
at java.net.http/jdk.internal.net.http.common.SequentialScheduler$SynchronizedRestartableTask.run(SequentialScheduler.java:175)
at java.net.http/jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask.run(SequentialScheduler.java:147)
at java.net.http/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(SequentialScheduler.java:198)
at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:271)
at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:224)
at java.net.http/jdk.internal.net.http.Http2Connection$Http2TubeSubscriber.runOrSchedule(Http2Connection.java:1293)
at java.net.http/jdk.internal.net.http.Http2Connection$Http2TubeSubscriber.onNext(Http2Connection.java:1319)
at java.net.http/jdk.internal.net.http.Http2Connection$Http2TubeSubscriber.onNext(Http2Connection.java:1253)
at …Run Code Online (Sandbox Code Playgroud)