1

我想设置一个自动语义版本控制,以便每个 CI 构建都会产生一个递增的补丁部分,例如...在 Bitbucket Pipelines 上进行设置。

我的理解是 ajoberstar/reckon 使用 git 标签工作,这些标签必须被推送到原点。使用以下 bitbucket-pipelines.yml 配置时会失败。

options:
  docker: true

pipelines:
  branches:
    master:
      - step:
          name: Build
          image: openjdk:8-jdk
          services:
            - docker
          caches:
            - docker
            - gradle
            - gradlewrapper
          size: 2x
          script:
            - ci/dependencies.sh
            - ci/credentials.sh
            - git remote set-url origin ${BITBUCKET_GIT_HTTP_ORIGIN}
            - ./gradlew build reckonTagPush publish -Preckon.scope=patch -Preckon.stage=final

错误消息说:

Execution failed for task ':reckonTagPush'.
> org.eclipse.jgit.api.errors.TransportException: http://bitbucket.org/billtech/sync-manager: Authentication is required but no CredentialsProvider has been registered

根据:https ://community.atlassian.com/t5/Bitbucket-Pipelines-articles/Pushing-back-to-your-repository/ba-p/958407

配置备用 Git 客户端 如果您不使用 Pipelines 提供的 git CLI,我们建议使用 ${BITBUCKET_GIT_HTTP_ORIGIN} 变量配置源。如果使用 http 源,您还需要将 git 客户端配置为使用代理。代理网址是:http://localhost:29418

我需要使用 Pipelines 提供的 git CLI 或为 reckon 使用的 git 客户端设置代理。我无法让任何一个工作,所以任何帮助表示赞赏。

4

2 回答 2

2

我最终拆分了以下内容:

- ./gradlew build reckonTagPush publish -Preckon.scope=patch -Preckon.stage=final

进入:

- ./gradlew build reckonTagCreate publish -Preckon.scope=patch -Preckon.stage=snapshot
- git push --tags

这样,reckon 仅用于创建标签,然后使用 git 命令推送它。git 命令由 bitbucket 管道自动配置为推送回同一个 repo。https://confluence.atlassian.com/bitbucket/push-back-to-your-repository-962352710.html

于 2020-03-20T08:46:06.653 回答
1

您需要通过设置此处列出的两个环境变量或系统属性来提供正确的凭据:http: //ajoberstar.org/grgit/grgit-authentication-2.html

使用系统属性的示例:

./gradlew build reckonTagPush publish -Preckon.scope=patch -Preckon.stage=final -Dorg.ajoberstar.grgit.auth.username=someone -Dorg.ajoberstar.grgit.auth.password=mysecretpassword
于 2019-08-02T04:49:57.463 回答