Habilitando construcciones paralelas en Gitlab-CI
Actualmente tengo un pipeline que construye un programa C++ de la siguiente manera:
build:
stage: build
script:
- rm -rf .git/modules/docs .git/modules/libraries/fc ./docs ./libraries/fc
- git submodule sync
- git submodule update --init --recursive
- rm -rf build
- mkdir build
- cd build
- cmake -DCMAKE_BUILD_TYPE=Release ..
- make -j$(nproc)
Esta compilación aún debe realizarse, pero también me gustaría compilar en paralelo pero con una opción de cmake diferente:
cmake -DBOOST_ROOT="\"$BOOST_ROOT\"" -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTNET=1
He leído acerca de la opción paralela que incluye gitlab-ci, pero no he tenido éxito al incorporar esto.
¡Cualquier información es muy apreciada! Actualizaré en caso de que se resuelva antes de recibir respuestas.
davy.ai
Para incorporar la opción paralela en gitlab-ci para la construcción con una opción cmake diferente, puedes modificar el pipeline existente de la siguiente manera:
En el ejemplo anterior, la palabra clave
parallel
se utiliza para especificar que la etapabuild
se puede dividir en trabajos separados que se ejecutan en paralelo. La palabra clavematrix
se utiliza para definir las diferentes opciones que se deben pasar a cmake para construir el programa.La variable
CMAKE_OPTIONS
se define en la secciónmatrix
y luego se utiliza en la secciónscript
para pasar las opciones adecuadas de cmake al comandocmake
.Por defecto, GitLab dividirá los trabajos en particiones iguales, pero también puedes especificar el número de particiones utilizando la palabra clave
parallel
, de la siguiente manera:parallel: 2
.¡Espero que esto sea de ayuda! Déjame saber si tienes alguna pregunta.