CircleCI를 사용하여 Git에서 공유 호스트로 배포하는 방법

인터넷에는 AWS, Firebase, Azure 등 새로운 서비스를 사용하여 완전한 연속 집적 파이프를 쉽게 만드는 방법을 설명하는 훌륭한 강좌가 가득하다.
불행하게도 Ionos(전 1and1), GoDaddy, Hostpapa 등 간단한 공유 호스트 환경에서 많은 프로젝트가 관리되고 있다.
이 호스트들은 성가가 매우 높지만, 불행하게도 다른 클라우드 서비스가 제공하는 간단한 통합을 놓쳤다.
본고는 Github 를 사용하여 BitBucket /CircleCI 에서 공유 호스트로 직접 (우리의 예에서 Ionos) 를 자동으로 배치하는 데 필요한 모든 절차를 소개할 것이다

CircleCI회사


전체 CI 라이프 사이클을 만드는 데 필요한 도구를 제공할 수 있는 많은 도구가 있습니다. 예를 들어 Jenkins, Travis 등입니다. 하지만 좋은 예시와 간단한 UI가 있기 때문에circleCI를 매우 좋아합니다.
CircleCI의 또 다른 장점은 자유롭게 찢어지는 것이다. 이것은 개인/소형 프로젝트에 충분하다.최초의 찢기는 주당 2500학점과 무제한 근무를 제공한다.
CircleCI는 Github 및 BitBucket과 쉽게 통합할 수 있으며 새로운 프로젝트를 구축하는 것은 매우 간단하다. 공식 사이트와 같이 몇 가지 절차만 거치면 된다. https://circleci.com/docs/2.0/getting-started/

CI 파이프


