From 0fd16822eaf6b88082d8d9295b5000d64c3491fb Mon Sep 17 00:00:00 2001 From: "James F. Carter" Date: Wed, 5 Oct 2016 11:12:39 +0100 Subject: [PATCH 01/13] run tests in gitlab-ci --- .gitlab-ci.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..78f85b6 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,8 @@ +image: "ruby:2.1" + +before_script: + - apt-get update; apt-get install -y check + +unit_test: + script: + - rake test:run From 8de07801253d6769c3695c6635cfeee41bad1710 Mon Sep 17 00:00:00 2001 From: "James F. Carter" Date: Wed, 5 Oct 2016 11:26:46 +0100 Subject: [PATCH 02/13] install libev-dev in gitlab-ci --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 78f85b6..ea0736b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,7 +1,7 @@ image: "ruby:2.1" before_script: - - apt-get update; apt-get install -y check + - apt-get update; apt-get install -y check libev-dev unit_test: script: From e4d398a0789ff18e7b56b570bfdbf8dca9319303 Mon Sep 17 00:00:00 2001 From: "James F. Carter" Date: Wed, 5 Oct 2016 11:29:42 +0100 Subject: [PATCH 03/13] install net-tools in gitlab-ci --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ea0736b..67bb073 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,7 +1,7 @@ image: "ruby:2.1" before_script: - - apt-get update; apt-get install -y check libev-dev + - apt-get update; apt-get install -y check libev-dev net-tools unit_test: script: From d907025d71eefdda5ec153feef1394b3f70f1721 Mon Sep 17 00:00:00 2001 From: "James F. Carter" Date: Wed, 5 Oct 2016 11:39:56 +0100 Subject: [PATCH 04/13] try a newer version of ruby in gitlab-ci --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 67bb073..f92c20b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -image: "ruby:2.1" +image: "ruby:2.2" before_script: - apt-get update; apt-get install -y check libev-dev net-tools From 50708326ec5358ec480c4c474209ac087fc0752b Mon Sep 17 00:00:00 2001 From: "James F. Carter" Date: Wed, 5 Oct 2016 11:42:32 +0100 Subject: [PATCH 05/13] try ruby2.3 in gitlab-ci --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f92c20b..6f6c894 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -image: "ruby:2.2" +image: "ruby:2.3" before_script: - apt-get update; apt-get install -y check libev-dev net-tools From edcaef532ca7011c634c1d24201c7d508c483ef3 Mon Sep 17 00:00:00 2001 From: "James F. Carter" Date: Wed, 5 Oct 2016 11:58:50 +0100 Subject: [PATCH 06/13] revert gitlab-ci to ruby2.1 --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6f6c894..67bb073 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -image: "ruby:2.3" +image: "ruby:2.1" before_script: - apt-get update; apt-get install -y check libev-dev net-tools From bf85e329a043fdc6be51d462982211ca42616ebf Mon Sep 17 00:00:00 2001 From: "James F. Carter" Date: Wed, 5 Oct 2016 12:03:23 +0100 Subject: [PATCH 07/13] clean build environment before running tests in gitlab-ci --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 67bb073..0a548a2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,4 +5,5 @@ before_script: unit_test: script: + - rake clean - rake test:run From d6968d8242925ef2777e805041654c11b5e57c3c Mon Sep 17 00:00:00 2001 From: "James F. Carter" Date: Wed, 5 Oct 2016 12:06:11 +0100 Subject: [PATCH 08/13] explicitly compile before running tests in gitlab-ci --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0a548a2..adbc4e7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,4 +6,5 @@ before_script: unit_test: script: - rake clean + - rake build - rake test:run From d47a44a204c8aff091feda5198a5d29c556c41d9 Mon Sep 17 00:00:00 2001 From: "James F. Carter" Date: Wed, 5 Oct 2016 12:07:24 +0100 Subject: [PATCH 09/13] install asciidoc in gitlab-ci --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index adbc4e7..7cc9902 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,7 +1,7 @@ image: "ruby:2.1" before_script: - - apt-get update; apt-get install -y check libev-dev net-tools + - apt-get update; apt-get install -y check libev-dev net-tools asciidoc unit_test: script: From 35d33407085843dfbbfd8d99523b526bfbcef5b0 Mon Sep 17 00:00:00 2001 From: "James F. Carter" Date: Wed, 5 Oct 2016 12:10:21 +0100 Subject: [PATCH 10/13] avoid need for slow-to-install asciidoc in gitlab-ci --- .gitlab-ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7cc9902..6ee6917 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,10 +1,11 @@ image: "ruby:2.1" before_script: - - apt-get update; apt-get install -y check libev-dev net-tools asciidoc + - apt-get update; apt-get install -y check libev-dev net-tools unit_test: script: - rake clean - - rake build + - rake flexnbd + - rake flexnbd_proxy - rake test:run From ea7cd64fc21246028ed3e15803753eb149d3f4fb Mon Sep 17 00:00:00 2001 From: Patrick J Cherry Date: Wed, 5 Oct 2016 12:36:06 +0100 Subject: [PATCH 11/13] Moved tasks from Rake to Make The rake file was obsolete, apart from one invocation of ruby in a shell! --- Makefile | 21 +++++++++++++------- Rakefile | 60 -------------------------------------------------------- 2 files changed, 14 insertions(+), 67 deletions(-) delete mode 100644 Rakefile diff --git a/Makefile b/Makefile index 4b2102a..84284ef 100644 --- a/Makefile +++ b/Makefile @@ -67,7 +67,9 @@ SRCS := $(COMMON_SRC) $(SERVER_SRC) $(PROXY_SRC) OBJS := $(COMMON_OBJ) $(SERVER_OBJ) $(PROXY_OBJ) -all: build/flexnbd build/flexnbd-proxy doc +all: build doc + +build: server proxy build/%.o: %.c mkdir -p $(dir $@) @@ -82,8 +84,8 @@ build/flexnbd-proxy: $(COMMON_OBJ) $(PROXY_OBJ) build/proxy-main.o $(LINK) $^ -o $@ server: build/flexnbd -proxy: build/flexnbd-proxy +proxy: build/flexnbd-proxy CHECK_SRC := $(wildcard tests/unit/*.c) CHECK_OBJ := $(CHECK_SRC:tests/unit/%.c=build/%.o) @@ -97,22 +99,27 @@ build/check_%: build/check_%.o check_objs: $(CHECK_OBJ) check_bins: $(CHECK_BINS) + check: $(CHECK_BINS) for bin in $^; do $$bin; done +acceptance: + cd tests/acceptance && RUBYOPT='-I.' ruby nbd_scenarios -v + +test: check acceptance + build/flexnbd.1: README.txt a2x --destination-dir build --format manpage $< + build/flexnbd-proxy.1: README.proxy.txt a2x --destination-dir build --format manpage $< + # If we don't pipe to file, gzip clobbers the original, causing make # to rebuild each time %.1.gz: %.1 gzip -c -f $< > $@ -server-man: build/flexnbd.1.gz -proxy-man: build/flexnbd-proxy.1.gz - -doc: server-man proxy-man +doc: build/flexnbd.1.gz build/flexnbd-proxy.1.gz install: mkdir -p $(INSTALLDIR) @@ -122,7 +129,7 @@ clean: rm -rf build/* -.PHONY: clean objs check_objs all server proxy check_bins check server-man proxy-man doc +.PHONY: clean objs check_objs all server proxy check_bins check doc build test acceptance # Include extra dependencies at the end, NOT before 'all' -include $(wildcard build/*.d) diff --git a/Rakefile b/Rakefile deleted file mode 100644 index 97762ab..0000000 --- a/Rakefile +++ /dev/null @@ -1,60 +0,0 @@ -# encoding: utf-8 - -def make(*targets) - sh "make #{targets.map{|t| t.to_s}.join(" ")}" -end - -def maketask( opts ) - case opts - when Symbol - maketask opts => opts - else - opts.each do |name, targets| - task( name ){make *[*targets]} - end - end -end - - -desc "Build the binary and man page" -maketask :build => [:all, :doc] - -desc "Build just the flexnbd binary" -maketask :flexnbd => [:server] -file "build/flexnbd" => :flexnbd - -desc "Build just the flexnbd-proxy binary" -maketask :flexnbd_proxy => [:proxy] -file "build/flexnbd-proxy" => :flexnbd_proxy - -desc "Build just the man page" -maketask :man => :doc - - -namespace "test" do - desc "Run all tests" - task 'run' => ["unit", "scenarios"] - - desc "Build C tests" - maketask :build => :check_bins - - desc "Run C tests" - maketask :unit => :check - - desc "Run NBD test scenarios" - task 'scenarios' => ["build/flexnbd", "build/flexnbd-proxy"] do - sh "cd tests/acceptance && RUBYOPT='-I.' ruby nbd_scenarios -v" - end -end - - -desc "Remove all build targets, binaries and temporary files" -maketask :clean - -file "debian/changelog" do - FileUtils.mkdir_p "debian" - sh "hg log --style=changelog.template > debian/changelog" -end - -desc "Generate the changelog" -task :changelog => "debian/changelog" From 93c0fa2e927ba614287c2f7f2f6bb661786ab072 Mon Sep 17 00:00:00 2001 From: Patrick J Cherry Date: Wed, 5 Oct 2016 12:47:24 +0100 Subject: [PATCH 12/13] Merged in gitlab-ci.yml and fixed to use Make The CI should now use Make instead of Rake --- .gitlab-ci.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6ee6917..88c4223 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,7 +5,6 @@ before_script: unit_test: script: - - rake clean - - rake flexnbd - - rake flexnbd_proxy - - rake test:run + - make clean + - make build + - make test From 30562ed900548d5714bad73545f2fa025595fd67 Mon Sep 17 00:00:00 2001 From: Patrick J Cherry Date: Wed, 5 Oct 2016 12:49:25 +0100 Subject: [PATCH 13/13] Added dpkg-dev to requirements Allows dpkg-architecture to run. --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6ee6917..0e0ea11 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,7 +1,7 @@ image: "ruby:2.1" before_script: - - apt-get update; apt-get install -y check libev-dev net-tools + - apt-get update; apt-get install -y check libev-dev net-tools dpkg-dev unit_test: script: