100 lines
2.8 KiB
YAML
100 lines
2.8 KiB
YAML
##########################################################################
|
||
# Build KiCad on Fedora and save the results
|
||
##########################################################################
|
||
fedora_build_linux:
|
||
stage: build
|
||
extends: .only_code
|
||
interruptible: false
|
||
cache:
|
||
key: "cache-fedora-linux"
|
||
paths:
|
||
- ccache/
|
||
before_script:
|
||
# CCache Config
|
||
- mkdir -p ccache
|
||
- export CCACHE_BASEDIR=${PWD}
|
||
- export CCACHE_DIR=${PWD}/ccache
|
||
script:
|
||
- mkdir -p build/linux
|
||
- cd build/linux
|
||
- cmake
|
||
-DCMAKE_C_COMPILER_LAUNCHER=ccache
|
||
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
|
||
-DCMAKE_BUILD_TYPE=Debug
|
||
-DKICAD_STDLIB_LIGHT_DEBUG=ON
|
||
-DKICAD_SCRIPTING=ON
|
||
-DKICAD_SCRIPTING_MODULES=ON
|
||
-DKICAD_SCRIPTING_PYTHON3=ON
|
||
-DKICAD_SCRIPTING_WXPYTHON=ON
|
||
-DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON
|
||
-DKICAD_SCRIPTING_ACTION_MENU=ON
|
||
-DKICAD_USE_OCE=OFF
|
||
-DKICAD_USE_OCC=ON
|
||
-DKICAD_SPICE=ON
|
||
-DKICAD_BUILD_I18N=ON
|
||
-DKICAD_BUILD_PNS_DEBUG_TOOL=ON
|
||
../../
|
||
- make 2>&1 | tee compilation_log.txt
|
||
- cd ../../
|
||
artifacts:
|
||
# Only save the artifacts that are needed for running the tests in the next stage
|
||
# and the compilation log. The entire build directory is too large to save as an
|
||
# artifact.
|
||
expire_in: 2 hrs
|
||
when: always
|
||
paths:
|
||
- build/linux/3d-viewer/
|
||
- build/linux/pcbnew/pcbnew.py
|
||
- build/linux/pcbnew/_pcbnew.so
|
||
- build/linux/qa/
|
||
- build/linux/compilation_log.txt
|
||
|
||
# Upload the compilation log in an easily downloadable form
|
||
fedora_report_build_warn:
|
||
stage: report
|
||
extends: .only_code
|
||
when: always
|
||
needs:
|
||
- job: fedora_build_linux
|
||
artifacts: true
|
||
script:
|
||
- echo "Uploading compilation log"
|
||
- cp build/linux/compilation_log.txt compilation_log.txt
|
||
artifacts:
|
||
expire_in: 1 year
|
||
expose_as: 'Build log'
|
||
name: "build_log.txt"
|
||
paths:
|
||
- compilation_log.txt
|
||
|
||
# Report on the metrics of the code
|
||
fedora_report_metrics:
|
||
stage: report
|
||
extends: .only_code
|
||
when: always
|
||
needs:
|
||
- job: fedora_build_linux
|
||
artifacts: true
|
||
script:
|
||
- cat build/linux/compilation_log.txt | { grep "warning:" || test $? = 1; } | awk 'END{print "number_of_fedora_warnings "NR}' > metrics.txt
|
||
- cat metrics.txt
|
||
artifacts:
|
||
reports:
|
||
metrics: metrics.txt
|
||
|
||
|
||
##########################################################################
|
||
# Run the code unit tests.
|
||
##########################################################################
|
||
fedora_qa:
|
||
extends:
|
||
- .unit_test
|
||
- .only_code
|
||
parallel:
|
||
matrix:
|
||
# The name of the test without the qa_ prefix
|
||
- TEST: [python, common, gerbview, pcbnew, eeschema, kimath, sexpr, kicad2step]
|
||
needs:
|
||
- job: fedora_build_linux
|
||
artifacts: true
|