mirror of
https://github.com/clearlinux/common.git
synced 2026-05-13 18:44:07 +00:00
Differences: - Restrict to submit from an active branch instead of master branch - git pull --rebase from matching remote LTS branch if available - Add "-lts" suffix to git tag - Assume koji buildtag name is identical to branch name Signed-off-by: Tan, Yew Wayne <yew.wayne.tan@intel.com>
91 lines
3.0 KiB
Makefile
91 lines
3.0 KiB
Makefile
#-*-makefile-*-
|
|
|
|
LTSUTILS = python $(TOPLVL)/projects/common/lts/main.py $(PKG_NAME)
|
|
|
|
#help lts-show: Display a summary of active LTS branches.
|
|
lts-show:
|
|
@$(LTSUTILS) sanity-check
|
|
@while read b; do \
|
|
if git show-ref $$b > /dev/null; then \
|
|
echo $$b $$(git log --oneline -1 $$b); \
|
|
else \
|
|
echo $$b Not found; \
|
|
fi; \
|
|
done < $(TOPLVL)/projects/common/lts/active-branches
|
|
|
|
#help lts-backport: Fast-forward the previous active branch to the current
|
|
#help branch.
|
|
lts-backport:
|
|
@$(LTSUTILS) sanity-check
|
|
@newer=$$(git symbolic-ref HEAD); \
|
|
newer=$${newer#refs/heads/}; \
|
|
if ! $(LTSUTILS) prev-branch --checkout; then \
|
|
echo Could not check out previous active branch.; \
|
|
exit 0; \
|
|
fi; \
|
|
if $(LTSUTILS) is-same-version $$newer; then \
|
|
$(LTSUTILS) fast-forward $$newer; \
|
|
else \
|
|
echo Most likely a patch needs to be manually re-applied for this version.; \
|
|
echo Alternatively, use \"git merge --ff-only $$newer\" to upgrade the package version.; \
|
|
fi
|
|
|
|
#help lts-build: Build RPM in Koji, or reuse existing build from older LTS
|
|
#help branch.
|
|
lts-build:
|
|
@$(LTSUTILS) sanity-check
|
|
@tag=$$(git tag --points-at); \
|
|
if [[ -z $$tag ]]; then \
|
|
echo This commit does not have a tag.; \
|
|
echo Proceeding to run \"make lts-koji\".; \
|
|
$(LTSUTILS) prompt || exit; \
|
|
$(MAKE) lts-koji; \
|
|
exit; \
|
|
fi; \
|
|
older=$$($(LTSUTILS) prev-branch); \
|
|
if [[ -z $$older ]]; then \
|
|
echo Could not determine previous active branch.; \
|
|
exit 1; \
|
|
fi; \
|
|
current=$$($(LTSUTILS) current-branch); \
|
|
if [[ $$(git rev-parse $$older) != $$(git rev-parse $$current) ]]; then \
|
|
echo Previous branch and current branch have different commits.; \
|
|
for b in $$older $$current; do echo $$b $$(git log --oneline -1 $$b); done; \
|
|
echo Proceeding to run \"make lts-koji\".; \
|
|
$(LTSUTILS) prompt || exit; \
|
|
$(MAKE) lts-koji; \
|
|
exit; \
|
|
fi; \
|
|
if $(LTSUTILS) can-reuse-binary $$older; then \
|
|
echo Reusing binary from $$older.; \
|
|
$(KOJI_CMD) tag-build $$current $(SRPMVERS); \
|
|
else \
|
|
echo Could not reuse binary from $$older.; \
|
|
echo Proceeding to run \"make bump lts-koji\".; \
|
|
$(LTSUTILS) prompt || exit; \
|
|
$(MAKE) bump lts-koji; \
|
|
fi
|
|
@$(LTSUTILS) next-branch --checkout
|
|
|
|
#help lts-koji: Same as "koji" but for working on LTS branches. Should not
|
|
#help be called directly, use lts-build instead.
|
|
lts-koji: prekoji-checks kojidef
|
|
@$(LTSUTILS) sanity-check
|
|
@$(MAKE) spdxcheck
|
|
@$(MAKE) checkblacklist
|
|
@current=$$($(LTSUTILS) current-branch); \
|
|
if ! grep $$current $(TOPLVL)/projects/common/lts/active-branches; then \
|
|
echo "Error: Must be on an active branch to submit to koji" >&2; \
|
|
exit 1; \
|
|
fi; \
|
|
if ! git diff --quiet HEAD ${SPECFILE}; then \
|
|
echo "Error: All changes to ${SPECFILE} must be committed first" >&2; \
|
|
exit 1; \
|
|
fi; \
|
|
if git rev-parse --verify --quiet origin/$$current > /dev/null; then \
|
|
git pull --rebase; \
|
|
fi
|
|
git tag $(SRPMVERS)-lts
|
|
git push origin $$($(LTSUTILS) current-branch) refs/tags/$(SRPMVERS)-lts
|
|
$(KOJI_CMD) build $$KOJI_NOWAIT $$($(LTSUTILS) current-branch) $(PKG_BASE_URL)/$(PKG_NAME)?#$(SRPMVERS)-lts
|