cici-tools 0.19.0__tar.gz → 0.19.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. {cici_tools-0.19.0 → cici_tools-0.19.2}/.gitlab-ci.yml +4 -4
  2. {cici_tools-0.19.0 → cici_tools-0.19.2}/.pre-commit-config.yaml +6 -5
  3. {cici_tools-0.19.0 → cici_tools-0.19.2}/PKG-INFO +1 -1
  4. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/_version.py +3 -3
  5. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/providers/gitlab/models.py +1 -1
  6. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/providers/gitlab/normalizers.py +11 -8
  7. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/providers/gitlab/yaml_style.py +32 -19
  8. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/utils.py +0 -27
  9. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici_tools.egg-info/PKG-INFO +1 -1
  10. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici_tools.egg-info/SOURCES.txt +5 -0
  11. cici_tools-0.19.2/tests/fixtures/gitlab/image/.cici/.gitlab-ci.yml +27 -0
  12. cici_tools-0.19.2/tests/fixtures/gitlab/image/.cici/config.yaml +14 -0
  13. cici_tools-0.19.2/tests/fixtures/gitlab/image/image-check.yml +31 -0
  14. cici_tools-0.19.2/tests/fixtures/gitlab/multi-line-script/.cici/.gitlab-ci.yml +35 -0
  15. cici_tools-0.19.2/tests/fixtures/gitlab/multi-line-script/container-docker-multiarch.yml +27 -0
  16. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/service-key/container-docker-multiarch-amd64.yml +10 -3
  17. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/service-key/container-docker-multiarch-arm32v6.yml +10 -3
  18. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/service-key/container-docker-multiarch-arm32v7.yml +10 -3
  19. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/service-key/container-docker-multiarch-arm64v8.yml +10 -3
  20. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/service-key/container-docker-multiarch-i386.yml +10 -3
  21. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/service-key/container-docker-multiarch.yml +10 -3
  22. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/service-key/container-docker.yml +8 -2
  23. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/service-key/container-trivy.yml +15 -5
  24. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/test_cli.py +8 -1
  25. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/test_resolve_targets.py +2 -4
  26. cici_tools-0.19.2/tests/test_yaml_style.py +323 -0
  27. cici_tools-0.19.0/tests/test_yaml_style.py +0 -147
  28. {cici_tools-0.19.0 → cici_tools-0.19.2}/.cici/.gitlab-ci.yml +0 -0
  29. {cici_tools-0.19.0 → cici_tools-0.19.2}/.cici/README.md.j2 +0 -0
  30. {cici_tools-0.19.0 → cici_tools-0.19.2}/.cici/config.yaml +0 -0
  31. {cici_tools-0.19.0 → cici_tools-0.19.2}/.dockerignore +0 -0
  32. {cici_tools-0.19.0 → cici_tools-0.19.2}/.gitignore +0 -0
  33. {cici_tools-0.19.0 → cici_tools-0.19.2}/.licenserc.yaml +0 -0
  34. {cici_tools-0.19.0 → cici_tools-0.19.2}/.pre-commit-hooks.yaml +0 -0
  35. {cici_tools-0.19.0 → cici_tools-0.19.2}/.prettierignore +0 -0
  36. {cici_tools-0.19.0 → cici_tools-0.19.2}/.prettierrc.yaml +0 -0
  37. {cici_tools-0.19.0 → cici_tools-0.19.2}/.secrets.baseline +0 -0
  38. {cici_tools-0.19.0 → cici_tools-0.19.2}/Dockerfile +0 -0
  39. {cici_tools-0.19.0 → cici_tools-0.19.2}/LICENSE +0 -0
  40. {cici_tools-0.19.0 → cici_tools-0.19.2}/MANIFEST.in +0 -0
  41. {cici_tools-0.19.0 → cici_tools-0.19.2}/NOTICE +0 -0
  42. {cici_tools-0.19.0 → cici_tools-0.19.2}/README.md +0 -0
  43. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/__init__.py +0 -0
  44. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/__main__.py +0 -0
  45. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/cli/__init__.py +0 -0
  46. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/cli/bundle.py +0 -0
  47. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/cli/readme.py +0 -0
  48. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/cli/schema.py +0 -0
  49. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/cli/update.py +0 -0
  50. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/config/__init__.py +0 -0
  51. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/config/project/__init__.py +0 -0
  52. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/config/project/models.py +0 -0
  53. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/config/project/serializers.py +0 -0
  54. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/config/user.py +0 -0
  55. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/constants.py +0 -0
  56. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/exceptions.py +0 -0
  57. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/main.py +0 -0
  58. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/paths.py +0 -0
  59. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/providers/__init__.py +0 -0
  60. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/providers/gitlab/__init__.py +0 -0
  61. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/providers/gitlab/constants.py +0 -0
  62. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/providers/gitlab/serializers.py +0 -0
  63. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/providers/gitlab/utils.py +0 -0
  64. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/py.typed +0 -0
  65. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/schema/LICENSE.gitlab +0 -0
  66. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/schema/__init__.py +0 -0
  67. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/schema/gitlab-ci.json +0 -0
  68. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/templates/README.md.j2 +0 -0
  69. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/templates/__init__.py +0 -0
  70. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/templates/brief.md.j2 +0 -0
  71. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/templates/description.md.j2 +0 -0
  72. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/templates/group-list.j2 +0 -0
  73. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/templates/groups.md.j2 +0 -0
  74. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/templates/target-list.md.j2 +0 -0
  75. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/templates/target-table.md.j2 +0 -0
  76. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/templates/targets.md.j2 +0 -0
  77. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/templates/variable-list.md.j2 +0 -0
  78. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici/templates/variables.md.j2 +0 -0
  79. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici-bundle.yml +0 -0
  80. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici-readme.yml +0 -0
  81. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici-update.yml +0 -0
  82. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici_tools.egg-info/dependency_links.txt +0 -0
  83. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici_tools.egg-info/entry_points.txt +0 -0
  84. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici_tools.egg-info/requires.txt +0 -0
  85. {cici_tools-0.19.0 → cici_tools-0.19.2}/cici_tools.egg-info/top_level.txt +0 -0
  86. {cici_tools-0.19.0 → cici_tools-0.19.2}/docs/bundle.md +0 -0
  87. {cici_tools-0.19.0 → cici_tools-0.19.2}/docs/config-file.md +0 -0
  88. {cici_tools-0.19.0 → cici_tools-0.19.2}/docs/getting-started.md +0 -0
  89. {cici_tools-0.19.0 → cici_tools-0.19.2}/docs/gitlab-includes.md +0 -0
  90. {cici_tools-0.19.0 → cici_tools-0.19.2}/docs/index.md +0 -0
  91. {cici_tools-0.19.0 → cici_tools-0.19.2}/docs/install.md +0 -0
  92. {cici_tools-0.19.0 → cici_tools-0.19.2}/docs/readme.md +0 -0
  93. {cici_tools-0.19.0 → cici_tools-0.19.2}/docs/style.css +0 -0
  94. {cici_tools-0.19.0 → cici_tools-0.19.2}/docs/update.md +0 -0
  95. {cici_tools-0.19.0 → cici_tools-0.19.2}/makefile +0 -0
  96. {cici_tools-0.19.0 → cici_tools-0.19.2}/mkdocs.yml +0 -0
  97. {cici_tools-0.19.0 → cici_tools-0.19.2}/pyproject.toml +0 -0
  98. {cici_tools-0.19.0 → cici_tools-0.19.2}/requirements.txt +0 -0
  99. {cici_tools-0.19.0 → cici_tools-0.19.2}/scripts/gen-api-doc.py +0 -0
  100. {cici_tools-0.19.0 → cici_tools-0.19.2}/setup.cfg +0 -0
  101. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/extends/.cici/.gitlab-ci.yml +0 -0
  102. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/extends/simple-job.yml +0 -0
  103. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/helm/.cici/.gitlab-ci.yml +0 -0
  104. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/helm/helm-cm-push.yml +0 -0
  105. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/helm/helm-docs.yml +0 -0
  106. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/helm/helm-lint.yml +0 -0
  107. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/.cici/.gitlab-ci.yml +0 -0
  108. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/.cici/config.yaml +0 -0
  109. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-development-apply.yml +0 -0
  110. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-development-auto-apply.yml +0 -0
  111. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-development-destroy.yml +0 -0
  112. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-development-plan.yml +0 -0
  113. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-development-trivy.yml +0 -0
  114. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-development-validate.yml +0 -0
  115. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-fmt.yml +0 -0
  116. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-module-build.yml +0 -0
  117. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-module-release.yml +0 -0
  118. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-production-apply.yml +0 -0
  119. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-production-auto-apply.yml +0 -0
  120. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-production-destroy.yml +0 -0
  121. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-production-plan.yml +0 -0
  122. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-production-trivy.yml +0 -0
  123. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-production-validate.yml +0 -0
  124. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-staging-apply.yml +0 -0
  125. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-staging-auto-apply.yml +0 -0
  126. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-staging-destroy.yml +0 -0
  127. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-staging-plan.yml +0 -0
  128. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-staging-trivy.yml +0 -0
  129. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-staging-validate.yml +0 -0
  130. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-trivy.yml +0 -0
  131. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/job-variables/opentofu-validate.yml +0 -0
  132. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/keyword-pages/.cici/.gitlab-ci.yml +0 -0
  133. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/keyword-pages/no-pages.yml +0 -0
  134. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/keyword-pages/pages-all.yml +0 -0
  135. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/keyword-pages/pages-expire-in.yml +0 -0
  136. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/keyword-pages/pages-expires-in.yml +0 -0
  137. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/keyword-pages/pages-path-prefix.yml +0 -0
  138. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/keyword-pages/pages-publish.yml +0 -0
  139. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/keyword-pages/pages.yml +0 -0
  140. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/library-validator/.cici/README.md.j2 +0 -0
  141. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/library-validator/.cici/config.yaml +0 -0
  142. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/library-validator/README.md +0 -0
  143. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/list-anchors/.cici/.gitlab-ci.yml +0 -0
  144. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/list-anchors/install.yml +0 -0
  145. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/nested-extends/.cici/.gitlab-ci.yml +0 -0
  146. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/nested-extends/simple-job.yml +0 -0
  147. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/reports/.cici/.gitlab-ci.yml +0 -0
  148. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/reports/reports-container-scanning.yml +0 -0
  149. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/reports/reports-coverage.yml +0 -0
  150. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/reports/reports-junit.yml +0 -0
  151. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/reports/reports-terraform.yml +0 -0
  152. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/service-key/.cici/.gitlab-ci.yml +0 -0
  153. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/service-key/.cici/config.yaml +0 -0
  154. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/service-key/container-docker-multiarch-manifest.yml +0 -0
  155. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/service-key/container-hadolint.yml +0 -0
  156. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/simple/.cici/.gitlab-ci.yml +0 -0
  157. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/simple/simple-job.yml +0 -0
  158. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/stages/.cici/.gitlab-ci.yml +0 -0
  159. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/stages/simple-job.yml +0 -0
  160. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/.gitlab-ci.yml +0 -0
  161. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/config.yaml +0 -0
  162. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-development-apply.yaml +0 -0
  163. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-development-auto-apply.yaml +0 -0
  164. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-development-destroy.yaml +0 -0
  165. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-development-plan.yaml +0 -0
  166. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-development-validate.yaml +0 -0
  167. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-fmt.yaml +0 -0
  168. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-module-build.yaml +0 -0
  169. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-module-release.yaml +0 -0
  170. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-production-apply.yaml +0 -0
  171. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-production-auto-apply.yaml +0 -0
  172. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-production-destroy.yaml +0 -0
  173. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-production-plan.yaml +0 -0
  174. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-production-trivy.yaml +0 -0
  175. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-production-validate.yaml +0 -0
  176. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-staging-apply.yaml +0 -0
  177. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-staging-auto-apply.yaml +0 -0
  178. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-staging-destroy.yaml +0 -0
  179. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-staging-plan.yaml +0 -0
  180. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-staging-trivy.yaml +0 -0
  181. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-staging-validate.yaml +0 -0
  182. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-trivy.yaml +0 -0
  183. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/opentofu-validate.yaml +0 -0
  184. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/.cici/targets/tofu-development-trivy.yaml +0 -0
  185. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-development-apply.yml +0 -0
  186. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-development-auto-apply.yml +0 -0
  187. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-development-destroy.yml +0 -0
  188. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-development-plan.yml +0 -0
  189. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-development-trivy.yml +0 -0
  190. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-development-validate.yml +0 -0
  191. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-fmt.yml +0 -0
  192. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-module-build.yml +0 -0
  193. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-module-release.yml +0 -0
  194. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-production-apply.yml +0 -0
  195. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-production-auto-apply.yml +0 -0
  196. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-production-destroy.yml +0 -0
  197. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-production-plan.yml +0 -0
  198. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-production-trivy.yml +0 -0
  199. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-production-validate.yml +0 -0
  200. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-staging-apply.yml +0 -0
  201. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-staging-auto-apply.yml +0 -0
  202. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-staging-destroy.yml +0 -0
  203. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-staging-plan.yml +0 -0
  204. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-staging-trivy.yml +0 -0
  205. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-staging-validate.yml +0 -0
  206. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-trivy.yml +0 -0
  207. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/targets-dir/opentofu-validate.yml +0 -0
  208. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/terraform/.cici/.gitlab-ci.yml +0 -0
  209. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/terraform/terraform-fmt.yml +0 -0
  210. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/terraform/terraform-production-apply.yml +0 -0
  211. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/terraform/terraform-production-plan.yml +0 -0
  212. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/terraform/terraform-staging-apply.yml +0 -0
  213. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/terraform/terraform-staging-destroy.yml +0 -0
  214. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/variables/.cici/.gitlab-ci.yml +0 -0
  215. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/fixtures/gitlab/variables/simple-job.yml +0 -0
  216. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/test_build.py +0 -0
  217. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/test_expand_job_extends.py +0 -0
  218. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/test_import.py +0 -0
  219. {cici_tools-0.19.0 → cici_tools-0.19.2}/tests/test_precommit_hook_injection.py +0 -0
