diff --git a/config_defaults.yml b/config_defaults.yml index c857149..452a9cf 100644 --- a/config_defaults.yml +++ b/config_defaults.yml @@ -3,6 +3,11 @@ feature_goUnitTests: false feature_goldenTests: false componentName: "" + testMatrix: {} + # key: provider + # entries: + # - variant1 + # - variant2 .github/ISSUE_TEMPLATE/config.yml: contact_links: @@ -13,11 +18,7 @@ .github/workflows/test.yaml: makeTarget: test goldenTest_makeTarget: golden-diff # Requires `feature_goldenTests` - matrix: {} - # key: provider - # entries: - # - variant1 - # - variant2 + #matrix: {} # deprecated, use global param `testMatrix` docs/antora.yml: version: master diff --git a/moduleroot/.github/workflows/test.yaml.erb b/moduleroot/.github/workflows/test.yaml.erb index c345e24..662cc00 100644 --- a/moduleroot/.github/workflows/test.yaml.erb +++ b/moduleroot/.github/workflows/test.yaml.erb @@ -1,3 +1,6 @@ +<%- +@matrix = @configs.key?('matrix') ? @configs['matrix'] : @configs['testMatrix'] +-%> name: Pull Request on: pull_request: @@ -30,11 +33,11 @@ jobs: <%- if @configs['feature_componentCompile'] -%> test: runs-on: ubuntu-latest - <%- if !@configs['matrix'].empty? -%> + <%- if !@matrix.empty? -%> strategy: matrix: - <%= @configs['matrix']['key'] -%>: -<% @configs['matrix']['entries'].each do |entry| -%> + <%= @matrix['key'] -%>: +<% @matrix['entries'].each do |entry| -%> - <%= entry %> <% end -%> <%- end -%> @@ -64,11 +67,11 @@ jobs: <%- if @configs['feature_goldenTests'] -%> golden: runs-on: ubuntu-latest - <%- if !@configs['matrix'].empty? -%> + <%- if !@matrix.empty? -%> strategy: matrix: - <%= @configs['matrix']['key'] -%>: -<% @configs['matrix']['entries'].each do |entry| -%> + <%= @matrix['key'] -%>: +<% @matrix['entries'].each do |entry| -%> - <%= entry %> <% end -%> <%- end -%> diff --git a/moduleroot/Makefile.erb b/moduleroot/Makefile.erb index 120d060..151895f 100644 --- a/moduleroot/Makefile.erb +++ b/moduleroot/Makefile.erb @@ -75,6 +75,20 @@ gen-golden: clean .compile ## Update the reference version for target `golden-di golden-diff: commodore_args += -f tests/$(instance).yml golden-diff: clean .compile ## Diff compile output against the reference version. Review output and run `make gen-golden golden-diff` if this target fails. @git diff --exit-code --minimal --no-index -- tests/golden/$(instance) compiled/ +<%- if !@configs['testMatrix'].empty? && !@configs['testMatrix']['entries'].empty? -%> + +.PHONY: golden-diff-all +golden-diff-all: recursive_target=golden-diff +golden-diff-all: $(test_instances) ## Run golden-diff for all instances. Note: this doesn't work when running make with multiple parallel jobs (-j != 1). + +.PHONY: gen-golden-all +gen-golden-all: recursive_target=gen-golden +gen-golden-all: $(test_instances) ## Run gen-golden for all instances. Note: this doesn't work when running make with multiple parallel jobs (-j != 1). + +.PHONY: $(test_instances) +$(test_instances): + $(MAKE) $(recursive_target) -e instance=$(basename $(@F)) +<%- end -%> <%- end -%> .PHONY: clean diff --git a/moduleroot/Makefile.vars.mk.erb b/moduleroot/Makefile.vars.mk.erb index c353f73..95c4e5d 100644 --- a/moduleroot/Makefile.vars.mk.erb +++ b/moduleroot/Makefile.vars.mk.erb @@ -34,3 +34,6 @@ COMMODORE_CMD ?= $(DOCKER_CMD) $(DOCKER_ARGS) $(root_volume) docker.io/projects JB_CMD ?= $(DOCKER_CMD) $(DOCKER_ARGS) --entrypoint /usr/local/bin/jb docker.io/projectsyn/commodore:latest install instance ?= defaults +<%- if @configs['feature_goldenTests'] && !@configs['testMatrix'].empty? && !@configs['testMatrix']['entries'].empty? -%> +test_instances =<%- @configs['testMatrix']['entries'].each do |entry| %> tests/<%= entry %>.yml<% end %> +<%- end -%> diff --git a/moduleroot/renovate.json.erb b/moduleroot/renovate.json.erb index b6651c3..c9595c1 100644 --- a/moduleroot/renovate.json.erb +++ b/moduleroot/renovate.json.erb @@ -4,6 +4,20 @@ ":gitSignOff", ":disableDependencyDashboard" ], +<%- if @configs['feature_goldenTests'] -%> + "postUpgradeTasks": { + "commands": [ + <%- if !@configs['testMatrix'].empty? && !@configs['testMatrix']['entries'].empty? -%> + "make gen-golden-all" + <%- else -%> + "make gen-golden" + <%- end -%> + ], + "fileFilters": [ "tests/golden/**" ], + "executionMode": "update" + }, + "suppressNotifications": [ "artifactErrors" ], +<%- end -%> "labels": [ "dependency" ]