젠킨스 CI에서 레일즈+Postgres 테스트하기


젠킨스는 오픈소스 지속적 통합관리(Continuous Integration) 도구로 자바기반이다.

소스를 git이나 svn 같은 형상관리(CM : configuration management) 서버에 올리면, 그때마다 자동으로 테스트도 하고, 빌드도하고, 작업이 잘 끝났다고 알림도 주는 도구다.

자바기반이기 때문에 다른 언어로 개발된 애플리케이션을 젠킨스에서 테스트 하려면 따로 환경 설정이 필요하다. 이번엔 루비 온 레일즈로 만들어진 애플리케이션 테스트를위해 환경을 설정해 보았다.

레일즈 테스트용 젠킨스 도커 설정은 https://github.com/dorajistyle/jenkins-rails-postgres-docker 에서 볼 수 있다.

우선 아래 명령어로 소스를 다운 받는다.

git clone https://github.com/dorajistyle/jenkins-rails-postgres-docker.git


그리고 아래 명렁어로 도커 컨테이너를 빌드하면 젠킨스가 실행된다. docker-compose.yml에 나와있듯이 docker compose를 이용해서 postgres와 redis를 jenkins와 함께 실행하도록 하였다.

docker-compose up


젠킨스에서 레일즈를 테스트하기 위한 순서는 다음과 같다.

  1. 터미널에서 admin암호를 복사해서 젠킨스에 붙여 넣는다.
  2. 유저 정보를 입력해서 젠킨스를 시작한다.
  3. Multi-configuration 프로젝트를 만든다.
  4. Source Code Management 에서 git를 선택한다.
  5. 아래 url을 Repository URL 필드에 붙여넣는다.
    https://github.com/dorajistyle/rails-postgres-sample-for-jenkins

    만약 오픈소스가 아닌 프로젝트를 테스트 하려면, Credential을 추가해 줘야 한다.
    Add를 눌러 Username and password방식을 선택하고, username에는 github ID를 넣고 password에는 https://github.com/settings/tokens에서 생성한 토큰을 넣으면 된다.
  6. Build Environment에서 rbenv build wrapper체크박스를 선택한다.
    The Ruby version에는 2.3.1을 넣고,
    Preinstall gem list에는 bundler,rake,execjs를 넣는다.
  7. Add build step 샐랙트박스에서 Execute shell를 선택한다.
    Command필드에 아래 명령어를 붙여 넣는다.
    bash jenkins-test.sh
  8. 만약 빌드가 될 때 마다 슬랙으로 알림을 주고 싶다면, 플러그인을 설정해줘야 한다.
    우선 github 프로젝트의 설정에 젠킨스 플러그인을 추가해준다.
    Settings--> Webhooks&Services-->Service--> Add Services--> Choose "Jenkins (GitHub plugin)"
    에서 추가하고 아래 주소를 넣어준다.
    http:///github-webhook/
    https://.slack.com/apps/A0F7VRFKN-jenkins-ci 에서 Jenkins CI 앱 설정을 해준다.
    Post-build Actions의 Add post-build action 선택상자에서 Slack Notifications를 선택하고 환경 정보를 넣어준다.
    토큰은 슬랙 앱 설정에 나온 토큰을 넣어주면 된다.
  9. 설정을 저장하고 프로젝트의 사이드메뉴에서 Build Now를 클릭하여 테스트한다.

Docker compose로 띄운 
젠킨스에서 레일즈 테스트가 잘 돈다.

* rails 설정의 database.yml에는 docker-compose로 설정한 컨테이너 이름(예제 : dorajistyle-postgres)을 쓰고,
config.yml의 redis설정에도 마찬가지로 컨테이너 이름(예제 : dorajistyle-redis)를 써야 한다.


* git fetch 타임아웃 발생시 해결
Source Code Management > Git > Additional Behaviors > Advanced checkout behaviors / Advanced clone behaviors > Timeout (in minutes)



by


Tags : , , , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

 

구글,키워드,검색,google,keyword,search,test,검색,실험