@@ -16,7 +16,7 @@ include:
16
16
  - local: cici-bundle.yml
17
17
  - local: cici-update.yml
18
18
  - project: saferatday0/library/container
19
- ref: 0.9.2
19
+ ref: 0.9.3
20
20
  file:
21
21
  - container-docker.yml
22
22
  - container-hadolint.yml
@@ -33,15 +33,15 @@ include:
33
33
  file:
34
34
  - mkdocs-build.yml
35
35
  - project: saferatday0/library/pages
36
- ref: 0.5.0
36
+ ref: 0.6.0
37
37
  file:
38
38
  - pages.yml
39
39
  - project: saferatday0/library/prettier
40
- ref: 0.7.1
40
+ ref: 0.8.0
41
41
  file:
42
42
  - prettier.yml
43
43
  - project: saferatday0/library/python
44
- ref: 0.22.0
44
+ ref: 0.23.0
45
45
  file:
46
46
  - python-autoflake.yml
47
47
  - python-black.yml
@@ -12,12 +12,13 @@ repos:
12
12
  - id: trailing-whitespace
13
13
 
14
14
  - repo: https://gitlab.com/saferatday0/library/python
15
- rev: "0.22.0"
15
+ rev: "0.23.0"
16
16
  hooks:
17
17
  - id: python-autoflake
