我有一个关于Github的Javadoc评论的大型Java项目。 Travis CI与之相关联。成功之后,我想生成项目的文档并将其推送到名为“doc”的分支上!
在Travis CI成功构建后启动了一个bash脚本:
#!/usr/bin/env bash
# If error, return 0
set -e
# Repo
REPOSITORY="git@github.com:xxx/yyy"
# Clone repo to work in (repo_clone dir)
git clone ${REPOSITORY} repo_clone
cd repo_clone
# Go into doc branch, create it if not exist (first time only)
git checkout doc || git checkout --orphan doc
git config user.name "Travis CI"
git config user.email "doc@backtothefuture.go"
# Generation of doc
javadoc -private -sourcepath "src/main/java:src/main/ressources" \
-d doc \
marche.traitement.exceptions \
marche.traitement.label \
marche.traitement.marche \
marche.traitement.participant \
marche.traitement.production \
marche.traitement.produits
# Add new dir (all dir but only doc/ is impacted
git add .
git commit -m "There is the doc Marty !"
git remote add origin ${REPOSITORY}
# Push
git push origin doc
但有时候我有这个错误
fatal: remote origin already exists.
有时这一个:
error: src refspec doc does not match any.
error: failed to push some refs to 'git@github.com:GeeksdelaCave/aidons-les-fermiers.git'
取决于未成年人的适应性。
如何解决?
答案 0 :(得分:0)
我不会测试这个,但我认为这会奏效。如果checkout
分支已存在于遥控器上,则第一个push
和第一个doc
会出错,但没有结果:
...
git checkout -b doc || git checkout doc
# Add new dir (all dir but only doc/ is impacted
git add .
git commit -m "There is the doc Marty !"
git push -u origin doc
git push
答案 1 :(得分:0)
克隆存储库时会自动设置origin远程。所以
之后git clone ${REPOSITORY} repo_clone
您已经有一个名为origin
的远程指向git@github.com:xxx/yyy
。这解释了第一个错误。
答案 2 :(得分:0)
我有一个执行此操作的脚本。 您可以找到我的示例here
可以在此处找到原始代码:
#!/bin/bash
# Source of file: http://benlimmer.com/2013/12/26/automatically-publish-javadoc-to-gh-pages-with-travis-ci/
if [ "$TRAVIS_REPO_SLUG" == "WPIRoboticsProjects/GRIP" ] && [ "$TRAVIS_JDK_VERSION" == "oraclejdk8" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_BRANCH" == "master" ] && [[ "$TRAVIS_OS_NAME" != "osx" ]]; then
echo -e "Generating javadoc...\n"
./gradlew aggregateJavadocs
echo -e "Publishing javadoc...\n"
cp -R build/docs/javadoc $HOME/javadoc-latest
cd $HOME
git config --global user.email "travis@travis-ci.org"
git config --global user.name "travis-ci"
git clone --quiet --branch=gh-pages https://${GH_TOKEN}@github.com/WPIRoboticsProjects/grip gh-pages #> /dev/null
cd gh-pages
git rm -rf ./javadoc
cp -Rf $HOME/javadoc-latest ./javadoc
git add -f .
git commit -m "Lastest javadoc on successful travis build $TRAVIS_BUILD_NUMBER auto-pushed to gh-pages"
git push -fq origin gh-pages #> /dev/null
echo -e "Published Javadoc to gh-pages.\n"
fi