From 3e3afb942afc7f082d5e1e68f6c50dc677d19e3c Mon Sep 17 00:00:00 2001 From: Chris Evich Date: Wed, 31 Jul 2019 09:48:14 -0400 Subject: Cirrus: Fix release dependencies The release-task ***must*** always execute last, in order to guarantee a consistent cache of release archives from dependent tasks. It accomplishes this by verifying it's task-number matches one-less than the total number of tasks. Previous to this commit, a YAML anchor/alias was used to avoid duplication of the dependency list between 'success' and 'release' However, it's been observed that this opens the possibility for 'release' and 'success' tasks to race when running on a PR. Because YAML anchor/aliases cannot be used to modify lists, duplication is required to make 'release' actually depend upon 'success'. This duplication will introduce an additional maintenance burden. Though when adding a new task, it's already very easy to forget to update the 'depends_on' list. Assist both cases by the addition unit-tests to verify ``.cirrus.yml`` dependency contents and structure. Signed-off-by: Chris Evich --- Makefile | 1 + 1 file changed, 1 insertion(+) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 476e4f054..f8eff61ba 100644 --- a/Makefile +++ b/Makefile @@ -232,6 +232,7 @@ localunit: test/goecho/goecho varlink_generate --succinct $(MAKE) -C contrib/cirrus/packer test ./contrib/cirrus/lib.sh.t + ./contrib/cirrus/cirrus_yaml_test.py ginkgo: ginkgo -v -tags "$(BUILDTAGS)" $(GINKGOTIMEOUT) -cover -flakeAttempts 3 -progress -trace -noColor -nodes 3 -debug test/e2e/. -- cgit v1.2.3-54-g00ecf