18
18
  - id: python-black
19
19
  - id: python-docformatter
20
20
  - id: python-isort
21
+ - id: python-pyroma
21
22
  - id: python-pip-compile
22
23
  args:
23
24
  [
@@ -30,18 +31,18 @@ repos:
30
31
  ]
31
32
 
32
33
  - repo: https://gitlab.com/saferatday0/library/container
33
- rev: "0.8.1"
34
+ rev: "0.9.3"
34
35
  hooks:
35
36
  - id: container-hadolint
36
37
 
37
38
  - repo: https://gitlab.com/saferatday0/library/prettier
38
- rev: "0.7.1"
39
+ rev: "0.8.0"
39
40
  hooks:
40
41
  - id: prettier
41
42
  exclude: "^\\.gitlab-ci\\.yml$"
42
43
 
43
44
  - repo: https://gitlab.com/saferatday0/badgie
44
- rev: "0.14.2"
45
+ rev: "0.14.4"
45
46
  hooks:
46
47
  - id: badgie
47
48
 
@@ -73,7 +74,7 @@ repos:
73
74
  always_run: true
74
75
 
75
76
  - repo: https://gitlab.com/saferatday0/library/license-eye
76
- rev: "0.9.0"
77
+ rev: "0.10.0"
77
78
  hooks:
78
79
  - id: license-eye-header-fix
79
80
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cici-tools
3
- Version: 0.19.0
3
+ Version: 0.19.2
4
4
  Summary: Continuous Integration Catalog Interface
5
5
  Author-email: Digital Safety Research Institute <contact@dsri.org>
6
6
  License: Apache-2.0
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.19.0'
32
- __version_tuple__ = version_tuple = (0, 19, 0)
31
+ __version__ = version = '0.19.2'
32
+ __version_tuple__ = version_tuple = (0, 19, 2)
33
33
 
34
- __commit_id__ = commit_id = 'g2f00c2fa8'
34
+ __commit_id__ = commit_id = 'g5f755c70a'
@@ -85,7 +85,7 @@ class IDToken(msgspec.Struct, omit_defaults=True, frozen=True, kw_only=True):
85
85
  aud: Union[str, list[str]] = field(default_factory=list)
86
86
 
87
87
 
88
- class Image(msgspec.Struct, omit_defaults=True, frozen=True, kw_only=True, tag="image"):
88
+ class Image(msgspec.Struct, omit_defaults=True, frozen=True, kw_only=True, tag=False):
89
89
  name: str
90
90
  entrypoint: Union[str, list[str]] = field(default_factory=list)
91
91
  pull_policy: Union[str, list[str]] = field(default_factory=list)
@@ -3,7 +3,9 @@
3
3
 
4
4
  from typing import Any, Union
5
5
 
