2017-08-02 9 views
1

我試圖融入我的到位桶管道自動化標籤創建 所以基本上我有一個bash腳本:到位桶管道警告:永久增加了IP地址的RSA主機密鑰

#!/bin/bash 

# retrieve branch name 
BRANCH_NAME=$(git branch | sed -n '/\* /s///p') 

# remove prefix release 
REGEXP_RELEASE="release\/" 
VERSION_BRANCH=$(echo "$BRANCH_NAME" | sed "s/$REGEXP_RELEASE//") 

echo "Current version branch is $VERSION_BRANCH" 

# retrieve the last commit on the branch 
VERSION=$(git describe --tags --match=$VERSION_BRANCH* --abbrev=0) 

# split into array 
VERSION_BITS=(${VERSION//./ }) 

#get number parts and increase last one by 1 
VNUM1=${VERSION_BITS[0]} 
VNUM2=${VERSION_BITS[1]} 
VNUM3=${VERSION_BITS[2]} 
VNUM3=$((VNUM3+1)) 

#create new tag 
NEW_TAG="$VNUM1.$VNUM2.$VNUM3" 

echo "Updating $VERSION to $NEW_TAG" 

#get current hash and see if it already has a tag 
GIT_COMMIT=`git rev-parse HEAD` 
NEEDS_TAG=`git describe --contains $GIT_COMMIT` 

#only tag if no tag already (would be better if the git describe command above could have a silent option) 
if [ -z "$NEEDS_TAG" ]; then 
    echo "Tagged with $NEW_TAG (Ignoring fatal:cannot describe - this means commit is untagged) " 
    git tag $NEW_TAG 
    git push --tags 
else 
    echo "Already a tag on this commit" 
fi 

然後我管線:

# This is a sample build configuration for Java (Maven). 
# Check our guides at https://confluence.atlassian.com/x/zd-5Mw for more examples. 
# Only use spaces to indent your .yml configuration. 
# ----- 
# You can specify a custom docker image from Docker Hub as your build environment. 
image: maven:3.3.9 

pipelines: 
    default: 
    - step: 
     caches: 
      - maven 
     script: # Modify the commands below to build your repository. 
      - mvn clean package -Denv=uat 
    branches: 
    master: 
     - step: 
      caches: 
      - maven 
      script: # Modify the commands below to build your repository. 
      - mvn clean package -Denv=uat 
      - chmod +x tag.sh 
      - ./tag.sh 

然而,當管道試圖推動我收到錯誤的標籤:

./tag.sh<1s 
+ ./tag.sh 
Current version branch is master 
Updating master-1.0.2 to master-1.0.3fatal: cannot describe '493bf0b1aef120879af57e25d63dde24ad0c7de2' 
Tagged with master-1.0.3 (Ignoring fatal:cannot describe - this means commit is untagged) 

Warning: Permanently added the RSA host key for IP address '104.192.143.3' to the list of known hosts. 
Permission denied (publickey). 
fatal: Could not read from remote repository.Please make sure you have the correct access rightsand the repository exists. 

所以我不明白的是爲什麼我得到這個問題以及如何解決這個問題。 我讀https://confluence.atlassian.com/bitbucket/use-ssh-keys-in-bitbucket-pipelines-847452940.html 但我不明白,因爲第一我沒有訪問管道遠程。隨着IP更改,我無法將其添加爲已知主機。 有沒有辦法推動我正在執行構建的回購協議?

由於標籤已被找到,回購已被克隆,這意味着我當然可以做推。

+0

所以你說SSH密鑰已經添加,但已知的主機文件沒有更新,這是造成這個錯誤? –

+0

我真的不知道。我剛剛在日誌中看到repo被克隆。該版本需要回購:)並且我能夠運行其他命令,除了推 – Geoffrey

+0

而你只推動到bitbucket? –

回答

0

REPO不包含對公用SSH密鑰或管道運行的Docker映像的引用,其中包含回購協議在其authorized_keys文件中不知道的SSH密鑰。

請確保: - Docker上的SSH密鑰Bitbucket管道映像存在且正確 - 檢查哪些密鑰有權訪問bitbucket存儲庫以確保授予正確的公共密鑰訪問權限。

該錯誤通常是SSH密鑰不匹配的問題。我已經多次遇到它。

要檢查的其他內容: - 如果您配置了公鑰,請確保您使用CAT命令(如果在nix上運行),因爲從編輯器複製/粘貼不可靠。 - 如果從別處複製/粘貼檢查以確保公鑰在