From abba1d6c26eac7448b9c03c01da3c50e327aede0 Mon Sep 17 00:00:00 2001
From: Michele Alberti <michele.alberti@cea.fr>
Date: Wed, 29 Jun 2022 13:05:42 +0200
Subject: [PATCH] [opam] Add Makefile target for creating and releasing opam
 package.

---
 Makefile | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/Makefile b/Makefile
index ecce8d8..b347b4b 100644
--- a/Makefile
+++ b/Makefile
@@ -9,3 +9,34 @@ promote:
 
 clean:
 	dune clean
+
+
+###################################
+# opam package creation and release
+###################################
+
+PROJECT_ID=1082
+TAG=$(shell dune-release tag -f --yes > /dev/null 2>&1 && git describe --tags --abbrev=0)
+PKG="caisar-$(TAG).tbz"
+PACKAGE_URL="https://git.frama-c.com/api/v4/projects/$(PROJECT_ID)/packages/generic/caisar/$(TAG)/$(PKG)"
+DESCRIPTION="$(shell sed -n -e "p;n;:next;/^##/Q;p;n;b next" CHANGES.md | perl -pe 's/\n/\\n/')"
+
+release:
+	@echo -n $(DESCRIPTION)
+	@echo "Is the CHANGES.md correct for $(TAG) (y/n)?"
+	@read yesno; test "$$yesno" = y
+	dune-release tag $(TAG)
+	dune-release distrib --skip-build --skip-lint
+	curl --header "PRIVATE-TOKEN: $(GITLAB_TOKEN)" \
+	--upload-file _build/$(PKG) \
+	$(PACKAGE_URL)
+	echo $(PACKAGE_URL) > _build/asset-$(TAG).url
+	git push origin $(TAG)
+	curl --header 'Content-Type: application/json' \
+	--header "PRIVATE-TOKEN: $(GITLAB_TOKEN)" \
+	--request POST "https://git.frama-c.com/api/v4/projects/$(PROJECT_ID)/releases" \
+	--data '{"name": "Release $(TAG)","tag_name": "$(TAG)", "description": $(DESCRIPTION), "milestones": [], "assets": { "links": [{ "name": "$(PKG)", "url": $(PACKAGE_URL), "link_type":"other" }] } }'
+	dune-release opam pkg
+	dune-release opam submit
+
+.PHONY: release clean promote test all
-- 
GitLab