6
- from ruamel.yaml.scalarstring import ScalarString
6
+ from ruamel.yaml.scalarstring import FoldedScalarString, ScalarString
7
+
8
+ FOLDED_SCALAR_FOLD_POINTS = {}
7
9
 
8
10
 
9
11
  # Recursivley convert ruamel ScalarStrng objects into plain str """
@@ -11,7 +13,15 @@ from ruamel.yaml.scalarstring import ScalarString
11
13
  # they will be turned into plain "foo" which msgspec can handle
12
14
  # test this frst, test for each of the ifs and make sure the nesting is right.
13
15
  # do simplest tests first, so one that is empty etc. Need to verify.
16
+ #
17
+ # Keep fold_pos for folded scalar strings, if strings aren't changed
18
+ # then re-use fold_pos instead of trying to find best fold positions
14
19
  def normalize_scalars(obj):
20
+ if isinstance(obj, FoldedScalarString):
21
+ full_str = str(obj)
22
+ if hasattr(obj, "fold_pos"):
23
+ FOLDED_SCALAR_FOLD_POINTS[full_str] = obj.fold_pos
24
+ return full_str
15
25
  if isinstance(obj, ScalarString):
16
26
  return str(obj)
17
27
  elif isinstance(obj, dict):
@@ -24,13 +34,6 @@ def normalize_scalars(obj):
24
34
  return obj
25
35
 
26
36
 
27
- # bridge between raw YAML and ruamels quirky Python objects
28
- # and the strict Job/File models
29
- def normalize_all(data: dict) -> dict:
30
- # Apply all normalizations for comparisons
31
- return normalize_variables(normalize_jobs_in_data(data))
32
-
33
-
34
37
  def normalize_variables(data: dict, *, inside_job: bool = False) -> dict:
35
38
  # Normalize variables: keep top-level structured, flatten job-level
36
39
  # inside_job is going to tell me if i am currently in a job definition or not
@@ -10,26 +10,30 @@ from ruamel.yaml.scalarstring import (
10
10
  PreservedScalarString,
11
11
  )
12
12
 
13
+ from .normalizers import FOLDED_SCALAR_FOLD_POINTS
14
+
13
15
 
14
16
  # to force ruamel.yml to always emit double quoted strings """" and not single "''"
15
17
  def always_double_quoted(dumper, data):
16
18
  return dumper.represent_scalar("tag:yaml.org,2002:str", data, style='"')
17
19
 
18
20
 
19
- def wrap_if_long(s: str, width: int = 120) -> str:
20
- # Wrap long strings into multiple lines for YAML folding.
21
- if len(s) <= width:
22
- return s
23
- # break on spaces without splitting words
24
- parts = []
25
- while len(s) > width:
26
- split_at = s.rfind(" ", 0, width)
27
- if split_at == -1:
28
- split_at = width
29
- parts.append(s[:split_at].rstrip())
30
- s = s[split_at:].lstrip()
31
- parts.append(s)
32
- return "\n".join(parts)
21
+ # Return indexes of spaces where a long string should fold into multiple lines.
22
+ # fold_pos is highest index of a space < width, if no space then lowest index > width
23
+ def get_fold_positions(s: str, width: int = 120) -> list[int]:
24
+ all_pos = []
25
+ start_pos = 0
26
+ while start_pos + width < len(s):
27
+ end_pos = start_pos + width
28
+ fold_pos = s.rfind(" ", start_pos, end_pos)
29
+ if fold_pos == -1:
30
+ fold_pos = s.find(" ", end_pos)
31
+ if fold_pos > -1:
32
+ all_pos.append(fold_pos)
33
+ start_pos = fold_pos + 1
34
+ else:
35
+ start_pos = len(s)
36
+ return all_pos
33
37
 
34
38
 
35
39
  # handling string literals
@@ -44,6 +48,13 @@ def make_scalar_string(line: str, quote: bool = False):
44
48
  if "\n" in unindented:
45
49
  return PreservedScalarString(line)
46
50
 
51
+ # if it was a folded scalar string before, make it one again
52
+ # and re-use fold_pos instead of trying to find good breakpoints
53
+ if unindented in FOLDED_SCALAR_FOLD_POINTS:
54
+ folded = FoldedScalarString(unindented)
55
+ folded.fold_pos = FOLDED_SCALAR_FOLD_POINTS[unindented] # type: ignore[attr-defined]
56
+ return folded
57
+
47
58
  # fix extra - >- between lines accidentally created with echo commands
48
59
  if unindented.startswith("echo "):
49
60
  stripped = unindented.strip()
@@ -77,7 +88,9 @@ def make_scalar_string(line: str, quote: bool = False):
77
88
 
78
89
  # Multi-command sequences get folded
79
90
  if any(sym in unindented for sym in ("&&", ";", "\\")):
80
- return FoldedScalarString(wrap_if_long(unindented))
91
+ folded = FoldedScalarString(unindented)
92
+ folded.fold_pos = get_fold_positions(unindented) # type: ignore[attr-defined]
93
+ return folded
81
94
 
82
95
  # Long assignments get folded
83
96
  if (
@@ -85,7 +98,9 @@ def make_scalar_string(line: str, quote: bool = False):
85
98
  and not unindented.startswith(("export ", "set ", "$"))
86
99
  and len(unindented) > 100
87
100
  ):
88
- return FoldedScalarString(wrap_if_long(unindented))
101
+ folded = FoldedScalarString(unindented)
102
+ folded.fold_pos = get_fold_positions(unindented) # type: ignore[attr-defined]
103
+ return folded
89
104
 
90
105
  # Explicit quoting when requested
91
106
  if quote:
