다음은 CodeCatalyst 에서 사용자 지정 블루프린트를 사용할 때 알아야 할 몇 가지 개념과 용어입니다.
블루프린트 프로젝트
블루프린트 프로젝트를 통해 스페이스에 블루프린트를 개발하고 게시할 수 있습니다. 소스 리포지토리는 프로젝트 생성 프로세스 중에 생성되며, 리포지토리 이름은 프로젝트 리소스 세부 정보를 입력할 때 선택한 리포지토리의 이름입니다. 블루프린트 생성 프로세스 중에 워크플로 릴리스를 생성하도록 선택하면 블루프린트 빌더 블루프린트를 사용하여 블루프린트에 게시 워크플로가 생성됩니다. 워크플로는 최신 버전을 자동으로 게시합니다.
스페이스 블루프린트
스페이스의 블루프린트 섹션으로 이동할 때 스페이스 블루프린트 테이블에서 모든 블루프린트를 보고 관리할 수 있습니다. 블루프린트가 스페이스에 게시되면 스페이스 블루프린트 카탈로그에서 추가 및 제거할 수 있는 스페이스 블루프린트로 사용할 수 있습니다. 스페이스의 블루프린트 섹션에서 게시 권한을 관리하고 에서 블루프린트를 삭제할 수도 있습니다. 자세한 내용은 사용자 지정 블루프린트의 세부 정보, 버전 및 프로젝트 보기 섹션을 참조하십시오.
스페이스스 블루프린트 카탈로그
스페이스의 블루프린트 카탈로그에서 추가된 모든 사용자 지정 블루프린트를 볼 수 있습니다. 여기에서 스페이스 멤버는 사용자 지정 블루프린트를 선택하여 새 프로젝트를 생성할 수 있습니다. 이 카탈로그는 모든 스페이스 멤버에 대해 이미 사용 가능한 블루프린트가 있는 CodeCatalyst 카탈로그와 다릅니다. 자세한 내용은 CodeCatalyst 블루프린트를 사용하여 포괄적인 프로젝트 생성 섹션을 참조하십시오.
합성
합성은 프로젝트의 소스 코드, 구성 및 리소스를 나타내는 CodeCatalyst 프로젝트 번들을 생성하는 프로세스입니다. 그런 다음 CodeCatalyst 배포 API 작업에서 번들을 사용하여 프로젝트에 배포합니다. CodeCatalyst 에서 프로젝트를 생성할 필요 없이 프로젝트 생성을 에뮬레이션하기 위해 사용자 지정 블루프린트를 개발하는 동안 프로세스를 로컬에서 실행할 수 있습니다. 다음 명령을 사용하여 합성을 수행할 수 있습니다.
yarn blueprint:synth # fast mode yarn blueprint:synth --cache # wizard emulation mode
블루프린트는 defaults.json
에 병합된 옵션과 함께 기본 blueprint.ts
클래스를 직접적으로 호출하는 것으로 시작됩니다. synth/synth.
폴더 아래에 새 프로젝트 번들이 생성됩니다. 출력에는 구성했을 수 있는 부분 옵션을 포함하여 사용자가 설정한 옵션을 고려하여 사용자 지정 블루프린트가 생성하는 프로젝트 번들이 포함됩니다.[options-name]
/proposed-bundle/
재합성
재합성은 기존 프로젝트의 다양한 블루프린트 옵션 또는 블루프린트 버전으로 블루프린트를 재생성하는 프로세스입니다. 블루프린트 작성자는 사용자 지정 블루프린트 코드에서 사용자 지정 병합 전략을 정의할 수 있습니다. .ownership-file
에서 소유권 경계를 정의하여 블루프린트를 업데이트할 수 있는 코드베이스 부분을 지정할 수도 있습니다. 사용자 지정 블루프린트는 에 대한 업데이트를 제안할 수 있지만 .ownership-file
사용자 지정 블루프린트를 사용하는 프로젝트 개발자는 프로젝트의 소유권 경계를 결정할 수 있습니다. 사용자 지정 블루프린트를 게시하기 전에 로컬에서 재합성을 실행하고 테스트 및 업데이트할 수 있습니다. 다음 명령을 사용하여 재합성을 수행합니다.
yarn blueprint:resynth # fast mode yarn blueprint:resynth --cache # wizard emulation mode
블루프린트는 defaults.json
에 병합된 옵션과 함께 기본 blueprint.ts
클래스를 직접적으로 호출하는 것으로 시작됩니다. synth/resynth.
폴더 아래에 새 프로젝트 번들이 생성됩니다. 출력에는 구성했을 수 있는 부분 옵션을 포함하여 사용자가 설정한 옵션을 고려하여 사용자 지정 블루프린트가 생성하는 프로젝트 번들이 포함됩니다.[options-name]
/
합성 및 재합성 프로세스 후에 다음 내용이 생성됩니다.
proposed-bundle - 대상 블루프린트 버전에 대한 새 옵션으로 실행될 때의 합성 출력입니다.
existing-bundle - 기존 프로젝트의 모형입니다. 이 폴더에 아무것도 없으면
proposed-bundle
과 동일한 출력으로 생성됩니다.ancestor-bundle - 이전 버전, 이전 옵션 또는 조합으로 실행할 때 블루프린트가 생성하는 모의입니다. 이 폴더에 아무것도 없으면
proposed-bundle
과 동일한 출력으로 생성됩니다.resolved-bundle - 번들은 항상 재생성되며 기본적으로
proposed-bundle
,existing-bundle
및ancestor-bundle
간의 3방향 병합으로 설정됩니다. 이 번들은 재합성이 로컬에서 출력할 에뮬레이션을 제공합니다.
블루프린트 출력 번들에 대한 자세한 내용은 재합성을 사용하여 파일 생성 섹션을 참조하세요.
부분 옵션
Options
인터페이스 전체를 열거할 필요가 없는 src/wizard-configuration/
에서 옵션 변형을 추가할 수 있으며, 옵션은 defaults.json
파일 위에 병합됩니다. 이를 통해 특정 옵션에서 테스트 사례를 조정할 수 있습니다.
예시:
Options
인터페이스:
{
language: "Python" | "Java" | "Typescript",
repositoryName: string
...
}
defaults.json
파일:
{
language: "Python",
repositoryName: "Myrepo"
...
}
추가 구성 테스트:
-
#wizard-config-typescript-test.json { language: "Typescript", }
-
#wizard-config-java-test.json { language: "Java", }
Projen
Projen은 사용자 지정 블루프린트가 자체 업데이트 및 일관성을 유지하는 데 사용하는 오픈 소스 도구입니다. 이 프레임워크는 프로젝트를 빌드, 번들링 및 게시할 수 있는 기능을 제공하며 인터페이스를 사용하여 프로젝트의 구성 및 설정을 관리할 수 있기 때문에 블루프린트는 Projen 패키지로 제공됩니다.
Projen을 사용하여 블루프린트가 생성된 후에도 블루프린트를 대규모로 업데이트할 수 있습니다. Projen 도구는 프로젝트 번들을 생성하는 블루프린트 합성의 기본 기술입니다. Projen은 프로젝트의 구성을 소유하며, 블루프린트 작성자로서 사용자에게 영향을 주지 않습니다. 종속성을 추가한 후 yarn projen
를 실행하여 프로젝트 구성을 재생성하거나 projenrc.ts
파일에서 옵션을 변경할 수 있습니다. Projen은 프로젝트를 합성하기 위한 사용자 지정 블루프린트의 기본 생성 도구이기도 합니다. 자세한 정보는 Projen GitHub 페이지