블루프린트에 리포지토리 및 소스 코드 구성 요소 추가 - Amazon CodeCatalyst

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

블루프린트에 리포지토리 및 소스 코드 구성 요소 추가

Amazon은 리포지토리를 CodeCatalyst 사용하여 코드를 저장합니다. 리포지토리는 이름을 입력으로 사용합니다. 소스 코드 파일, 워크플로, 관리형 개발 환경 (MDE) 과 같은 기타 구성 요소와 같은 대부분의 구성 요소는 리포지토리에 저장됩니다. 또한 소스 리포지토리 구성 요소는 파일 및 정적 자산을 관리하는 데 사용되는 구성 요소를 내보냅니다. 리포지토리에는 이름 제약이 있습니다. 자세한 정보는 에 소스 리포지토리가 있는 코드 저장 및 공동 작업 CodeCatalyst을 참조하세요.

const repository = new SourceRepository(this, { title: 'my-new-repository-title', });

Amazon CodeCatalyst 블루프린트 리포지토리 및 소스 코드 구성 요소를 가져오려면

blueprint.ts파일에 다음을 추가합니다.

import {...} from '@caws-blueprint-component/caws-source-repositories'

파일 추가

구문을 사용하여 저장소에 텍스트 파일을 쓸 수 SourceFile 있습니다. 작업은 가장 일반적인 사용 사례 중 하나이며 리포지토리, 파일 경로 및 텍스트 콘텐츠가 필요합니다. 파일 경로가 리포지토리 내에 없는 경우 구성 요소는 필요한 모든 폴더를 만듭니다.

new SourceFile(repository, `path/to/my/file/in/repo/file.txt`, 'my file contents');
참고

동일한 리포지토리 내의 동일한 위치에 두 파일을 쓰는 경우 가장 최근의 구현이 이전 구현을 덮어씁니다. 이 기능을 사용하여 생성된 코드를 계층화할 수 있으며, 사용자 지정 블루프린트에서 생성했을 수 있는 코드를 확장하는 데 특히 유용합니다.

제네릭 파일 추가

리포지토리에 임의의 비트를 쓸 수 있습니다. 버퍼에서 읽고 File 구문을 사용할 수 있습니다.

new File(repository, `path/to/my/file/in/repo/file.img`, new Buffer(...)); new File(repository, `path/to/my/file/in/repo/new-img.img`, new StaticAsset('path/to/image.png').content());

파일 복사

시작 코드를 복사하여 붙여넣은 다음 해당 기반 위에 추가 코드를 생성하여 생성된 코드로 시작할 수 있습니다. 코드를 static-assets 디렉터리 내에 배치한 다음 해당 코드를 StaticAsset 구문으로 대상으로 지정합니다. 이 경우 경로는 항상 static-assets 디렉터리의 루트에서 시작됩니다.

const starterCode = new StaticAsset('path/to/file/file.txt') const starterCodeText = new StaticAsset('path/to/file/file.txt').toString() const starterCodeRawContent = new StaticAsset('path/to/image/hello.png').content() const starterCodePath = new StaticAsset('path/to/image/hello.png').path() // starterCodePath is equal to 'path/to/image/hello.png'

의 서브클래스는 StaticAsset 입니다. SubstitutionAsset 서브클래스의 함수는 완전히 동일하지만 대신 파일에 콧수염 대체를 실행할 수 있습니다. 스타일 생성을 수행하는 copy-and-replace 데 유용할 수 있습니다.

정적 애셋 대체는 콧수염 템플릿 엔진을 사용하여 생성된 소스 리포지토리에 시드되는 정적 파일을 렌더링합니다. Mustache 템플릿 규칙은 렌더링 중에 적용됩니다. 즉, 기본적으로 모든 값이 HTML로 인코딩됩니다. 이스케이프 처리되지 않은 HTML을 렌더링하려면 트리플 머스타치 구문을 사용하십시오. {{{name}}} 자세한 내용은 콧수염 템플릿 규칙을 참조하십시오.

참고

텍스트 해석이 불가능한 파일을 대체하여 실행하면 오류가 발생할 수 있습니다.

const starterCodeText = new SubstitionAsset('path/to/file/file.txt').subsitite({ 'my_variable': 'subbed value1', 'another_variable': 'subbed value2' })

여러 파일을 대상으로 지정

정적 애셋은 on StaticAsset 및 호출된 해당 서브클래스를 통한 글로브 타깃팅을 지원합니다. 이 함수는 경로findAll(...), 콘텐츠 등이 미리 로드된 정적 애셋 목록을 반환합니다. 목록을 구문으로 연결하여 내용을 File 복사하여 디렉터리에 붙여넣을 수 있습니다. static-assets

new File(repository, `path/to/my/file/in/repo/file.img`, new Buffer(...)); new File(repository, `path/to/my/file/in/repo/new-img.img`, new StaticAsset('path/to/image.png').content());

새 리포지토리 생성 및 파일 추가

리포지토리 구성 요소를 사용하여 생성된 프로젝트에 새 리포지토리를 만들 수 있습니다. 그런 다음 생성된 저장소에 파일이나 워크플로를 추가할 수 있습니다.

import { SourceRepository } from '@amazon-codecatalyst/codecatalyst-source-repositories'; ... const repository = new SourceRepository(this, { title: 'myRepo' });

다음 예제는 기존 리포지토리에 파일 및 워크플로를 추가하는 방법을 보여줍니다.

import { SourceFile } from '@amazon-codecatalyst/codecatalyst-source-repositories'; import { Workflow } from '@amazon-codecatalyst/codecatalyst-workflows'; ... new SourceFile(repository, 'README.md', 'This is the content of my readme'); new Workflow(this, repository, {/**...workflowDefinition...**/});

두 코드를 결합하면 소스 파일이 README.md 있고 루트에 CodeCatalyst 워크플로가 myRepo 있는 이름이 지정된 단일 리포지토리가 생성됩니다.