내 프로젝트 중 하나에 travis-ci 를 사용하고 싶습니다 .
프로젝트는 API 래퍼이므로 대부분의 테스트는 비밀 API 키 사용에 의존합니다. 로컬에서 테스트하기 위해 환경 변수로 저장합니다. Travis에서 이러한 키를 안전하게 사용하는 방법은 무엇입니까?
답변:
Travis에는 환경 변수를 암호화하는 기능이 있습니다 ( "Encrypting environment variables" ). 이는 비밀 API 키를 보호하는 데 사용할 수 있습니다. Heroku API 키에 성공적으로 사용했습니다.
travis gem을 설치하고 원하는 문자열을 암호화 한 다음 암호화 된 문자열을 .travis.yml
. 암호화는 하나의 저장소에만 유효합니다. 이 travis
명령은 리포지토리에 대한 공개 키를 가져온 다음 빌드 중에 문자열을 해독 할 수 있습니다.
gem install --user travis
travis encrypt MY_SECRET_ENV=super_secret -r my_username/my_repo
그러면 다음과 같은 출력이 제공됩니다.
Please add the following to your .travis.yml file:
secure: "OrEeqU0z6GJdC6Sx/XI7AMiQ8NM9GwPpZkVDq6cBHcD6OlSppkSwm6JvopTR\newLDTdtbk/dxKurUzwTeRbplIEe9DiyVDCzEiJGfgfq7woh+GRo+q6+UIWLE\n3nowpI9AzXt7iBhoKhV9lJ1MROrnn4DnlKxAEUlHTDi4Wk8Ei/g="
travis encrypt [args..] [options]
. 즉, travis encrypt MY_SECRET_ENV=super_secret -r my_username/my_repo
. 옵션을 먼저 지정하고 암호화 할 데이터를 마지막으로 지정하면 경고가 표시됩니다.
--add env.global
을 사용하면 travis
.travis.yml이 자동으로 수정됩니다.
다른 API 키 세트를 사용하고 동일한 방식으로 수행하십시오. 트래비스 박스는 빌드 실행을 위해 설정되고 빌드가 완료된 후 다시 완전히 해체됩니다. 빌드 중에 상자에 대한 루트 액세스 권한이 있으므로 원하는 모든 작업을 수행 할 수 있습니다.