CI linter does not check for semantic errors
Summary
The CI Linter checks for syntax errors, but not for semantic errors like: "needs" keyword references to many jobs
Steps to reproduce
- Create a yml file that has more then build 10 jobs and add one aggregation job
- Copy yml file into linter
I'm using GitLab-EE version 12.9.2.
Example Project
I added an example file, that:
- is ok in CI linter
- fails in pipeline
See yml file below.
What is the current bug behavior?
The CI linter doesn't report semantic problems.
What is the expected correct behavior?
Semantic limits like number of max. dependencies should also be reported by CI linter. Especially when child pipelines do not report incorrect yml files yet. See #213306 (closed)
Relevant logs and/or screenshots
stages:
- Prepare
- Out-Of-Context
- Synthesis
- Aggregation
- Link
- Optimize
- Place
- Route
- Bitfile
.Vivado:
tags:
- Vivado-2018.3
.Vivado-ooc:
extends: .Vivado
stage: Out-Of-Context
tags:
- Medium
variables:
GIT_SUBMODULE_STRATEGY: recursive
artifacts:
expire_in: 1 day
.Vivado-synth:
extends: .Vivado
stage: Synthesis
tags:
- Large
variables:
GIT_SUBMODULE_STRATEGY: recursive
artifacts:
expire_in: 1 day
ToggleTest-prepare:
extends: .Vivado
stage: Prepare
script:
- ./tools/GitLab-CI/Vivado.run.sh -d --all --prepare
- cp temp/Vivado/ToggleTest/out-of-context.yml .
artifacts:
paths:
- out-of-context.yml
PS_ClockConverter_0-synth:
extends: .Vivado-synth
script:
- echo "synthesis job for PS_ClockConverter_0" > PS_ClockConverter_0.txt
artifacts:
paths:
- PS_ClockConverter_0.txt
PS_DataFIFO_0_0-synth:
extends: .Vivado-synth
script:
- echo "synthesis job for PS_DataFIFO_0_0" > PS_DataFIFO_0_0.txt
artifacts:
paths:
- PS_DataFIFO_0_0.txt
PS_DataFIFO_1_0-synth:
extends: .Vivado-synth
script:
- echo "synthesis job for PS_DataFIFO_1_0" > PS_DataFIFO_1_0.txt
artifacts:
paths:
- PS_DataFIFO_1_0.txt
PS_DataFIFO_2_0-synth:
extends: .Vivado-synth
script:
- echo "synthesis job for PS_DataFIFO_2_0" > PS_DataFIFO_2_0.txt
artifacts:
paths:
- PS_DataFIFO_2_0.txt
PS_DataFIFO_3_0-synth:
extends: .Vivado-synth
script:
- echo "synthesis job for PS_DataFIFO_3_0" > PS_DataFIFO_3_0.txt
artifacts:
paths:
- PS_DataFIFO_3_0.txt
PS_DataWidthConverter_0-synth:
extends: .Vivado-synth
script:
- echo "synthesis job for PS_DataWidthConverter_0" > PS_DataWidthConverter_0.txt
artifacts:
paths:
- PS_DataWidthConverter_0.txt
PS_LowSpeedCrossbar_0-synth:
extends: .Vivado-synth
script:
- echo "synthesis job for PS_LowSpeedCrossbar_0" > PS_LowSpeedCrossbar_0.txt
artifacts:
paths:
- PS_LowSpeedCrossbar_0.txt
PS_MainCrossbar_0-synth:
extends: .Vivado-synth
script:
- echo "synthesis job for PS_MainCrossbar_0" > PS_MainCrossbar_0.txt
artifacts:
paths:
- PS_MainCrossbar_0.txt
PS_MemoryTester_0_0-synth:
extends: .Vivado-synth
script:
- echo "synthesis job for PS_MemoryTester_0_0" > PS_MemoryTester_0_0.txt
artifacts:
paths:
- PS_MemoryTester_0_0.txt
PS_MemoryTester_1_0-synth:
extends: .Vivado-synth
script:
- echo "synthesis job for PS_MemoryTester_1_0" > PS_MemoryTester_1_0.txt
artifacts:
paths:
- PS_MemoryTester_1_0.txt
PS_MemoryTester_2_0-synth:
extends: .Vivado-synth
script:
- echo "synthesis job for PS_MemoryTester_2_0" > PS_MemoryTester_2_0.txt
artifacts:
paths:
- PS_MemoryTester_2_0.txt
PS_MemoryTester_3_0-synth:
extends: .Vivado-synth
script:
- echo "synthesis job for PS_MemoryTester_3_0" > PS_MemoryTester_3_0.txt
artifacts:
paths:
- PS_MemoryTester_3_0.txt
PS_PowerSink_0-synth:
extends: .Vivado-synth
script:
- echo "synthesis job for PS_PowerSink_0" > PS_PowerSink_0.txt
artifacts:
paths:
- PS_PowerSink_0.txt
PS_ProtocolConvert_0-synth:
extends: .Vivado-synth
script:
- echo "synthesis job for PS_ProtocolConvert_0" > PS_ProtocolConvert_0.txt
artifacts:
paths:
- PS_ProtocolConvert_0.txt
PS_ZynqUltra_PS_0-synth:
extends: .Vivado-synth
script:
- echo "synthesis job for PS_ZynqUltra_PS_0" > PS_ZynqUltra_PS_0.txt
artifacts:
paths:
- PS_ZynqUltra_PS_0.txt
aggregate:
tags:
- Medium
- Vivado-2018.3
stage: Aggregation
needs:
- job: PS_ClockConverter_0-synth
artifacts: true
- job: PS_DataFIFO_0_0-synth
artifacts: true
- job: PS_DataFIFO_1_0-synth
artifacts: true
- job: PS_DataFIFO_2_0-synth
artifacts: true
- job: PS_DataFIFO_3_0-synth
artifacts: true
- job: PS_DataWidthConverter_0-synth
artifacts: true
- job: PS_LowSpeedCrossbar_0-synth
artifacts: true
- job: PS_MainCrossbar_0-synth
artifacts: true
- job: PS_MemoryTester_0_0-synth
artifacts: true
- job: PS_MemoryTester_1_0-synth
artifacts: true
- job: PS_MemoryTester_2_0-synth
artifacts: true
- job: PS_MemoryTester_3_0-synth
artifacts: true
- job: PS_PowerSink_0-synth
artifacts: true
- job: PS_ProtocolConvert_0-synth
artifacts: true
- job: PS_ZynqUltra_PS_0-synth
artifacts: true
script:
- cat *.txt > jobs.txt
- less jobs.txt
artifacts:
paths:
- jobs.txt
Output of checks
(If you are reporting a bug on GitLab.com, write: This bug happens on GitLab.com)
Results of GitLab environment info
Not needed.
Results of GitLab application Check
Not needed.
Possible fixes
Related issues
Edited by Patrick Lehmann