2017-12-03 9 views
7

GitHub에서 하나의 YAML 파일에만 변경 사항이 적용되는 공용 저장소를 유지 관리합니다. 나는 모든 푸시에서 그 파일을 처리하고 그것을 기반으로 파일을 생성 할 수있는 솔루션을 찾고있다. 본질적으로, 파이프 라인이나 CI는 파일을 구문 분석하고 다양한 markdown 파일을 생성해야합니다. 이러한 파일 (또는 특히이 파일의 변경 사항)은 리포지토리에 다시 푸시되어야합니다.GitHub pipeline/CI가 파일을 생성하여 저장소로 다시 보냅니다.

요구 사항 :

  • YAML 파일을 수동으로 변경하고 가격 인하 파일을 자동으로 변경 사항이 모두 마스터 분기로 밀어해야합니다.
  • 버전 기록을 보관해야합니다 (예 : 강제 푸시가 작동하지 않을 수 있음).
  • 생성되는 임의의 수의 파일이 있습니다.

GitHub PagesGitHub Releases에 대한 트래비스 공급자가 있습니다. 하지만 둘 다 내 요구 사항에 부적합하게 만드는 한계가 있습니다.

GitHub에서 어떤 도구/CI/파이프 라인을 사용할 수 있습니까? 자체 호스팅 된 CI를 통한 서비스를 선호합니다.

+1

서비스를 포함 할 대답을 편집했습니다. – VonC

답변

2

YAML 파일을 구문 분석하고 Markdown 파일을 생성하는 프로그램/스크립트가 있다고 가정하면 Jenkins CI에서 어떻게 처리 할 것인지에 대한 정보를 얻을 수 있습니다. 내 경험으로 내 인스턴스를 실행하는 동안 탐색 할 수있는 CloudBees과 같은 호스트 옵션도 있습니다.

  1. 새로운 Jenkins Freestyle 프로젝트를 만듭니다.
  2. 소스 코드 관리 섹션에서 GitHub 프로젝트 좌표를 구성하십시오.
  3. Build Triggers 섹션에서 변경 내용이 GitHub으로 푸시되면 '빌드'를 활성화하십시오. 그러면 YAML 파일의 새 버전을 저장소에 넣는 순간 CI 작업이 시작됩니다.
  4. 빌드 섹션에서 셸 실행 빌드 단계를 추가하십시오.
  5. 셸 단계에서 YAML 파일을 처리하거나 .md 파일을 생성하는 프로그램이나 스크립트를 실행하십시오. git add ., git commit -m "message", git pullgit push 명령을 추가하여 스크립트를 종료하십시오 (git이 경로에 있다고 가정 함).
  6. Jenkins에서 새 작업을 활성화하도록 설정하십시오.
+0

답변 해 주셔서 감사합니다. 그 단순한 유스 케이스에 대한 Jenkins 인스턴스를 실행하거나 지불하는 것이 과잉이라고 생각할지라도. 그것은 어쨌든 aswer로 받아들이는 지금까지 최고의 솔루션 것 같습니다. – str