Kraken CI의 22개 언어로 된 Hello Worlds
Hello World
을 보여줍니다.헬로 월드 프로그램
모든 프로그래머는
Hello World
프로그램이 어떻게 생겼는지 알고 있습니다.다음은 C 언어의 예입니다.
#include<stdio.h>
int main(){
printf("Hello World\n");
return 0;
}
하지만 22? 이 22개는 GitHub의 Kraken 저장소에서 볼 수 있습니다.
https://github.com/kraken-CI/hello-worlds
그래도
Hello Worlds
가 포함된 더 많은 언어가 있습니다.가장 큰 컬렉션은 여기에서 찾을 수 있습니다.
http://helloworldcollection.de/ .
이것은 단지 예일 뿐입니다. 우리의 경우 컴파일하고 실행할 수 있습니다. 저장소를 다운로드한 후 언어 폴더를 제공하는 스크립트
./run.sh
를 실행할 수 있습니다. 예:$ ./run.sh C
그러면 C 예제가 표시, 컴파일 및 실행됩니다.
Kraken의 경우 각 언어에 대해 우리를 위해 이를 수행하는 작업 흐름이 정의되어 있습니다. 그러나 먼저 이러한 언어에 대한 컴파일러 또는 런타임이 있는 시스템이 필요합니다. 구조에 도커.
Kraken 기본 언어 이미지
각 언어별로 Docker 이미지가 준비되어 있습니다. 이러한 언어의 공식 이미지를 기반으로 합니다. Kraken의 경우 kraken 사용자(루트가 아님)를 사용하여 실행되는 Kraken Agent와 같은 몇 가지 추가 기능이 있습니다.
모든 lang 이미지 목록은 에서 사용할 수 있습니다.
워크플로우
언급된 워크플로는 kraken-workflow.py 파일에서 찾을 수 있습니다.
요컨대 다음과 같이 보입니다.
def stage(ctx):
langs = [
('C', 'gcc:11.3'),
('C++', 'gcc:11.3'),
('C#', 'mono:6.12'),
# and more...
]
jobs = []
for lang_name, lang_image in langs:
jobs.append({
"name": "hello world %s" % lang_name,
"steps": [{
"tool": "git",
"checkout": "https://github.com/Kraken-CI/hello-worlds.git",
"branch": "main"
}, {
"tool": "shell",
"cmd": "./run.sh %s" % lang_name,
"cwd": "hello-worlds"
}],
"environments": [{
"executor": "docker",
"system": "krakenci/%s" % lang_image,
"agents_group": "all",
"config": "default"
}]
})
return {
"parent": "root",
"triggers": {
"parent": True,
},
"parameters": [],
"configs": [],
"jobs": jobs
}
알다시피 작업 목록은 동적으로 작성됩니다. 튜플 목록의 각 항목(
lang-name
, docker-image
)에 대해 작업은 동일한 단계로 정의되지만 언어 및 Docker 이미지 이름에 대한 값은 다양합니다. 언어 이름은 ./run.sh
단계에서 shell
스크립트로 전달됩니다. Docker 이미지 이름은 환경 섹션의 system
필드에 사용됩니다. 그런 다음 이러한 작업 목록은 전체 워크플로 정의에서 반환됩니다. 각 작업은 별도의 Docker 컨테이너에서 병렬로 실행됩니다.작업 흐름 실행의 예는 Kraken 연구소에 있습니다.
https://lab.kraken.ci/runs/5009/jobs . branch management page에서 워크플로우 정의를 확인하십시오.
이 스크린샷은 이 워크플로의 실행을 보여줍니다.
요약
이 기사는 Kraken CI가 다양한 언어로 작성된 프로그램을 구축하는 방법을 보여줍니다. Kraken은 여러 언어로 준비된 Docker 이미지를 제공합니다. 병렬로 실행할 수 있는 작업을 동적으로 정의하는 정교한 워크플로를 쉽게 정의할 수 있습니다. 결국 Kraken UI에서 워크플로 실행 결과를 관찰하는 것이 좋습니다.
Reference
이 문제에 관하여(Kraken CI의 22개 언어로 된 Hello Worlds), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/godfryd/hello-worlds-in-22-langs-on-kraken-ci-5fi2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)