Travis CI 成功后写入 GitHub Repo 中的文件

Travis CI After Success Write to a File in GitHub Repo

我在我使用 Travis 的项目之一中开始编写以下脚本 CI。

after_success:
  - MESSAGE=$(git log --format=%B -n 1 $TRAVIS_BUILD_NUMBER)
  - git clone git://${GH_REPO}
  - git config user.email "travis@travis.org"
  - git config user.name "travis"
  - git add .
  - git commit --allow-empty -m "updated README.md"
  - git push https://joesan:${GITHUB_API_KEY}@${GH_REPO} HEAD:master

所以对于上面的脚本,我想做以下事情:

  1. cd 进入包含名为 deployment-version.txt
  2. 的文件的目录(在 git 克隆之后)
  3. 将 deployment-version.txt 的内容替换为我从 TRAVIS_BUILD_VERSION 变量
  4. 获得的新版本号

所以我的部署-version.txt 具有以下 ocntent:

plant-simulator-version=512

所以有了这个成功后的脚本,假设 TRAVIS_BUILD_VERSION 是 513,那么我期望

plant-simulator-version=513

作为我的新内容,我希望将此文件推送到存储库中!有什么线索可以让我做到这一点吗?

我设法通过编写一个只包含一行文本的新文件来做到这一点。这是暂时的好吧!因此,我将此作为解决方案发布:

after_success:
  - MESSAGE=$(git log --format=%B -n 1 $TRAVIS_BUILD_NUMBER)
  - git clone https://${GH_REPO}
  - cd ${PLANT_SIMULATOR_DEPLOYMENT_REPO_NAME}
  - rm deployment-version.txt    # Remove the file
  - touch deployment-version.txt # Add the file
  - echo plant-simulator.version=${TRAVIS_BUILD_NUMBER} >> deployment-version.txt
  - git config user.email "travis@travis.org"
  - git config user.name ${USER} # this email and name can be set anything you like
  - git add .
  - git commit --allow-empty -m "release version for deployment  tagged with version $TRAVIS_BUILD_NUMBER"
  - git push https://${GITHUB_API_KEY}@${GH_REPO} HEAD:master