kicad/.gitlab/Ubuntu-20.04-CI.yml

157 lines
3.9 KiB
YAML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

##########################################################################
# Build KiCad on Ubuntu 20.04 and save the results
##########################################################################
build_ubuntu20.04:
stage: build
tags:
- kicad-ubuntu20.04
extends: .only_code
image: registry.gitlab.com/kicad/kicad-ci/source_containers/master/ubuntu:20.04
interruptible: false
cache:
key: "cache-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
-G Ninja
-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
../../
- ninja 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
report_build_warn_ubuntu20.04:
stage: report
extends: .only_code
when: always
needs:
- job: build_ubuntu20.04
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
report_metrics_ubuntu20.04:
stage: report
extends: .only_code
when: always
needs:
- job: build_ubuntu20.04
artifacts: true
script:
- cat build/linux/compilation_log.txt | { grep "warning:" || test $? = 1; } | awk 'END{print "number_of_warnings "NR}' > metrics.txt
- cat metrics.txt
artifacts:
reports:
metrics: metrics.txt
##########################################################################
# Run the code unit tests. Each QA executable is split into a separate job so that the display
# gives the test results broken down by the test executable.
##########################################################################
.unit_test_ubuntu20.04:
extends:
- .unit_test
needs:
- job: build_ubuntu20.04
artifacts: true
tags:
- kicad-ubuntu20.04
image: registry.gitlab.com/kicad/kicad-ci/source_containers/master/ubuntu:20.04
qa_python_ubuntu20.04:
extends:
- .unit_test_ubuntu20.04
- .only_code
variables:
TEST: 'qa_python'
qa_common_ubuntu20.04:
extends:
- .unit_test_ubuntu20.04
- .only_code
variables:
TEST: 'qa_common'
qa_gerbview_ubuntu20.04:
extends:
- .unit_test_ubuntu20.04
- .only_code
variables:
TEST: 'qa_gerbview'
qa_pcbnew_ubuntu20.04:
extends:
- .unit_test_ubuntu20.04
- .only_code
variables:
TEST: 'qa_pcbnew'
qa_eeschema_ubuntu20.04:
extends:
- .unit_test_ubuntu20.04
- .only_code
variables:
TEST: 'qa_eeschema'
qa_kimath_ubuntu20.04:
extends:
- .unit_test_ubuntu20.04
- .only_code
variables:
TEST: 'qa_kimath'
qa_sexpr_ubuntu20.04:
extends:
- .unit_test_ubuntu20.04
- .only_code
variables:
TEST: 'qa_sexpr'
qa_kicad2step_ubuntu20.04:
extends:
- .unit_test_ubuntu20.04
- .only_code
variables:
TEST: 'qa_kicad2step'