CI: Enable all services and run gdk install and update in scheduled pipelines
Overview
Integration tests for GDK are slow and expensive so we cannot run every service combination in CI in every MR.
As suggested in !4521 (comment 2356854095) we could enable services in scheduled pipelines and run gdk install and gdk update.
Business impact
- Reduces CI infrastructure costs by running comprehensive service testing only at scheduled intervals rather than on every merge request
- Accelerates development cycles by providing faster MR pipeline feedback while maintaining thorough testing coverage through scheduled runs
- Identifies potential breaking changes and integration issues across the full service matrix through regular scheduled testing, preventing disruption
Example script to enable all services
yaml = GDK.config.dump!
def find_enable(key, value, slugs)
p slugs => key
case value
when Hash
value.flat_map { |k, v| find_enable(k, v, slugs + [k]) }.compact
when Array
value.each.with_index.flat_map { |v, i| find_enable(i, v, slugs + [i]) }.compact
else
slugs.join(".") if key == 'enabled'
end
end
enabled = yaml.flat_map do |key, value|
find_enable(key, value, [key])
end.compact.to_h { |k| [k, true] }
p enabled
GDK.config.bury_multiple!(enabled)
GDK.config.save_yaml!
Impacted categories
The following categories relate to this issue:
-
gdk-reliability - e.g. When a GDK action fails to complete. -
gdk-usability - e.g. Improvements or suggestions around how the GDK functions. -
gdk-performance - e.g. When a GDK action is slow or times out.
Edited by Mohga Gamea