빌드 자동화 소프트웨어 목록
List of build automation software빌드 자동화는 컴퓨터 소스 코드를 이진 코드로 컴파일하는 프로세스를 스크립팅 또는 자동화한다.아래는 빌드 프로세스 자동화와 관련된 주목할 만한 툴 목록이다.
제작 기반
- GNU make, 대규모 확장을 통해 널리 사용되는 구현
- Make, 전형적인 Unix 빌드 도구
- mk, 원래 버전 10 Unix 및 Plan 9용으로 개발되었으며 Plan9 포트의 일부로 Unix에 포팅됨
- 고전적인 Mac OS용으로 개발되었으며 Unix make와 유사하지만 호환되지 않는 MPW Make; 최신 MacOS(OS X)는 GNU make와 BSD make가 함께 제공되며, Macintosh Programmer's Workshop의 일부로 Apple에서 무료로, 지원되지 않는 다운로드로 제공됨
- nmake
- PVCS-make, 기본적으로 make의 개념을 따르지만 눈에 띄는 일련의 고유 구문 특징을[1] 가지고 있음
호환 안 됨
- Java 플랫폼 개발에 널리 사용되며 XML 파일 형식을 사용하는 Apache Ant
- Rake 기반 오픈 소스 빌드 시스템인 Apache Buildr는 Ruby에서 스크립팅의 모든 권한을 부여하며 빌드 시스템에서 원하는 대부분의 능력을 통합적으로 지원한다.
- 종속성 관리 및 자동 소프트웨어 빌드를 위한 Java 플랫폼 툴인 Apache Maven
- LISP 프로젝트 구축을 위한 ASDF LISP 빌드 시스템
- Python 기반 빌드 도구인 A-A-P
- Bazel은 Java, C, C++, Go, Python, Object-C 등에 프로젝트를 구축하기 위해 Starlark(빌드 파일 구문)를 사용하여 Java로 작성된 Blaze(구글 자체 빌드 도구)의 일부분이다.
- 임베디드 리눅스 교차 컴파일용 배포 및 패키지에 특별히 초점을 맞춘 Python 기반 툴인 BitBake
- Clojure로 작성된 Java 빌드 및 종속성 관리 도구인 부트
- boost.build C++ 프로젝트용, Perforce Jam 기반 크로스 플랫폼
- 페이스북이 개발하고 사용하는 빌드 시스템인 벅은 스타라크(BUILD 파일 구문)를 바젤로 사용하여 자바어로 작성되었다.
- 여러 부품에서 애플리케이션을 생성, 조립 및 배포하기 위한 Python 기반 빌드 시스템인 Buildout
- Cabal, 프로그래밍 언어 Haskell로 응용 프로그램과 라이브러리를 구축하기 위한 공통 아키텍처
- D Language의 공식 패키지 및 빌드 매니저인 Dub
- Windows, Linux 및 OS X용 고성능 오픈 소스 빌드 시스템인 Fastbuild.확장성이 뛰어난 컴파일, 캐싱 및 네트워크 배포 지원
- Windows 소프트웨어 개발자를 위한 FinalBuilder.FinalBuilder는 단일 애플리케이션에서 빌드 프로젝트를 생성하고 실행할 수 있는 그래픽 IDE를 제공한다.최종 구축자는 또한 유닛 테스트를 실행하거나 웹 프로젝트를 배치하거나 애플리케이션을 설치하고 테스트할 수 있는 능력을 포함한다.
- 플로우 트레이서
- Apache Groovy 기반 DSL(Domain Specific Language)을 사용하는 오픈 소스 빌드 및 자동화 시스템으로, Apache Ant와 Apache Maven의 기능을 신뢰할 수 있는 증분 빌드와 같은 추가 기능과 결합한 Gradle
- 프런트 엔드 웹 개발을 위한 빌드 툴인 Grunt
- 프런트엔드를 위한 또 다른 빌드 툴인 Gulp
- 인크레디빌드
- 빌드 자동화를 포함하여 Clojure 프로젝트에서 일반적으로 수행되는 작업을 제공하는 도구인 Leinen
- 혼합, Elixir 빌드 도구
- MSBuild, 마이크로소프트 빌드 엔진
- NAnt, 의 경우 Ant와 유사한 도구.NET Framework
- 닌자(Ninja)는 고급 빌드 시스템에서 생성된 빌드 스크립트를 사용하여 속도에 초점을 맞춘 소형 빌드 시스템이다.
- Make에서 영감을 얻은 Perforce의 빌드 도구인 Perforce Jam
- Phing, Apache Ant 기반 PHP 프로젝트 빌드 시스템
- PowerShell로 작성된 Psake, 도메인별 언어 및 빌드 자동화 도구
- Qt 빌드 시스템
- 루비 기반의 빌드 도구인 레이크
- sbt, 스칼라 기반 DSL을 기반으로 구축된 빌드 툴
- SCons, Python-based, autoconf/automake와 유사한 통합 기능 포함
- Haskell 프로젝트를 구축하기 위한 도구인 Stack은 그들의 의존성(컴파일러와 라이브러리)을 관리하고 테스트와 벤치마킹을 위한 도구다.
- 파일 수정 모니터링을 사용하여 거의 시간에 가까운 빌드 시간을 제공하는 그래프 기반 빌드 시스템인 tup.
- 소프트웨어 빌드용 그래픽 사용자 인터페이스 소프트웨어인 Visual Build
- 애플리케이션 구성, 컴파일 및 설치를 위한 Python 기반 도구인 Waf.Autotools, Scons, CMake 또는 Ant와 같은 다른 도구를 대체하는 것이다.
- SiFive의 빌드 오케스트레이션 도구 및 언어인 Wake.
빌드 스크립트 생성
이러한 제너레이터 도구는 직접 빌드하는 것이 아니라 (앞 두 절에 나열된 것과 같이) 네이티브 빌드 도구에 의해 사용될 파일을 생성한다.
- 다중 플랫폼 툴인 빌드AMation(BuildAMation)은 C# 스크립트의 선언적 구문을 사용하여 여러 스레드를 사용하여 터미널에 C/C++ 코드를 구축하거나 Microsoft Visual Studio, Xcode 또는 MakeFiles용 프로젝트 파일을 생성한다.
- CMake는 make, 닌자, Apple의 Xcode, Microsoft Visual Studio와 같은 다양한 빌드 도구에 대한 파일을 생성한다.[2]CMake는 일부 IDE에서 Qt [3]Creator, KDevelop, GNOME Builder로 직접 사용하기도 한다.[4]
- GN은[5] 닌자 빌드 파일을 생성하는 방법을 아는 빌드 생성기다.
- 휴대용 빌드용 도구 모음인 GNU 빌드 시스템(autotools라고도 함)특히 Autoconf와 Automake, 적절한 지역화된 make 파일을 함께 생성하는 교차 유니ix 플랫폼 툴이 그것이다.
- GYP(프로젝트 생성) - Chromium용으로 생성됨. 기본 빌드 환경에 사용할 파일을 생성하는 또 다른 도구
- 흉내를 내다
- 성능과 사용성에 최적화된 빌드 시스템인 메손은 Linux에서는 닌자, Windows에서는 Visual Studio, MacOS에서는 Xcode를 기반으로 한다.메손은 GNOME Builder가 직접 사용하기도 한다.[4]
- 오픈메이크 소프트웨어 마이스터
- Makefile, Visual Studio 파일, Xcode 프로젝트 등을 만드는 Lua 기반 도구인 Premake
- qmake
지속적 통합
- AntillPro, 배포 자동화 및 테스트를 위한 파이프라인 지원을 통해 자동화 구축교차 플랫폼, 교차 언어
- Apache Continuum - 중단됨
- Azure DevOps(이전의 TFS 및 VSTS[6])는 Azure 호스팅된 서비스 또는 자체 호스팅된 서버 빌드 기능일 수 있음
- 대나무, 연속 통합 소프트웨어
- Bitbucket 파이프라인 및 배포, Bitbucket 호스팅된 저장소에[7] 대한 지속적인 통합
- 컴파일/테스트 주기를 자동화하는 Python 기반 소프트웨어 개발 연속 통합 도구인 Buildbot
- 자체 인프라에서 빠르고, 안전하고, 확장 가능한 지속적인 통합 파이프라인을 실행하기 위한 플랫폼인 Buildkite.
- GitHub 및 Bitbucket 프로젝트를 위한 호스트형 연속 통합 서비스인 CircleCI.
- 코드파이프라인(CodePipeline)은 빠르고 안정적인 애플리케이션 및 인프라 업데이트를 위해 릴리즈 파이프라인을 자동화할 수 있도록 지원하는 완전 관리형 연속 제공 서비스다.
- CruiseControl(Java 및 의 경우)네트
- 바쁜 개발팀을 위한 셀프 서비스 지속적 통합 플랫폼인 하네스별 드론 CI.
- 지속적인 제공, 오픈 소스, 교차 플랫폼으로 전환
- GitLab(GitLab Runner), 지속적인 통합 및 Git 서버
- GitHub(GitHub Actions), 오픈 소스 프로젝트 및 Git 서버를 위한 무료 연속 통합 서비스
- 확장 가능한 연속 통합 엔진인 허드슨
- 확장 가능한 연속 통합 엔진인 젠킨스는 허드슨에서 출발했다.
- Spinnaker, 넷플릭스와 구글의 오픈소스 멀티 클라우드 연속 배송 서비스
- 팀시티
- 호스팅된 연속 통합 서비스인 Travis CI
구성 관리
메타 빌드
메타 빌드 도구는 기존 빌드 도구의 서브셋을 사용하여 많은 다양한 프로젝트를 구축할 수 있다.이것들은 보통 만들 수 있는 패키지 목록을 제공하기 때문에 종종 패키지 매니저라고도 불린다.
- Pkgsrc, Portage, MacPorts 및 BSD 포트 컬렉션에서 파생된 기타 패키지 관리자.
- 재현 가능한 빌드에 초점을 맞춘 리눅스 및 MacOS용 기능 패키지 매니저 Nix는 NixOS 리눅스 배포에 사용된다.
- GuixSD 리눅스 배포에 사용되는 Nix 기반 기능 패키지 관리자 GuixSD 리눅스 배포에 사용된다.
- 연구 워크플로우를 위한 소프트웨어 환경을 재구축하기 위한 집단 지식, 교차 플랫폼 패키지 관리자
- 홈브루, MacOS용 패키지 관리자
다른이들
- checkinstall, checkinstall은 설치 절차를 모니터링하고 배포를 위한 표준 패키지를 생성하는 프로그램이다.
- 다양한 Linux 배포를 위한 패키지 구축을 지원하는 호스트 서비스인 Open Build Service
라이센싱 개요
공구명 | 설명 언어 | 면허증 |
---|---|---|
A-A-P | 요리법 | GNU GPL |
개미 | XML | 아파치 라이선스 2.0 |
안틸프로 | 제조, 배포, 테스트 프로세스를 제어하기 위해 제조, 개미, 메이븐, MsBuild, Nant 등을 랩으로 만드십시오. | 중단됨 |
대나무 | 지속적인 통합 | 시제품 |
바젤 | Python과 같은 DSL인 BULD/Starlark | 아파치 라이선스 2.0 |
빌드AMATion | 빌드 스크립트의 경우 C#, 상위 수준의 종속성을 위한 XML | 새 BSD 라이센스 |
빌더 | 루비 | 아파치 라이선스 2.0 |
부츠 | 클로저 | 이클립스 공용 라이선스 |
카피스트라노 | XML | MIT 라이선스 |
CMake | CMakeLists를 사용한다.txt 파일 | 새 BSD 라이센스 |
집합적 지식 프레임워크 | JSON API 및 JSON 메타 설명이 포함된 Python 스크립트 | 새 BSD 라이센스 |
연속체 | ? | 아파치 라이선스 2.0 |
크루즈 컨트롤 | XML | BSD 형식 라이센스 |
더블 | JSON, SDL | MIT 라이선스 |
파이널빌더 | Ant/NNT, MSBuild, JScript, VBScript, IronPython, PowerShell을 지원하는 그래픽 IDE | 시제품 |
그라들 | 그루비 기반 DSL; 코틀린 기반 DSL | 아파치 라이선스 2.0 |
젠킨스 | 지속적인 통합 | MIT 라이선스 |
홈브루 | 루비 | 단순화된 BSD 라이센스 |
라이닝언 | 클로저 | 이클립스 공용 라이선스 |
만들다 | Makefile 사용 | OS 번들링과 동일 |
메이븐 | 프로젝트 객체 모델 | 아파치 라이선스 2.0 |
메손 빌드 시스템 | 사용자 정의 DSL | 아파치 라이선스 2.0 |
밀 | 스칼라 | MIT 라이선스 |
MPW 메이크 | ? | 프리웨어 |
MSBuild | XML | MIT 라이선스 |
NAnt | XML | GNU GPL |
nmake | Makefile 사용 | 프리웨어 |
오픈 빌드 서비스 | 다양한 패키지 및 이미지 설명 형식(사양, DSC, ARCH, 키위) 사용 | GNU GPL |
페르포스 잼 | Jamfile 사용 | 중단됨 |
퍼싱 | XML | GNU LGPL |
갈퀴 | 루비 | MIT 라이선스 |
sbt(단순 빌드 도구) | 스칼라 기반 DSL | 새 BSD 라이센스 |
스콘스 | 파이톤 | MIT 라이선스 |
팀 파운데이션 서버 | MSBuild, Windows Presentation Foundation, JSON - REST 인터페이스, Programmatic(코드를 통해 정의를 생성할 수 있음) | 시제품 |
트위커(빌드 도구) | 임의의 (기본적으로 확장을 위한 타사 인터페이스가 있는 Ant, bash, batch, C, Erlang, Java, SQL 및 VBScript) | GNU GPLv3 |
비주얼 빌드 | XML | 시제품 |
와프 | 파이톤 | 새 BSD 라이센스 |
참조
- ^ PVCS-make 스크립트를 GNU-make, From: Paul D로 포팅하는 것에 대한 메일링 목록 토론.스미스, 제목:Re: PVCS에서 GNU로, 날짜: 2003-02-25
- ^ "cmake-generators(7) — CMake 3.11.1 Documentation". cmake.org.
- ^ "Setting Up CMake - Qt Creator Manual". doc.qt.io.
- ^ a b "GNOME Builder Development Environment Picking Up Many Features For GNOME 3.28 - Phoronix". www.phoronix.com.
- ^ "GN".
- ^ "Introducing Azure DevOps".
- ^ https://confluence.atlassian.com/bitbucket/build-test-and-deploy-with-pipelines-792496469.html 크로스 플랫폼