2017-12-10 12 views
0

travis.yml에서 enviromnet 변수를 사용하려고했지만 빈 문자열 만 얻을 수 있습니다.Travis CI : travis.yml에서 저장소 변수를 사용하는 방법

after_success: 
    - "curl -H 'Content-Type: application/json;' -X POST -d '{\"api-key\": $DEPLOY_KEY, \"branch\": $TRAVIS_BRANCH}' https://some.where/deploy" 

가 내 키를 반환 $ DEPLOY_KEY을 예상, 대신 그것은 단지 빈 문자열을 반환 : 내 저장소 설정에 대한 몇 가지 값 저장소 변수 DEPLOY_KEY을 추가 한, 지금은 이런 식으로 액세스하려고 , Travis는 빌드를 실행할 때 export DEPLOY_KEY=[secure]을 수행합니다.
내가 내 travis.yml이 뭔가를 추가 할 필요가 있다고 생각 :

env: 
    - secret: "..." 

하지만 내 문제가 무엇인가 "..."정확히? 내 저장소 공개 키입니까? docs 내 travis.yml 내에서 저장소 변수를 사용하는 방법에 대한 정보를 찾을 수 없습니다.
일부 솔루션은 암호화 된 변수를 대신 사용할 수 있다고 제안했으나 처음에는 리포지토리 변수를 설정하는 것이 왜 필요합니까?

답변

2

설명서에 https://docs.travis-ci.com/user/encryption-keys/은 암호화 된 환경 변수를 사용하는 방법을 보여줍니다.

"..."에는 환경 변수의 이름과 환경 변수의 값이 모두 들어 있습니다. 해당 비밀 값을 생성하려면 travis CLI 도구를 사용해야합니다. 그 비밀을 생성하는 명령은 travis encrypt SOMEVAR="secretvalue"

+0

Thx와 비슷하지만 암호화 된 env vars가 아니라 저장소 vars를 사용하고 싶습니다. 워드 프로세서에서 약간 혼란스러워서 yml에'env'를 추가해야한다고 생각했지만 예상대로 yml에 정의하지 않고 $ DEPLOY_KEY를 사용할 수 있습니다. after_success : curl -H 'Content-Type : application/json;에서 올바른 컬 호출. -X POST -d "{\\\"api-key \\\ ": \\\"$ DEPLOY_KEY \\\ ", \\\"branch \\\ ": \\\"$ TRAVIS_BRANCH \\\ " } "https : //some.where/deploy"'. -d 다음에 큰 따옴표를 사용하고 큰 따옴표에는 이스케이프 처리 된 백 슬래시를 사용하십시오. JSON이 형편 없었기 때문에 내 서버는 null (embarrasing) – kfx9