@@ -114,7 +129,6 @@ def style_scalars(
114
129
  styled: dict[str, Any] = {}
115
130
 
116
131
  for k, v in list(obj.items()):
117
- v = obj[k]
118
132
  # 1. keep GitLab workflow 'if' rules unquoted
119
133
  if k == "if" and isinstance(v, str):
120
134
  styled[k] = v
@@ -283,7 +297,6 @@ def style_scalars(
283
297
  # 9. everything else, recurse normally
284
298
  else:
285
299
  styled[k] = style_scalars(v, quote_keys=quote_keys, parent_key=k)
286
-
287
300
  # reinsert any keys skipped during iteration ie dependencies
288
301
  for k, v in obj.items():
289
302
  if k not in styled:
@@ -308,7 +321,7 @@ def style_scalars(
308
321
  elif parent_key in {"script", "before_script", "after_script"}:
309
322
  stripped_item = item.strip()
310
323
 
311
- # keep raw shell assignements in plain text (avoid escaping inside quotes)
324
+ # keep raw shell assignments in plain text (avoid escaping inside quotes)
312
325
  if "=" in stripped_item.split()[0] and not stripped_item.startswith(
313
326
  "$"
314
327
  ):
@@ -1,7 +1,6 @@
1
1
  # SPDX-FileCopyrightText: UL Research Institutes
2
2
  # SPDX-License-Identifier: Apache-2.0
3
3
 
4
- from typing import Any, Union
5
4
 
6
5
  from ruamel.yaml.scalarstring import (
7
6
  DoubleQuotedScalarString,
@@ -31,10 +30,6 @@ def merge_dict(orig: dict, new: dict) -> dict:
31
30
  return final
32
31
 
33
32
 
34
- def make_multiline_string(line):
35
- return PreservedScalarString(line)
36
-
37
-
38
33
  def make_scalar_string(line, quote=False):
39
34
  if "\n" in line.strip():
40
35
  return PreservedScalarString(line)
@@ -43,25 +38,3 @@ def make_scalar_string(line, quote=False):
43
38
  elif quote:
44
39
  return DoubleQuotedScalarString(line)
45
40
  return line
46
-
47
-
48
- def make_quoted_string(line):
49
- return make_scalar_string(line, quote=True)
50
-
51
-
52
- def make_scalar_list(value: list[str]) -> list[Any]:
53
- return [make_scalar_string(line) for line in value]
54
-
55
-
56
- def make_quoted_list(value: list[str]) -> list[Any]:
57
- return [make_scalar_string(line, quote=True) for line in value]
58
-
59
-
60
- def make_quoted_list_or_string(object: Union[str, list[str]]) -> list[Any]:
61
- if isinstance(object, str):
62
- return make_quoted_string(object)
63
- return make_quoted_list(object)
64
-
65
-
66
- def make_quoted_dict(object):
67
- return {key: make_quoted_string(value) for key, value in object.items()}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cici-tools
3
- Version: 0.19.0
3
+ Version: 0.19.2
4
4
  Summary: Continuous Integration Catalog Interface
5
5
  Author-email: Digital Safety Research Institute <contact@dsri.org>
6
6
  License: Apache-2.0
@@ -92,6 +92,9 @@ tests/fixtures/gitlab/helm/helm-cm-push.yml
92
92
  tests/fixtures/gitlab/helm/helm-docs.yml
93
93
  tests/fixtures/gitlab/helm/helm-lint.yml
94
94
  tests/fixtures/gitlab/helm/.cici/.gitlab-ci.yml
95
+ tests/fixtures/gitlab/image/image-check.yml
96
+ tests/fixtures/gitlab/image/.cici/.gitlab-ci.yml
97
+ tests/fixtures/gitlab/image/.cici/config.yaml
95
98
  tests/fixtures/gitlab/job-variables/opentofu-development-apply.yml
96
99
  tests/fixtures/gitlab/job-variables/opentofu-development-auto-apply.yml
97
100
  tests/fixtures/gitlab/job-variables/opentofu-development-destroy.yml
@@ -130,6 +133,8 @@ tests/fixtures/gitlab/library-validator/.cici/README.md.j2
130
133
  tests/fixtures/gitlab/library-validator/.cici/config.yaml
131
134
  tests/fixtures/gitlab/list-anchors/install.yml
132
135
  tests/fixtures/gitlab/list-anchors/.cici/.gitlab-ci.yml
136
+ tests/fixtures/gitlab/multi-line-script/container-docker-multiarch.yml
137
+ tests/fixtures/gitlab/multi-line-script/.cici/.gitlab-ci.yml
133
138
  tests/fixtures/gitlab/nested-extends/simple-job.yml
134
139
  tests/fixtures/gitlab/nested-extends/.cici/.gitlab-ci.yml
135
140
  tests/fixtures/gitlab/reports/reports-container-scanning.yml
@@ -0,0 +1,27 @@
1
+ # SPDX-FileCopyrightText: UL Research Institutes
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ stages:
5
+ - test
6
+ - build
7
+ - deploy
8
+
9
+ workflow:
10
+ rules:
11
+ - if: $CI_PIPELINE_SOURCE == "push" && $CI_OPEN_MERGE_REQUESTS
12
+ when: never
13
+ - when: always
14
+
15
+ image-check:
16
+ stage: test
17
+ image:
18
+ name: "${CONTAINER_PROXY}apache/skywalking-eyes"
19
+ entrypoint: ["/bin/sh", "-ce"]
20
+ cache: {}
21
+ dependencies: []
22
+ variables:
23
+ GIT_DEPTH: "1"
24
+ GIT_SUBMODULE_STRATEGY: "none"
25
+ script:
26
+ - license-eye header check
27
+ needs: []
@@ -0,0 +1,14 @@
1
+ # SPDX-FileCopyrightText: UL Research Institutes
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ name: image-check
5
+
6
+ brief: >-
7
+ Check image keyword.
8
+
9
+ targets:
10
+ - name: image-check
11
+ brief: >-
12
+ check image keyword works
13
+ groups:
14
+ - format
@@ -0,0 +1,31 @@
1
+ #
2
+ # This file is generated by cici-tools with the following command:
3
+ #
4
+ # cici bundle
5
+ #
6
+ stages:
7
+ - test
8
+ - build
9
+ - deploy
10
+
11
+ workflow:
12
+ rules:
13
+ - if: $CI_PIPELINE_SOURCE == "push" && $CI_OPEN_MERGE_REQUESTS
14
+ when: never
15
+ - when: always
16
+
17
+ image-check:
18
+ stage: test
19
+ image:
20
+ name: ${CONTAINER_PROXY}apache/skywalking-eyes
21
+ entrypoint:
22
+ - "/bin/sh"
23
+ - "-ce"
24
+ variables:
25
+ GIT_DEPTH: "1"
26
+ GIT_SUBMODULE_STRATEGY: none
27
+ script:
28
+ - license-eye header check
29
+ cache: {}
30
+ dependencies: []
31
+ needs: []
@@ -0,0 +1,35 @@
1
+ # SPDX-FileCopyrightText: UL Research Institutes
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ # check folded lines don't break commands
5
+
6
+
7
+ container-docker-multiarch:
8
+ stage: build
9
+ script:
10
+ # build image
11
+ # CONTAINER_PROXY cannot be used for multiarch container builds
12
+ # due to https://gitlab.com/gitlab-org/gitlab/-/issues/325669, so it
13
+ # is not passed via --build-arg
14
+ - >-
15
+ docker buildx build
16
+ --build-arg "CONTAINER_NAME=$CONTAINER_NAME"
17
+ --build-arg "CONTAINER_DOCKER_MACHINE_ARCH=$CONTAINER_DOCKER_MACHINE_ARCH"
18
+ --build-arg "CONTAINER_VERSION=$CONTAINER_VERSION"
19
+ --file "${CONTAINER_DOCKERFILE}"
20
+ --platform "$CONTAINER_DOCKER_PLATFORM"
21
+ --progress plain
22
+ --tag "${CONTAINER_IMAGE}-${CONTAINER_DOCKER_ARCH}"
23
+ $_CONTAINER_OPTS "${CONTAINER_CONTEXT}"
24
+
25
+ - pass
26
+
27
+ # run trivy
28
+ - >-
29
+ trivy image
30
+ --format json
31
+ --no-progress
32
+ -o "${CI_JOB_NAME_SLUG}.json"
33
+ $CONTAINER_TRIVY_OPTS
34
+ "${CONTAINER_IMAGE}-${CONTAINER_DOCKER_ARCH}"
35
+ || { TRIVY_FAILED=1 && test "$CONTAINER_TRIVY_ALLOW_FAIL" != 0 ; }
@@ -0,0 +1,27 @@
1
+ #
2
+ # This file is generated by cici-tools with the following command:
3
+ #
4
+ # cici bundle
5
+ #
6
+ container-docker-multiarch:
7
+ stage: build
8
+ script:
9
+ - >-
10
+ docker buildx build
11
+ --build-arg "CONTAINER_NAME=$CONTAINER_NAME"
12
+ --build-arg "CONTAINER_DOCKER_MACHINE_ARCH=$CONTAINER_DOCKER_MACHINE_ARCH"
13
+ --build-arg "CONTAINER_VERSION=$CONTAINER_VERSION"
14
+ --file "${CONTAINER_DOCKERFILE}"
15
+ --platform "$CONTAINER_DOCKER_PLATFORM"
16
+ --progress plain
17
+ --tag "${CONTAINER_IMAGE}-${CONTAINER_DOCKER_ARCH}"
18
+ $_CONTAINER_OPTS "${CONTAINER_CONTEXT}"
19
+ - pass
20
+ - >-
21
+ trivy image
22
+ --format json
23
+ --no-progress
24
+ -o "${CI_JOB_NAME_SLUG}.json"
25
+ $CONTAINER_TRIVY_OPTS
26
+ "${CONTAINER_IMAGE}-${CONTAINER_DOCKER_ARCH}"
27
+ || { TRIVY_FAILED=1 && test "$CONTAINER_TRIVY_ALLOW_FAIL" != 0 ; }
@@ -107,9 +107,16 @@ container-docker-multiarch-amd64:
107
107
  _CONTAINER_OPTS="$_CONTAINER_OPTS --tag ${CONTAINER_NAME}:latest-${CONTAINER_DOCKER_ARCH}"
108
108
  fi
109
109
  - >-
110
- docker buildx build --build-arg "CONTAINER_NAME=$CONTAINER_NAME" --build-arg "CONTAINER_DOCKER_MACHINE_ARCH=$CONTAINER_DOCKER_MACHINE_ARCH"
111
- --build-arg "CONTAINER_VERSION=$CONTAINER_VERSION" --file "${CONTAINER_DOCKERFILE}" --platform "$CONTAINER_DOCKER_PLATFORM"
112
- --progress plain --push --tag "${CONTAINER_IMAGE}-${CONTAINER_DOCKER_ARCH}" $_CONTAINER_OPTS "${CONTAINER_CONTEXT}"
110
+ docker buildx build
111
+ --build-arg "CONTAINER_NAME=$CONTAINER_NAME"
112
+ --build-arg "CONTAINER_DOCKER_MACHINE_ARCH=$CONTAINER_DOCKER_MACHINE_ARCH"
113
+ --build-arg "CONTAINER_VERSION=$CONTAINER_VERSION"
114
+ --file "${CONTAINER_DOCKERFILE}"
115
+ --platform "$CONTAINER_DOCKER_PLATFORM"
116
+ --progress plain
117
+ --push
118
+ --tag "${CONTAINER_IMAGE}-${CONTAINER_DOCKER_ARCH}"
119
+ $_CONTAINER_OPTS "${CONTAINER_CONTEXT}"
113
120
  - COSIGN_IMAGE_DIGEST="$(docker inspect --format='{{index .RepoDigests 0}}'
114
121
  "${CONTAINER_IMAGE}-${CONTAINER_DOCKER_ARCH}")"
115
122
  - cosign sign --yes "$COSIGN_IMAGE_DIGEST"
@@ -107,9 +107,16 @@ container-docker-multiarch-arm32v6:
107
107
  _CONTAINER_OPTS="$_CONTAINER_OPTS --tag ${CONTAINER_NAME}:latest-${CONTAINER_DOCKER_ARCH}"
108
108
  fi
109
109
  - >-
110
- docker buildx build --build-arg "CONTAINER_NAME=$CONTAINER_NAME" --build-arg "CONTAINER_DOCKER_MACHINE_ARCH=$CONTAINER_DOCKER_MACHINE_ARCH"
111
- --build-arg "CONTAINER_VERSION=$CONTAINER_VERSION" --file "${CONTAINER_DOCKERFILE}" --platform "$CONTAINER_DOCKER_PLATFORM"
112
- --progress plain --push --tag "${CONTAINER_IMAGE}-${CONTAINER_DOCKER_ARCH}" $_CONTAINER_OPTS "${CONTAINER_CONTEXT}"
110
+ docker buildx build
111
+ --build-arg "CONTAINER_NAME=$CONTAINER_NAME"
112
+ --build-arg "CONTAINER_DOCKER_MACHINE_ARCH=$CONTAINER_DOCKER_MACHINE_ARCH"
113
+ --build-arg "CONTAINER_VERSION=$CONTAINER_VERSION"
114
+ --file "${CONTAINER_DOCKERFILE}"
115
+ --platform "$CONTAINER_DOCKER_PLATFORM"
116
+ --progress plain
117
+ --push
118
+ --tag "${CONTAINER_IMAGE}-${CONTAINER_DOCKER_ARCH}"
119
+ $_CONTAINER_OPTS "${CONTAINER_CONTEXT}"
113
120
  - COSIGN_IMAGE_DIGEST="$(docker inspect --format='{{index .RepoDigests 0}}'
114
121
  "${CONTAINER_IMAGE}-${CONTAINER_DOCKER_ARCH}")"
115
122
  - cosign sign --yes "$COSIGN_IMAGE_DIGEST"
@@ -107,9 +107,16 @@ container-docker-multiarch-arm32v7:
107
107
  _CONTAINER_OPTS="$_CONTAINER_OPTS --tag ${CONTAINER_NAME}:latest-${CONTAINER_DOCKER_ARCH}"
108
108
  fi
109
109
  - >-
110
- docker buildx build --build-arg "CONTAINER_NAME=$CONTAINER_NAME" --build-arg "CONTAINER_DOCKER_MACHINE_ARCH=$CONTAINER_DOCKER_MACHINE_ARCH"
111
- --build-arg "CONTAINER_VERSION=$CONTAINER_VERSION" --file "${CONTAINER_DOCKERFILE}" --platform "$CONTAINER_DOCKER_PLATFORM"
112
- --progress plain --push --tag "${CONTAINER_IMAGE}-${CONTAINER_DOCKER_ARCH}" $_CONTAINER_OPTS "${CONTAINER_CONTEXT}"
110
+ docker buildx build
111
+ --build-arg "CONTAINER_NAME=$CONTAINER_NAME"
112
+ --build-arg "CONTAINER_DOCKER_MACHINE_ARCH=$CONTAINER_DOCKER_MACHINE_ARCH"
113
+ --build-arg "CONTAINER_VERSION=$CONTAINER_VERSION"
114
+ --file "${CONTAINER_DOCKERFILE}"
115
+ --platform "$CONTAINER_DOCKER_PLATFORM"
116
+ --progress plain
117
+ --push
118
+ --tag "${CONTAINER_IMAGE}-${CONTAINER_DOCKER_ARCH}"
119
+ $_CONTAINER_OPTS "${CONTAINER_CONTEXT}"
113
120
  - COSIGN_IMAGE_DIGEST="$(docker inspect --format='{{index .RepoDigests 0}}'
114
121
  "${CONTAINER_IMAGE}-${CONTAINER_DOCKER_ARCH}")"
115
122
  - cosign sign --yes "$COSIGN_IMAGE_DIGEST"
@@ -107,9 +107,16 @@ container-docker-multiarch-arm64v8:
107
107
  _CONTAINER_OPTS="$_CONTAINER_OPTS --tag ${CONTAINER_NAME}:latest-${CONTAINER_DOCKER_ARCH}"
108
108
  fi
109
109
  - >-
110
- docker buildx build --build-arg "CONTAINER_NAME=$CONTAINER_NAME" --build-arg "CONTAINER_DOCKER_MACHINE_ARCH=$CONTAINER_DOCKER_MACHINE_ARCH"
111
- --build-arg "CONTAINER_VERSION=$CONTAINER_VERSION" --file "${CONTAINER_DOCKERFILE}" --platform "$CONTAINER_DOCKER_PLATFORM"
112
- --progress plain --push --tag "${CONTAINER_IMAGE}-${CONTAINER_DOCKER_ARCH}" $_CONTAINER_OPTS "${CONTAINER_CONTEXT}"
110
+ docker buildx build
111
+ --build-arg "CONTAINER_NAME=$CONTAINER_NAME"
112
+ --build-arg "CONTAINER_DOCKER_MACHINE_ARCH=$CONTAINER_DOCKER_MACHINE_ARCH"
113
+ --build-arg "CONTAINER_VERSION=$CONTAINER_VERSION"
114
+ --file "${CONTAINER_DOCKERFILE}"
115
+ --platform "$CONTAINER_DOCKER_PLATFORM"
116
+ --progress plain
117
+ --push
118
+ --tag "${CONTAINER_IMAGE}-${CONTAINER_DOCKER_ARCH}"
119
+ $_CONTAINER_OPTS "${CONTAINER_CONTEXT}"
113
120
  - COSIGN_IMAGE_DIGEST="$(docker inspect --format='{{index .RepoDigests 0}}'
114
121
  "${CONTAINER_IMAGE}-${CONTAINER_DOCKER_ARCH}")"
