서버 없이 CI 빌드 실행
4333 단어 programming
오프라인 러너 사용
오프라인 러너와 작동 방식에 대한 높은 수준의 개요를 제공했습니다. 그러나 실제로 어떻게 사용되는지 보기 위해 실제로 사용하겠습니다. 이 데모의 일부로 djinn-ci/imgsrv 이미지 서버를 구축할 것입니다. 이것은 https://images.djinn-ci.com 에서 기본 QEMU 이미지를 제공하는 데 사용됩니다.
Note: The following demonstration assumes all commands will be executed on a Linux distribution.
러너 설치
먼저 오프라인 러너를 설치해야 합니다. Djinn CI 네임스페이스here에서 이 권한에 대한 바이너리를 가져올 수 있습니다.
다운로드가 완료되면 바이너리를
PATH
로 옮길 수 있습니다.$ sudo mv djinn /usr/local/bin
다음으로 오프라인 실행기와 사용할 드라이버를 구성해야 합니다. 이제 필요한 구성 디렉토리를 생성하겠습니다.
$ mkdir ~/.config/djinn
$ touch ~/.config/djinn/driver.conf
이제 오프라인 러너가 사용할
qemu
드라이버를 구성할 수 있습니다.# ~/.config/djinn/driver.conf
driver qemu {
disks "/var/lib/djinn/images"
cpus 2
memory 2048
}
드라이버 구성 방법에 대한 자세한 내용은 documentation 에서 찾을 수 있습니다.
마지막으로 사용하려는 이미지에 필요한 하위 디렉토리를 생성하고 빌드를 위한 기본 이미지를 다운로드합니다.
$ mkdir -p /var/lib/djinn/images/qemu/x86_64
imgsrv
프로그램을 빌드하려면 debian/oldstable 이미지가 필요합니다. 앞에서 언급한 이미지 서버에서 다운로드할 수 있습니다.이미지가 다운로드되면 이미지 디렉토리에 하위 디렉토리를 만들어 저장할 수 있습니다.
$ mkdir /var/lib/djinn/images/qemu/x86_64/debian
$ mv oldstable /var/lib/djinn/images/qemu/x86_64/debian
이미지 서버 구축
오프라인 러너 설정으로
djinn-ci/imgrsrv
리포지토리를 복제하고 빌드해 보겠습니다.$ git clone https://github.com/djinn-ci/imgsrv
복제되면 빌드를 로컬에서 실행하기 위해 해야 할 일은 저장소로 변경하고 실행하는 것입니다
djinn
.$ cd imgsrv
$ djinn
실행이 시작되면 다음과 같은 출력이 표시됩니다.
Running with Driver qemu...
Creating machine with arch x86_64...
Booting machine with image debian/oldstable...
Established SSH connection to machine as root...
완료되면
djinn-imgsrv
아티팩트가 저장소의 루트에 수집됩니다.이제 질문이 생깁니다. 리포지토리의
make.sh
스크립트를 사용하여 정상적으로 빌드할 수 있는데 왜 오프라인 러너를 사용하여 빌드합니까? 다음과 같은 이유로:두 번째 요점은 아마도 가장 중요할 것입니다.
djinn-imgsrv
는 동적으로 연결된 바이너리입니다. 이는 프로그램이 제공할 이미지를 추적하기 위해 메모리 내 데이터베이스로 SQLite를 사용하기 때문입니다. 이 때문에 Cgo는 sqlite 라이브러리의 C 코드와 Go를 인터페이스하는 데 사용됩니다. 따라서 동적으로 연결된 바이너리가 빌드됩니다.따라서 프로그램을 빌드하는 일반적인 접근 방식을 취하면 libc의 배포판 버전에 대한 바이너리 링크가 생성됩니다. 일부 시나리오에서는 배포 대상이 아닌 다른 배포판에서 개발할 수 있으므로 좋지 않을 수 있습니다.
이 경우 Arch에서 개발하고 Debian 10에 이미지 서버를 배포합니다. 따라서 일반적으로 이것을 빌드하면 바이너리가 Debian에서 실행되지 않을 수 있습니다. 이 문제를 해결하기 위해 오프라인 러너가 대신 사용되며 배포된 배포판에 대해 빌드될 것임을 알고 있습니다.
이것은 아마도 오프라인 러너 자체뿐만 아니라 Djinn CI 플랫폼 전체의 이점 중 하나일 것입니다. 빌드에서
qemu
드라이버를 활용하여 다양한 Linux 배포판에서 소프트웨어를 빌드하고 테스트하는 기능입니다.추가 정보
Djinn CI에 대해 자세히 알아보려면 플랫폼 기능에 대한 개요를 제공하는 about page을 방문하고 user documentation도 확인하십시오.
Reference
이 문제에 관하여(서버 없이 CI 빌드 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/andrewpillar/running-your-ci-builds-without-the-server-4p9n텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)