Github Travis CI-如何推进主分支?

Github Travis CI-如何推进主分支?,github,travis-ci,Github,Travis Ci,我有一个连接到GitHub的Travis CI项目,它试图更新GitHub repo中的内容,并将它们推回到GitHub,包括母版和gh页分支 然而,尽管我的travis ci日志文件说一切正常,但我只看到更新了gh pages分支,而没有看到主分支 我的travis.yml文件是: language: node_js node_js: stable language: python python: 3.6 # Travis-CI Caching cache: directories:

我有一个连接到GitHub的Travis CI项目,它试图更新GitHub repo中的内容,并将它们推回到GitHub,包括母版和gh页分支

然而,尽管我的travis ci日志文件说一切正常,但我只看到更新了gh pages分支,而没有看到主分支

我的travis.yml文件是:

language: node_js
node_js: stable

language: python
python: 3.6

# Travis-CI Caching
cache:
  directories:
    - node_modules
    - pip

# S: Build Lifecycle
install:
  - npm install
  - npm install -g gulp
  - python -m pip install requests
  - python -m pip install bs4
  - python -m pip install lxml

before_script:
  - cd archive_builder
  - python build_archive.py
  - cd ..

script:
  - gulp dist

after_script:
  - cd dist
  - git init
  - git config user.name "my git name"
  - git config user.email "my git email"
  - git add -A
  - git commit -m "travis -- update gh-page"
  - git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:gh-pages
  - sh ../purgeCF.sh $CF_ZONE $CF_KEY $CF_EMAIL

  - cd ..
  - git add -A
  - git commit -m "travis -- update master files"
  - git push --quiet "https://${GH_TOKEN}@${GH_REF}" HEAD:master

# E: Build LifeCycle

branches:
  only:
    - master
env:
 global:
   - GH_REF: github.com/mygitname/myprojectname.git
在这个脚本中,我首先用gulp更新和构建网站源文件,并将它们存储到dist文件夹中。然后我将dist中的内容推送到我的gh pages分支,并将其他内容推送到我的master分支

凭据存储为Travis的安全密钥,应能正常工作

为了推送dist/,我在dist/下创建了一个新的.git/并将其强制推送为new

要推送其他内容,我无法这样做,因为根存储库已包含.git文件夹,我不想丢失以前的提交。它应该会起作用


感谢您的帮助。

我发现大多数文章或答案都是关于如何部署到gh pages分支的,大多数方法对我来说都不适用,我在travis上调试了几天这个问题,我将列出关于如何在travis上推送master brach的关键步骤

e、 下面是我的文档库脚本,travis将自动更新readme.md

生成github令牌,可以参考文章

设置环境变量

GH_REF githu.com/hougonvary/docs.git您的存储库地址

GITHUB\u API\u密钥*********您的令牌在步骤1中生成

剧本

希望这能帮助您

即使@gary wang方法可行,但有一种更简单的方法可以直接推送到GitHub主分支

只需在deploy部分下添加target_branch变量,并用master分配它

关于Travis CI GitHub页面部署的文档:

.travis.yml的样本内容:

该方法已按预期进行了测试和工作

os: osx
language: node_js
cache:
  directories:
    - node_modules
node_js:
  - 'lts/*'
before_install:
  - git pull
  - brew install tree
install:
  - npm install
script:
  - npm run updateReadme
after_success:
  - git config user.email "travis@travis.org"
  - git config user.name "travis" # this email and name can be set anything you like
  - git add README.md
  - git commit --allow-empty -m "updated README.md"
  - git push https://clownvary:${GITHUB_API_KEY}@${GH_REF} HEAD:master  #clownvary is my username on github, you need to use yourself , do not use travis or others.
language: node_js
...
...
...
deploy:
  provider: pages
  skip_cleanup: true
  keep_history: true
  github_token: $github_token  # Your GitHub token set in Travis CI console
  target_branch: master        # Add this line - To push into GitHub master branch
  on:
    branch: staging            # Your GitHub repo default branch