115
122
  - cosign sign --yes "$COSIGN_IMAGE_DIGEST"
@@ -107,9 +107,16 @@ container-docker-multiarch-i386:
107
107
  _CONTAINER_OPTS="$_CONTAINER_OPTS --tag ${CONTAINER_NAME}:latest-${CONTAINER_DOCKER_ARCH}"
108
108
  fi
109
109
  - >-
110
- docker buildx build --build-arg "CONTAINER_NAME=$CONTAINER_NAME" --build-arg "CONTAINER_DOCKER_MACHINE_ARCH=$CONTAINER_DOCKER_MACHINE_ARCH"
111
- --build-arg "CONTAINER_VERSION=$CONTAINER_VERSION" --file "${CONTAINER_DOCKERFILE}" --platform "$CONTAINER_DOCKER_PLATFORM"
112
- --progress plain --push --tag "${CONTAINER_IMAGE}-${CONTAINER_DOCKER_ARCH}" $_CONTAINER_OPTS "${CONTAINER_CONTEXT}"
110
+ docker buildx build
111
+ --build-arg "CONTAINER_NAME=$CONTAINER_NAME"
112
+ --build-arg "CONTAINER_DOCKER_MACHINE_ARCH=$CONTAINER_DOCKER_MACHINE_ARCH"
113
+ --build-arg "CONTAINER_VERSION=$CONTAINER_VERSION"
114
+ --file "${CONTAINER_DOCKERFILE}"
115
+ --platform "$CONTAINER_DOCKER_PLATFORM"
116
+ --progress plain
117
+ --push
118
+ --tag "${CONTAINER_IMAGE}-${CONTAINER_DOCKER_ARCH}"
119
+ $_CONTAINER_OPTS "${CONTAINER_CONTEXT}"
113
120
  - COSIGN_IMAGE_DIGEST="$(docker inspect --format='{{index .RepoDigests 0}}'
