2017-01-04 7 views
0

Githubに関するJavadocのコメントを含む大きなJavaプロジェクトがあります。そこにはTravis CIがリンクされています。成功した後、プロジェクトのドキュメントを生成し、それを "doc"というブランチにプッシュしたいと思います!Githubで生成されたドキュメントを自動アップロード

トラビスCIのビルドが成功した後に開始したbashスクリプトがあります:

#!/usr/bin/env bash 

# If error, return 0 
set -e 

# Repo 
REPOSITORY="[email protected]: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 "[email protected]" 

# 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. 

時には、この1:

error: src refspec doc does not match any. 
error: failed to push some refs to '[email protected]:GeeksdelaCave/aidons-les-fermiers.git' 

未成年者の適応に応じて。

修正方法?

答えて

0

これをテストするつもりはありませんが、これはうまくいくと思います。最初checkoutdoc分岐がすでにリモートに存在する場合、エラーを与えるpush最初、しかしなしの結果:

... 
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 
0

リポジトリをクローニングする場合、原点リモートが自動的に設定されています。だから、

git clone ${REPOSITORY} repo_clone 

した後、あなたはすでにリモート[email protected]:xxx/yyyを指すorigin呼ばれています。これは最初のエラーを説明します。

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 "[email protected]" 
    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 
関連する問題