如何在 Concourse 构建中提交对 git 的更改?

How to commit changes to git in Concourse build?

在 Java 应用程序的 Concourse 构建期间,我想:

  1. 结帐gitmaster分支
  2. 运行 mvn package
  3. 如果成功:
    • 在 Maven 的 pom.xml
    • 中增加 SNAPSHOT 版本
    • 使用 [skip ci] 提交消息前缀
    • 将其提交回 master 分支
    • 将本地分支推送到上游

除了git-resource,我还没有找到处理git的推荐方法,它只能getput资源,但不会产生新的提交。

您应该在任务中进行提交。

您可以通过创建一个任务来做到这一点,该任务将您的回购作为输入,并将修改后的回购声明为输出。从输入克隆到输出后,切换到输出文件夹,进行更改并提交。

这是一个例子pipeline.yml:

resources:
- name: some-repo
  type: git
  source:
    uri: git@github.com:myorg/project

jobs:
- name: commit-and-push
  plan:
  - get: some-repo
  - task: commit
    config:
      platform: linux
      image_resource:
        type: docker-image
        source:
          repository: concourse/buildroot
          tag: git

      inputs:
      - name: some-repo

      outputs:
      - name: some-modified-repo

      run:
        path: /bin/bash
        args:
        - -c
        - |
          set -eux

          git clone some-repo some-modified-repo

          cd some-modified-repo
          echo "new line" >> some-file.txt

          git add .

          git config --global user.name "YOUR NAME"
          git config --global user.email "YOUR EMAIL ADDRESS"

          git commit -m "Changed some-file.txt"
  - put: some-repo  
    params: {repository: some-modified-repo}