114
121
  "${CONTAINER_IMAGE}-${CONTAINER_DOCKER_ARCH}")"
115
122
  - cosign sign --yes "$COSIGN_IMAGE_DIGEST"
@@ -104,9 +104,16 @@ container-docker-multiarch:
104
104
  _CONTAINER_OPTS="$_CONTAINER_OPTS --tag ${CONTAINER_NAME}:latest-${CONTAINER_DOCKER_ARCH}"
105
105
  fi
106
106
  - >-
107
- docker buildx build --build-arg "CONTAINER_NAME=$CONTAINER_NAME" --build-arg "CONTAINER_DOCKER_MACHINE_ARCH=$CONTAINER_DOCKER_MACHINE_ARCH"
108
- --build-arg "CONTAINER_VERSION=$CONTAINER_VERSION" --file "${CONTAINER_DOCKERFILE}" --platform "$CONTAINER_DOCKER_PLATFORM"
109
- --progress plain --push --tag "${CONTAINER_IMAGE}-${CONTAINER_DOCKER_ARCH}" $_CONTAINER_OPTS "${CONTAINER_CONTEXT}"
107
+ docker buildx build
108
+ --build-arg "CONTAINER_NAME=$CONTAINER_NAME"
109
+ --build-arg "CONTAINER_DOCKER_MACHINE_ARCH=$CONTAINER_DOCKER_MACHINE_ARCH"
110
+ --build-arg "CONTAINER_VERSION=$CONTAINER_VERSION"
111
+ --file "${CONTAINER_DOCKERFILE}"
112
+ --platform "$CONTAINER_DOCKER_PLATFORM"
113
+ --progress plain
114
+ --push
115
+ --tag "${CONTAINER_IMAGE}-${CONTAINER_DOCKER_ARCH}"
116
+ $_CONTAINER_OPTS "${CONTAINER_CONTEXT}"
110
117
  - COSIGN_IMAGE_DIGEST="$(docker inspect --format='{{index .RepoDigests 0}}'