포스트
태그로 검색하여 연관글을 보여주는 Google AJAX Search 적용을 위해, 최상의 검색옵션이 필요 했습니다.

저에게 필요한 검색 옵션은 이것입니다.

태그 ∩ 포스트 > 0

포스트에 적어도 한개의 태그가 포함되어야 하는것이죠.

태그를 키워드로 하여 아래의 방법으로 실험을 했습니다.

Open english content




1. 공백으로 키워드 구분 (Space delimited Keyword) [검색결과(Search result) = 0]

 family hollywood LA Los Angeles manhatan beach north america travel United States universal studio 가족 로스엔젤레스 맨하튼비치 미국 북미 여행 유니버설스튜디오 헐리우드site:dorajistyle.pe.kr

    아무것도 나오지 않습니다. (Result not found)


2. OR로 키워드 구분 (OR delimited Keyword) [검색결과(Search result) ≒ 3]

family OR hollywood OR LA OR Los Angeles OR manhatan beach OR north america OR travel OR United States OR universal studio OR 가족 OR 로스엔젤레스 OR 맨하튼비치 OR 미국 OR 북미 OR 여행 OR 유니버설스튜디오 OR 헐리우드 site:dorajistyle.pe.kr

    고급 검색에서 '다음 단어 적어도 하나 포함'을 이용하여 검색을 하면 같은 결과가 나옵니다.


3. 작은 따옴표와 쉼표로 키워드 구분 (Single quotation marks and comma
delimited Keyword) [검색결과(Search result)  = 0]

'family','hollywood','LA','Los Angeles','manhatan beach','north america','travel','United States','universal studio','가족','로스엔젤레스','맨하튼비치','미국','북미','여행','유니버설스튜디오','헐리우드' site:dorajistyle.pe.kr

    아무것도 나오지 않습니다. (Result not found)


4. 큰 따옴표와 쉼표로 키워드 구분 (Double quotation marks and comma delimited Keyword) [검색결과(Search result) ≒ 1]

"family","hollywood","LA","Los Angeles","manhatan beach","north america","travel","United States","universal studio","가족","로스엔젤레스","맨하튼비치","미국","북미","여행","유니버설스튜디오","헐리우드" site:dorajistyle.pe.kr

    태그가 모두 포함되어있는 글이 검색되었습니다. (One result that have )


5. 작은 따옴표와 OR로 키워드 구분 (Single quotation mark and OR delimited Keyword) [검색결과(Search result) ≒ 3]

'family' OR 'hollywood' OR 'LA' OR 'Los Angeles' OR 'manhatan beach' OR 'north america' OR 'travel' OR 'United States' OR 'universal studio' OR '가족' OR '로스엔젤레스' OR '맨하튼비치' OR '미국' OR '북미' OR '여행' OR '유니버설스튜디오' OR '헐리우드' site:dorajistyle.pe.kr

    고급 검색에서 '다음 단어 적어도 하나 포함'을 이용하여 검색을 하면 같은 결과가 나옵니다.


6. 큰 따옴표와 OR로 키워드 구분 (Double quotation mark and OR delimited Keyword) [검색결과(Search result) ≒ 30+]

"family" OR "hollywood" OR "LA" OR "Los Angeles" OR "manhatan beach" OR "north america" OR "travel" OR "United States" OR "universal studio" OR "가족" OR "로스엔젤레스" OR "맨하튼비치" OR "미국" OR "북미" OR "여행" OR "유니버설스튜디오" OR "헐리우드" site:dorajistyle.pe.kr

    드디어 원하는 결과를 얻었습니다. 사실 한국어 구글이 아닌 영문 구글 사이트에서는 '다음 단어 적어도 하나 포함' 사이에 친절하게 OR 이 들어있고, 자동으로 큰 따옴표를 추가해 줍니다.
   (You can get same result at Advanced Search's one or more of these words option)




결론은 큰 따옴표로 "키워드" 를 묶어서 검색을 하는 것이 답입니다.

(Wrap "Keywords" with double quotation is best way to search.)




by


Tags : , , , , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.