我有一个连接到Github的travis-ci项目,该项目试图更新Github存储库中的内容并将其推回到Github(包括master和gh-page分支)中。
但是,尽管我的travis-ci日志文件说一切正常,但我只看到gh-pages分支已更新,但看不到master分支。
我的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 /”,并强制将其推送为新的。
要推送其他所有内容,我无法完成,因为根存储库已经包含“ .git”文件夹,并且我不想丢失以前的提交。应该可以。
感谢帮助。
答案 0 :(得分:2)
即使 @gary wang 方法有效,也有很多更简单的方法可以直接推入GitHub master分支。
只需在部署部分下添加 target_branch 变量,然后将其分配给 master 。
有关Travis CI GitHub页面部署的文档:Documentation page
.travis.yml 的内容示例:
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
此方法已经过测试,可以按预期工作。
答案 1 :(得分:0)
我发现大多数文章或答案都在谈论如何部署到gh-pages分支,并且大多数方法都不适合我,我将在travis上调试此问题几天,我将列出如何在travis上掌握主菜单的关键步骤
例如下面是我的文档存储库脚本,travis会自动更新readme.md。
生成github令牌,您可以参考文章https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/
设置环境变量
GH_REF githu.com/clownvary/docs.git
您的存储库地址
GITHUB_API_KEY ***********
您在第1步中生成的令牌
脚本
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.
希望这可以为您提供帮助