111
118
  "${CONTAINER_IMAGE}-${CONTAINER_DOCKER_ARCH}")"
112
119
  - cosign sign --yes "$COSIGN_IMAGE_DIGEST"
@@ -104,8 +104,14 @@ container-docker:
104
104
  _CONTAINER_OPTS="$_CONTAINER_OPTS --tag ${CONTAINER_NAME}:latest"
105
105
  fi
106
106
  - >-
107
- docker buildx build --build-arg "CONTAINER_NAME=$CONTAINER_NAME" --build-arg "CONTAINER_PROXY=$CONTAINER_PROXY" --build-arg
108
- "CONTAINER_VERSION=$CONTAINER_VERSION" --file "${CONTAINER_DOCKERFILE}" --progress plain --push --tag "${CONTAINER_IMAGE}"
107
+ docker buildx build
108
+ --build-arg "CONTAINER_NAME=$CONTAINER_NAME"
109
+ --build-arg "CONTAINER_PROXY=$CONTAINER_PROXY"
110
+ --build-arg "CONTAINER_VERSION=$CONTAINER_VERSION"
111
+ --file "${CONTAINER_DOCKERFILE}"
112
+ --progress plain
113
+ --push
114
+ --tag "${CONTAINER_IMAGE}"
109
115
  $_CONTAINER_OPTS "${CONTAINER_CONTEXT}"
110
116
  - COSIGN_IMAGE_DIGEST="$(docker inspect --format='{{index .RepoDigests 0}}' "$CONTAINER_IMAGE")"
111
117
  - cosign sign --yes "$COSIGN_IMAGE_DIGEST"
@@ -102,12 +102,22 @@ container-trivy:
102
102
  | tar -xzf - -C /usr/local/bin/
103
103
  - >-
104
104
  docker pull "${CONTAINER_IMAGE}"
105
- - trivy image "${CONTAINER_IMAGE}" --format json --no-progress -o "${CI_JOB_NAME_SLUG}.json"
105
+ - >-
106
+ trivy image "${CONTAINER_IMAGE}"
107
+ --format json
108
+ --no-progress
109
+ -o "${CI_JOB_NAME_SLUG}.json"
106
110
  - trivy convert "${CI_JOB_NAME_SLUG}.json"
107
- - trivy convert "${CI_JOB_NAME_SLUG}.json" --format template --template "@/usr/local/bin/contrib/gitlab.tpl" -o
108
- "${CI_JOB_NAME_SLUG}-gitlab.json"
109
- - trivy convert "${CI_JOB_NAME_SLUG}.json" --format template --template "@/usr/local/bin/contrib/html.tpl" -o
110
- "${CI_JOB_NAME_SLUG}.html"
111
+ - >-
112
+ trivy convert "${CI_JOB_NAME_SLUG}.json"
113
+ --format template
114
+ --template "@/usr/local/bin/contrib/gitlab.tpl"
115
+ -o "${CI_JOB_NAME_SLUG}-gitlab.json"
116
+ - >-
117
+ trivy convert "${CI_JOB_NAME_SLUG}.json"
118
+ --format template
119
+ --template "@/usr/local/bin/contrib/html.tpl"
120
+ -o "${CI_JOB_NAME_SLUG}.html"
111
121
  artifacts:
112
122
  paths:
113
123
  - ${CI_JOB_NAME_SLUG}.json