Commit a821a52a authored by erwan's avatar erwan

Build: now use a custom bash script to build opam packages

parent 1a81cf1b
Pipeline #18269 passed with stages
in 9 minutes and 4 seconds
#######################################################################################
# Workflow:
# C=git commit ; A=git amend ; U=update_version ; P=opam pack
# C=make cia ; A=make amend ; U=make uv ; P=make opam-rel
# - to make sure the sha and the version are good, one should never
# do U and then A.
# - to make sure gtit is not confused, one should never do A and the P
#
# thereforeto avoid such problems, legal trace are defined by this automata:
# therefore, to avoid such problems, legal trace are defined by this automata:
# 0 -C-> 1
# 1 -A-> 1
# 1 -P-> 2
......@@ -13,11 +13,17 @@
# 1 -U-> 0
# to implement such a workflow, C puts a lock (state 1) and U removes it (state 0)
###############################
# a few git shortcuts
# typical workflow:
# uv -> cia -> amend* -> push ->
# wait for gitlab release job -> pull (to get the release tag)
# and then; optionnaly, to release an opam version:
# opam-rel
uv:update_version
update_version:
git pull
rm -f lutin/src/version.ml
make lutin/src/version.ml
cp _oasis _oasis.save
......@@ -35,7 +41,7 @@ cia-no-test:
push: opam-test
git push && make uv
git push
amend:
......@@ -69,62 +75,12 @@ tags:
# opam-ing
NAME=lutin
PACKNAME=$(NAME).$(PRE_VERSION)
WWW=/import/www/DIST-TOOLS/SYNCHRONE
HTTP=http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE
# for testing opam packages before publishing
WWWTEST=/import/www/DIST-TOOLS/SYNCHRONE/test
HTTPTEST=http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/test
$(PACKNAME).tgz:
git archive --prefix=$(PACKNAME)/ -o $(PACKNAME).tgz HEAD
$(WWW)/pool/$(PACKNAME).tgz: $(PACKNAME).tgz
cp $^ $@
$(WWWTEST)/pool/$(PACKNAME).tgz: $(PACKNAME).tgz
cp $^ $@
OPAM_FILE=$(shell find $(WWW)/opam-repository/packages -name opam | grep utin | sort | tail -1 | sed -e 's/^./\U&/')
OPAM_FILE_TEST=$(shell find $(WWWTEST)/opam-repository/packages -name opam | grep utin | sort | tail -1 | sed -e 's/^./\U&/')
OPAM_DIR=$(shell dirname $(OPAM_FILE))
OFFICIAL_OPAM_DIR=/home/jahier/local/opam-repository/packages/lutin
x:
echo $(OPAM_FILE)
echo $(OPAM_FILE_TEST)
i:
opam-installer lutin.install --prefix=$(OPAM_DIR)
opam : $(WWW)/pool/$(PACKNAME).tgz
cd $(WWW)/opam-repository/packages/ && \
oasis2opam $(HTTP)/pool/$(PACKNAME).tgz && \
cp ~/lurette/opam $(OPAM_FILE) && \
cd .. ; opam-admin check && opam-admin make -g && \
cp -rf $(OPAM_DIR) $(OFFICIAL_OPAM_DIR)
# if the following rule fails, it migth be necessary to do:
# cp opam.diff opam.diff.exp
# The idea is that oasis2opam correctly track dependancies, but
# generate a wrong opam file. Hence, I diff opam.diff.exp and opam.diff
# to make sure that my "manual" opam file does not miss a dep
opam-test : $(WWWTEST)/pool/$(PACKNAME).tgz
cd $(WWWTEST)/opam-repository/packages && \
oasis2opam $(HTTPTEST)/pool/$(PACKNAME).tgz && \
cp $(OPAM_FILE_TEST) $(PWD)/opam.oasis2opam && \
diff -u $(PWD)/opam.oasis2opam $(PWD)/opam | \
grep -v opam.oasis2opam | grep -v "+++" > $(PWD)/opam.diff &&\
diff $(PWD)/opam.diff $(PWD)/opam.diff.exp && \
cp $(PWD)/opam $(OPAM_FILE_TEST) || \
(echo "The opam file needs some update"; exit 2) && \
cd .. ; opam-admin check && opam-admin make -g
# xxxcp ~/lurette/opam $(OPAM_FILE_TEST) && \
opam-rel :
make-opam-pack $(NAME)
opam-test :
make-opam-pack $(NAME) -test
opam-pr:
cp -rf $(OPAM_DIR) /home/jahier/local/opam-repository/packages/lutin/
......
OASISFormat: 0.4
Name: lutin
Version: 2.66.0
Version: 2.66.0-3-g1a81cf1b
Authors: Erwan Jahier, Pascal Raymond, Bertrand Jeannnet (polka), Yvan Roux
Maintainers: erwan.jahier@univ-grenoble-alpes.fr
License: CeCILL
......
let str="2.66.0"
let sha="5ff210d0"
let str="1.0.0"
let sha="1a81cf1b"
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment