-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
59 lines (43 loc) · 2.6 KB
/
Makefile
File metadata and controls
59 lines (43 loc) · 2.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
reverse = $(if $(wordlist 2,2,$(1)),$(call reverse,$(wordlist 2,$(words $(1)),$(1))) $(firstword $(1)),$(1))
SHELL=/bin/bash
EXTENSION = pg_role_fkey_trigger_functions
EXTENSION_DEFAULT_VERSION = $(shell sed -n -E "/default_version/ s/^.*'(.*)'.*$$/\1/p" $(EXTENSION).control)
ifneq (,$(filter tag_default_version,$(MAKECMDGOALS)))
EXTENSION_DEFAULT_VERSION_RELEASE_DATE ?= $(shell date +%Y-%m-%d)
endif
ifneq (,$(EXTENSION_DEFAULT_VERSION_RELEASE_DATE))
EXTENSION_VERSION_V_SUFFIX = ":$(EXTENSION_DEFAULT_VERSION)@$(EXTENSION_DEFAULT_VERSION_RELEASE_DATE)"
endif
# Anchoring the changelog:
OLDEST_VERSION = 0.9.0
DATA = $(wildcard sql/$(EXTENSION)*.sql)
UPDATE_SCRIPTS = $(wildcard sql/$(EXTENSION)--[0-99].[0-99].[0-99]--[0-99].[0-99].[0-99].sql)
REGRESS = test_extension_update_paths
PG_CONFIG ?= pg_config
PGXS := $(shell $(PG_CONFIG) --pgxs)
include $(PGXS)
# Set some environment variables for the regression tests that will be fed to `pg_regress`:
installcheck: export EXTENSION_NAME=$(EXTENSION)
installcheck: export EXTENSION_ENTRY_VERSIONS?=$(patsubst $(EXTENSION)--%.sql,%,$(shell ls sql/ | grep -E "$(EXTENSION)--[0-9]+\.[0-9]+\.[0-9]+\.sql"))
README.md: sql/README.sql install
psql --quiet postgres < $< > $@
META.json: sql/META.sql install
psql --quiet postgres < $< > $@
CHANGELOG.md: bin/sql-to-changelog.md.sh sql/pg_extension_update_scripts_sequence.sql CHANGELOG.preamble.md install $(UPDATE_SCRIPTS)
echo $(EXTENSION_VERSION_V_SUFFIX)
cat CHANGELOG.preamble.md > $@
bin/sql-to-changelog.md.sh -r '## [%v] – %d' -u '## [%v] – unreleased' -c 'https://github.com/bigsmoke/pg_role_fkey_trigger_functions/compare/%f…%t' -p $(call reverse,$(shell env EXTENSION_NAME=$(EXTENSION) EXTENSION_OLDEST_VERSION=$(OLDEST_VERSION) EXTENSION_VERSION_V_SUFFIX=$(EXTENSION_VERSION_V_SUFFIX) psql -X postgres < sql/pg_extension_update_scripts_sequence.sql)) >> $@
.PHONY: tag_default_version
tag_default_version: META.json README.md CHANGELOG.md
git add $^
git commit -m "Version $(EXTENSION_DEFAULT_VERSION); see "'`CHANGELOG.md`'
git tag -m "Release $(EXTENSION_DEFAULT_VERSION)" v$(EXTENSION_DEFAULT_VERSION)
.PHONY: zip_default_version
zip_default_version: tag_default_version
git archive --format zip --prefix=$(EXTENSION)-$(EXTENSION_DEFAULT_VERSION)/ -o $(EXTENSION)-$(EXTENSION_DEFAULT_VERSION).zip v$(EXTENSION_DEFAULT_VERSION)
test_dump_restore: $(CURDIR)/bin/test_dump_restore.sh sql/test_dump_restore.sql
PGDATABASE=test_dump_restore \
$< --extension $(EXTENSION) \
--psql-script-file sql/test_dump_restore.sql \
--out-file results/test_dump_restore.out \
--expected-out-file expected/test_dump_restore.out