github - Travis CI - 如何推入主分支?
问题描述
我有一个连接到 GitHub 的 Travis CI 项目,它尝试更新 Github 存储库中的内容并将它们推送回 GitHub,包括 master 和 gh-pages 分支。
然而,虽然我的 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 分支,并将其他所有内容推送到我的主分支。
凭据存储为 Travis 的安全密钥,并且应该可以正常工作。
为了推送“dist/”,我在“dist/”下创建了一个新的“.git/”并将其强制推送为新的。
要推送其他所有内容,我无法这样做,因为根存储库已经包含“.git”文件夹,我不想丢失以前的提交。它应该工作。
感谢帮助。
解决方案
我发现大多数文章或答案都在谈论如何部署到 gh-pages 分支,并且大多数方法对我不起作用,我在 travis 上调试了几天这个问题,我将列出有关如何推送到 master 分支的关键步骤特拉维斯
例如,下面是我的 doc 存储库脚本,travis 将自动更新 readme.md。
生成github token,可以参考文章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.
希望这可以帮到你
推荐阅读
- dart - 如何使用文本小部件设置多行文本?
- angular - 如何解决在 Angular 6 中为业力测试抛出的 [object ErrorEvent]
- themes - 将类添加到 Shopware 主题插件
- java - 什么时候使用 Reactor 处理器有意义?
- ios - 使用 CocoaPods 指定库的版本
- ios - 尝试上传 Xcode 项目时出错:请更新 Xcode 并重建您的应用
- exchangewebservices - php -ews - 空 ItemId
- react-native - 如何在本机反应中将表单数据从screen1传递到screen2?
- android - 如何在android中显示带有图像和细节的网站网址
- android - Android:定义 layout_behaviour 路径