본문 바로가기

Develop

🗣 "시리야 배포해줘" (Travis CI)

🗣 서론

우아한테크코스 마지막 프로젝트에서 안돌의 시리 배포를 봤었다. 그때 신기했던 기억이 있어서 이번 프로젝트에 시리로 배포해보는 것을 적용해보려고 한다. 하지만 이분의 블로그에는 Jenkins를 이용 했었고, Travis CI를 이용하고 있던 나는 계속해서 방법을 찾았다.

이번 글은 Travis CI 공식 문서를 참고하여 시리로 배포하는 방법을 얘기하고자 한다. 시작하기 앞서 아래 내용을 참고하자.

나는 TravisCI를 org에서 이용하고 있기 때문에 이번글은 org에서 이용한다고 가정하고 설명하려고 한다.

travis-ci.com에서 사용하는 경우는 --org 대신 --com을 입력하고, https://api.travis-ci.com에 요청해야 한다.

📌 1단계

Travis CI 명령어를 이용하여 API 토큰을 얻는다.

travis login --org //명령어 실행 후 Github 닉네임과 비밀번호를 입력
travis token --org //명령어 실행 후 토큰 저장

📌 2단계: 참고만

그림[1] - Repository

API에 POST 요청을 보낸다. 나는 hyojaekim/chatbot 레포지토리에 master 브랜치의 최신 커밋을 배포하고자 한다.

body='{"request": { "branch":"master" }}'

curl -s -X POST \
   -H "Content-Type: application/json" \
   -H "Accept: application/json" \
   -H "Travis-API-Version: 3" \
   -H "Authorization: token xxxxxx" \
   -d "$body" \
   https://api.travis-ci.org/repo/hyojaekim%2Fchatbot/requests

 

여기서 중요한 것은 2가지다.

1. xxxxxx 부분에 1단계에서 저장한 토큰을 입력한다.

  -H "Authorization: token xxxxxx" \

 

2. org인지 com인지 확인하자
hyojaekim%2Fchatbot -> 여기서 %2F으로 앞에는 이름(hyojaekim)과 레포지토리(chatbot)로 구분한다.

  https://api.travis-ci.org/repo/hyojaekim%2Fchatbot/requests

 

요청을 보내보면 정상적으로 빌드를 수행하는 것을 볼 수 있다. 하지만 우리가 원하는 것은 시리 배포다.

📌 3단계: 본격적인 단계

먼저 아이폰이라면 단축어 앱을 키고, 아래 그림을 따라해보자.

그림[2] - 단축어 생성 클릭

 

그림[3] - 동작 추가 클릭

 

그림[4] - 웹 아이콘 클릭

 

그림[5] - URL 콘텐츠 가져오기 클릭

 

그림[6] - URL, Method, Header, Body 입력하기

 

위 그림에 아래 내용들을 추가한다.

//URL
https://api.travis-ci.org/repo/hyojaekim%2Fchatbot/requests

//메소드
POST

//헤더(Key / Value)
Travis-API-Version / 3
Authorization/token xxxxxx

//본문 요청(JSON, Key / Value)
request.branch / master

그림[7] - 완성
그림[8] - 배포 완료

 

 

 

 

시리야 앱 배포해줘 · Soojin Ro

시리 응답이 웰케 애잔하냐... 배경 올해 초 젠킨스 CI 서버 구축을 처음 해봤고, 그걸 계기로 자동화에 관심이 생겨 일 년 동안 틈틈이 팀 내 배포/개발 프로세스를 개선시켜왔다. 사실 관심이 생겼다는 말은 빈약한 표현이고 나는 내가 이 정도로 의미없는 반복 작업을 싫어하는 사람인줄 몰랐다. 아무 생각없이 할 수 있는 반복 작업도 가끔씩하면 정신 건강에 좋다고 생각했었다. 하지만 개발 프로세스에 녹아있던 수작업이 하기 싫어서 어떻게든 자동화할 방법을 찾

soojin.ro

 

Travis CI Documentation

Triggering builds with API V3

docs.travis-ci.com