CircleCI의 모든 기능은 특정 저장소의 구성 yaml에 있습니다.이 파일은 배치에 필요한 모든 정보를 포함한다.우리의 경우, 우리는 출력 파이프가 완성되기 전에 다음 절차를 완성해야 한다.
  • 구성을 설정합니다.yml
  • Git FTP 설정
  • CircleCi에서 환경 변수 설정
  • 구성을 설정합니다.yml 회사


    필요한 첫 번째 단계는 설정을 하는 것입니다.yml은 우리의circleCi의 사용과 작업을 제공합니다.이 파일은 저장소 루트 디렉토리 .circleci 의 폴더에 있습니다.
    다음 파일은 CircleCI가 알아야 할 모든 내용입니다.
    version: 2
    jobs:
      deploy:
        docker:
          - image: circleci/node:8-browsers
    
        working_directory: ~/repo
    
        steps:
          - checkout
          - run: npm install
          - run: 
              name: Deploy Master Branch
              command: |
                sudo apt-get update
                sudo apt-get -qq install git-ftp
                echo "Deploying project ..."
                git ftp push --user "${username}" --passwd "${password}" ${ftp_location}
    
    
    workflows:
      version: 2
      master-deploy:
        jobs:
          - deploy:
              filters:
                branches:
                  only: master
    
    설정을 보셨다면Yaml 파일, 위의 구성은 매우 간단하지만 이제 우리가 몇 가지 부분을 토론할 때입니다.
    우선 사용할 Docker 이미지를 설정해야 합니다.예를 들어 SPA를 구축하기 위해 노드가 필요합니다. 그래서 노드 환경을 불러오고 있습니다.
        docker:
          - image: circleci/node:8-browsers
    
    
    그 다음은 우리가 일하는 절차를 정의할 때가 되었다.이것은 항목에 따라 다를 수 있다.이 경우 다음을 수행합니다.
  • 브랜치 체크 아웃(나중에 정의할 브랜치)
  • 작동npm install
  • 획득Git FTP 및 공유 호스트에 배포
  •     steps:
          - checkout
          - run: npm install
          - run: 
              name: Deploy Master Branch
              command: |
                sudo apt-get update
                sudo apt-get -qq install git-ftp
                echo "Deploying project ..."
                git ftp push --user "${username}" --passwd "${password}" ${ftp_location}
    
    마지막으로 우리의 업무 흐름을 정의할 때가 되었다.우리의 예에서, 그것은 간단하고, 단지 하나의 작업 (위에 정의된 작업), 그리고 하나의 필터가 특정 지점에서 운행한다master.
    workflows:
      version: 2
      master-deploy:
        jobs:
          - deploy:
              filters:
                branches:
                  only: master
    

    Git FTP 설치


    공유 호스트에 사이트를 배포하는 가장 간단한 방법은 Git FTP를 사용하는 것입니다.이 패키지는 ftp를 통해git 저장소를 관리하고 배치할 수 있도록 합니다.
    이것은 일반 FTP와 달리 지난번 배치 이후 변경된 파일만 업로드하면 지점과 제출을 구분할 수 있다.CircleCI 워크플로우에서 사용하기 전에 로컬에서 초기화하는 것이 좋습니다.이 단계는 필수적이지 않지만, 내 경험에 따르면, 전체적인 명령과 설정을 더욱 쉽게 할 수 있다.
    공식 사이트 <a href="https://github.com/git-ftp/git-ftp">https://github.com/git-ftp/git-ftp</a> 에서 Git FTP 에 대한 설명을 받을 수 있습니다.
    GIT FTP의 3가지 이점은 다음과 같습니다.
  • Init: 모든 파일을 FTP에 업로드하고 첫 번째 배포 해시를 기록합니다.
  • Catchup: 모든 파일을 업로드했다고 가정합니다.이 명령을 사용하면 현재 업데이트 제출 .git-ftp.log (기존 프로젝트인 경우 유용)
  • 을 사용합니다.
  • push: 이 명령은 새 파일을 생산 환경으로 보내는 데 사용됩니다.
  • 위에서 설명한 바와 같이, 사용자의 상황(새 항목 또는 기존 항목)에 따라 다음 두 명령 중 하나를 사용해야 할 수 있습니다.git ftp init --user "MyUsername" --passwd "MyPassword" ftp.path.com/public_html git ftp catchup --user "MyUsername" --passwd "MyPassword" ftp.path.com/public_html그 다음에 저희 Git FTP 는 사용할 수 있습니다. 따라서circleCi 환경 변수에 위에서 사용한 정보를 설정하여 저희 설정을 계속할 수 있습니다

    CircleCi에서 환경 변수 설정


    위의 명령에서는 FTP 정보를 하드코딩해야 합니다.이것은 우리가 out Config에 추가하고 싶은 내용이 아닐 것이다.Yml 파일이 저장소로 전송되기 때문입니다.
    CircleCi는 환경 변수를 설정할 수 있는 가능성을 제공합니다.이것은 설정에서 다음 문법 ${myVariableName} 으로 구분된 문자열을 대체합니다.yaml 파일 (위와 같이 사용자 이름, 비밀번호, Ftp 위치를 정의했습니다.
    CircleCi에서 환경 변수를 설정하려면 화면 오른쪽 상단의 항목 설정을 클릭합니다.

    그런 다음 왼쪽 메뉴에서 환경 변수를 선택합니다.
    현재, 이름 집합이 out config에 정의된 이름 집합과 같도록 변수를 쉽게 설정할 수 있습니다.yml 파일.

    배치


    이제 모든 것이 준비되었으니, 우리의 새로운 파이프를 사용하여 실제 응용 프로그램을 배치할 때가 되었다.이것은 config.yml 지점의 저장소에서 우리가 새로 만든 master 파일을 전송하여 실현할 수 있다.
    모든 것이 정확하게 설정되어 있다면, 프로젝트는 전송 후 몇 분 안에 배치될 것입니다.CircleCi는 디버깅 및 복구 배포에 필요한 모든 정보를 제공합니다.

    본고에 나타난 것은 단지 간단한 작업 흐름일 뿐이다.CircleCI는 배포에 사용될 뿐만 아니라 셀 테스트, E2E 테스트 등과 관련될 수 있는 완전한 복잡한 파이프라인을 정의하는 데 유용합니다.

    좋은 웹페이지 즐겨찾기