【问题标题】:Auto-upload generated documentation on Github在 Github 上自动上传生成的文档
【发布时间】:2017-05-18 22:58:16
【问题描述】:

我在 Github 上有一个带有 Javadoc cmets 的大型 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'

取决于未成年人的适应情况。

如何解决?

【问题讨论】:

    标签: java git bash github travis-ci


    【解决方案1】:

    我不打算对此进行测试,但我认为这会奏效。如果远程上已经存在doc 分支,则第一个checkout 和第一个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
    

    【讨论】:

      【解决方案2】:

      克隆存储库时会自动设置源远程。所以之后

      git clone ${REPOSITORY} repo_clone
      

      您已经有一个名为origin 的遥控器指向git@github.com:xxx/yyy。这解释了第一个错误。

      【讨论】:

        【解决方案3】:

        我有一个脚本可以做到这一点。 你可以找到我的例子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
        

        【讨论】:

          猜你喜欢
          • 2010-12-05
          • 2015-06-22
          • 1970-01-01
          • 1970-01-01
          • 2020-07-23
          • 1970-01-01
          • 2021-10-23
          • 1970-01-01
          • 2015-06-02
          相关资源
          最近更新 更多