멘도쿠사이에서 Jenkins의 직업에 SVN 커밋 한 이야기

3621 단어 svnJenkins
나는 게으른다.
doma-gen을 사용하여 Dao를 자동 생성하고 있습니다만, 개발 서버의 DB에 변경이 들어갈 때마다 자동 생성을 실시하는 것은 인간의 일이 아닐 것이라고 생각해 Jenkins 아저씨에게 하게 했습니다 메모.
잘 읽고, Jenkins에서 여러 가지를 할 수 있다고 생각합니다.

환경


  • 개발 서버 OS: Linux
  • 구성 관리: SVN
  • 프로젝트 관리: maven
  • Jenkins 버전: 2.46
  • doma-gen 실행 방법:ant 플러그인

  • Jenkins 설정



    다음 설정을 합니다.
    1. 소스 코드 관리
    커밋할 SVN 리포지토리를 지정합니다.

    2. 빌드 트리거
    이번에 특히 훅 할 수 있는 트리거가 없기 때문에, 하루 중 1시간마다 같은 정의로 하고 있습니다. 매 시간마다 최신화하면 충분했습니다.

    3. 전처리
    (로컬 환경과 서버 환경에서 SVN 버전이 다른 경우) 체크 아웃 한 작업 복사본의 버전을 맞추기 위해 "svn upgrade"를 수행합니다.

    4. 빌드
    maven의 antrun으로 doma-gen을 킥합니다.

    5. 후처리
    주제. 이하, 화상에 붙이고 있는 말풍선의 거리입니다만, Linux의 대화가 힘들다.
    이쪽을 참고로 했습니다 → Linux의 대화가 귀찮아? 그런 때야말로 자동화다! -expect편-


    참고



    코피페용.

    전처리
    #!/bin/bash
    
    # SVNのバージョンを合わせる。
    cd $WORKSPACE/web
    svn upgrade
    

    후처리
    #!/bin/bash
    
    svn add ./web/src/* --force
    svn status
    
    expect -c "
    set timeout 10
    spawn env LANG=C /usr/bin/svn commit -m \"commit Comment\" --username \"jenkins\" --password \"password\"
    expect \"(R)eject, accept (t)emporarily or accept (p)ermanently?\"
    send \"p\n\"
    expect \"Store password unencrypted (yes/no)?\"
    send \"yes\n\"
    expect \"$\"
    exit 0
    "
    

    요약



    하고 싶은 일은 하지 않고, 쉘이라든지 쓰여져 쓰거나 해도 좋다고 생각합니다만, 「SVN 체크아웃 해―, maven 실행해―, 커밋 해―, 그것을 스케줄링 해―」,라고 말한다 세세한 일련의 작업을 1화면으로 정리해 할 수 있었으므로, 이번 하고 싶은 것을 하기에는 제일 편했습니다.
    약간의 "쉘 실행 프레임 워크"적인 Jenkins를 사용하는 방법이었습니다.

    좋은 웹페이지 즐겨찾기