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

116 lines
3.1 KiB
YAML
Raw Normal View History

2021-04-01 00:15:54 +00:00
##########################################################################
# Build KiCad on Ubuntu 20.04 and save the results
##########################################################################
ubuntu20.04_build:
2021-04-01 00:15:54 +00:00
stage: build
tags:
- kicad-ubuntu20.04
2021-04-01 00:18:41 +00:00
image: registry.gitlab.com/kicad/kicad-ci/source_containers/master/ubuntu:20.04
2021-04-04 13:34:29 +00:00
only:
- branches@kicad/code/kicad
- tags@kicad/code/kicad
except:
- schedules
2021-04-01 00:15:54 +00:00
interruptible: false
cache:
key: "cache-ubuntu20.04-linux"
2021-04-01 00:15:54 +00:00
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
2021-04-01 00:55:05 +00:00
-G Ninja
2021-04-01 00:15:54 +00:00
-DCMAKE_C_COMPILER_LAUNCHER=ccache
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-DCMAKE_BUILD_TYPE=Release
2021-04-01 00:15:54 +00:00
-DKICAD_STDLIB_LIGHT_DEBUG=ON
-DKICAD_SCRIPTING_WXPYTHON=ON
-DKICAD_USE_OCC=ON
-DKICAD_SPICE=ON
-DKICAD_BUILD_I18N=ON
-DKICAD_BUILD_PNS_DEBUG_TOOL=ON
2021-04-01 00:15:54 +00:00
../../
- 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
ubuntu20.04_report_build_warn:
2021-04-01 00:15:54 +00:00
stage: report
when: always
2021-04-04 18:12:33 +00:00
only:
- branches@kicad/code/kicad
- tags@kicad/code/kicad
except:
- schedules
2021-04-01 00:15:54 +00:00
needs:
- job: ubuntu20.04_build
2021-04-01 00:15:54 +00:00
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
ubuntu20.04_report_metrics:
2021-04-01 00:15:54 +00:00
stage: report
when: always
2021-04-04 18:12:33 +00:00
only:
- branches@kicad/code/kicad
- tags@kicad/code/kicad
except:
- schedules
2021-04-01 00:15:54 +00:00
needs:
- job: ubuntu20.04_build
2021-04-01 00:15:54 +00:00
artifacts: true
script:
- cat build/linux/compilation_log.txt | { grep "warning:" || test $? = 1; } | awk 'END{print "number_of_ubuntu_20.04_warnings "NR}' > metrics.txt
2021-04-01 00:15:54 +00:00
- cat metrics.txt
artifacts:
reports:
metrics: metrics.txt
##########################################################################
# Run the code unit tests.
2021-04-01 00:15:54 +00:00
##########################################################################
ubuntu20.04_qa:
2021-04-01 00:15:54 +00:00
extends:
- .unit_test
needs:
- job: ubuntu20.04_build
artifacts: true
tags:
- kicad-ubuntu20.04
image: registry.gitlab.com/kicad/kicad-ci/source_containers/master/ubuntu:20.04
2021-04-04 18:12:33 +00:00
only:
- branches@kicad/code/kicad
- tags@kicad/code/kicad
except:
- schedules
parallel:
matrix:
# The name of the test without the qa_ prefix
- TEST: [python, common, gerbview, pcbnew, eeschema, kimath, sexpr, kicad2step]