
아직 참여하지 않으신 분들은 무료로 Space에 등록하고 오늘부터 사용해보세요↑↑
안녕하세요 JetBrains 한국 총판 단군소프트입니다.
EAP 기간에 큰 인기를 끌었던 기능인 Space Automation이 이제 모든 Space 베타 고객에게 제공됩니다. 앞으로 Automation을 통해 Space의 CI/CD 활동을 실행하고 프로젝트 빌드, 테스트 및 배포를 완료할 수 있습니다. Space는 현재 누구나 무료로 사용할 수 있는 베타 버전으로 제공되고 있습니다. 그리고 Space 베타 버전의 모든 고객들은 매월 10,000 CI 크레딧이 포함된 Organization 요금제를 이용할 수 있습니다.
오늘은 다양한 작업을 자동화하고 지속적인 배포 파이프라인을 관리하는 데 도움이 될 시스템의 간략한 소개를 준비했습니다.
바로 자세한 내용을 살펴보세요>>>
- Space Automation 소개 - 코드로서 구성 - 자동화 스크립트 - Kotlin 기반의 DSL - 브랜치에 분리 - 컨테이너 - 순차 및 병렬 단계 - Kotlin 코드 실행 - 기타 Space 모듈과 통합 - Gradle, Docker 및 기타 도구와 통합
Space Automation 소개

Automation은 시스템의 모든 CI/CD 활동을 담당하는 Space 모듈입니다. 저장소에 저장된 스크립트 파일을 활용하여 프로젝트 빌드, 테스트 및 배포를 수행할 수 있습니다.
코드로서 구성
스크립트는 Automation을 구성하는 유일한 방식입니다. Space에 표시되는 Automation UI는 스크립트 결과(로그, 테스트, 아티팩트)를 시각화하는 데만 사용됩니다. 스크립트는 특수한 Kotlin 기반 DSL(도메인 특화 언어)로 작성됩니다.
자동화 스크립트
자동화 스크립트는 프로젝트 루트 디렉토리의 .space.kts 파일에 저장되어야 합니다. .space.kts 파일을 수정하려면,Space 코드 웹 에디터 또는 Space 플러그인이 설치된 IntelliJ IDEA를 사용하면 됩니다.

Kotlin 기반의 DSL
Space Automation DSL은 Kotlin을 기반으로 하여(YAML 예정) 많은 장점을 갖고 있습니다. Kotlin 데이터 유형 및 언어 구조를 자동화 스크립트 내에서 바로 사용할 수 있습니다.
브랜치에 분리
자동화 구성은 스크립트 파일을 통해 이루어지므로 해당 구성은 Git 브랜치에 완전히 분리됩니다. 그리고 자동화 스크립트를 매우 간편하게 실험할 수 있습니다. 새 브랜치를 생성하고 .space.kts 파일을 추가한 후 실험을 시작하면 됩니다.
컨테이너
모든 자동화 활동은 Linux 기반의 Docker 컨테이너에서 실행됩니다. Automation 스크립트의 빌딩 블록은 Job입니다. Job을 사용하면 컨테이너 내에서 독립적 단계를 실행할 수 있습니다.

위 예시의 Job은 셸 스크립트를 실행하는 Ubuntu 컨테이너라는 한 단계로 구성되어 있습니다.
Job 실행 결과와 컨테이너 로그가 프로젝트의 Jobs 페이지에 표시됩니다.

순차 및 병렬 단계
컨테이너의 단계를 순차적, 병렬적으로 실행할 수 있습니다. 따라서 컨테이너의 그래프를 실행할 수 있습니다.
 
Kotlin 코드 실행
Kotlin 기반의 DSL을 사용하면 빌드 스크립트 내의 복잡한 로직을 구현할 수 있습니다. 이러한 목적에 따라 컨테이너 내부의 특수한 kotlinScript 아이템을 사용할 수 있습니다.

기타 Space 모듈과 통합
.space.kts에는 Kotlin 기반의 Space HTTP API 클라이언트에 대한 액세스 권한이 있습니다. 모든 Space 모듈은 API를 제공하므로 다음과 같은 Space의 모든 요소와 통신이 가능합니다.
■ api.space().packages ■ api.space().projects ■ api.space().todo ■ api.space().blogs ■ 기타 등등.

Gradle, Docker 및 기타 도구와 통합
외부 도구를 사용할 수 있도록 API를 비롯한 추가적 단계 유형을 제공합니다. 예를 들어 Gradle 빌드 간소화를 위해 Gradle 또는 Gradlew 단계를 활용할 수 있습니다.

Gradle, Docker 및 기타 도구와 통합
외부 도구를 사용할 수 있도록 API를 비롯한 추가적 단계 유형을 제공합니다. 예를 들어 Gradle 빌드 간소화를 위해 Gradle 또는 Gradlew 단계를 활용할 수 있습니다.
  테스트의 출력 내역이 Job 개요 페이지에 표시됩니다.
 Docker 이미지를 빌드하고 푸시 하는 데 Docker 단계를 활용할 수도 있습니다.
향후. NET, npm, MVN 및 기타 도구에 대한 지원도 추가할 예정입니다.
나머지 내용은 다음 포스팅에서 이어 알려드리겠습니다. 추가로 궁금한 사항이 있으시면 언제든지 단군소프트(JetBrains@tangunsof.com)로 남겨주세요! 감사합니다.
이 게시물은 Alexandra Charikova가 작성한
|