@@ -18,10 +18,27 @@ ifeq (,$(GITHUB_API_TOKEN))
1818DISABLE_ARCHIVE_FETCH := true
1919endif
2020
21+ archive_script = $(trace ) archive -s archive-repo \
22+ $(python ) -m archive-repo archive $(GITHUB_REPO_FULL ) $(GITHUB_API_TOKEN )
23+ ifeq (true,$(ARCHIVE_FULL ) )
24+ define archive_issues
25+ echo $(archive_script ) $(1 ) ; \
26+ $(archive_script ) $(1 )
27+ endef
28+ else
29+ define archive_issues
30+ old_archive=$$(mktemp $(TMPDIR ) /tmp/archive-old.XXXXXX ) ; \
31+ trap 'rm -f $$old_archive' EXIT; \
32+ git show $(ARCHIVE_BRANCH ) :$(1 ) > $$old_archive || true; \
33+ echo $(archive_script ) $(1 ) --reference $$old_archive; \
34+ $(archive_script ) $(1 ) --reference $$old_archive
35+ endef
36+ endif
37+
2138# # Store a copy of any GitHub issues and pull requests.
2239.PHONY : archive
2340archive : archive.json
24- archive.json : fetch-archive $(drafts_source )
41+ archive.json : fetch-archive $(drafts_source ) $( DEPS_FILES )
2542 @if [ -f $@ ] && [ " $( call file_size,$@ ) " -gt 0 ] && \
2643 [ " $( call last_modified,$@ ) " -gt " $( call last_commit,$( ARCHIVE_BRANCH) ,$@ ) " ] 2> /dev/null; then \
2744 echo ' Skipping update of $@ (it is newer than the ones on the branch)' ; exit ; \
@@ -36,13 +53,9 @@ archive.json: fetch-archive $(drafts_source)
3653 git show $(ARCHIVE_BRANCH ) :$@ > $@ || true ; \
3754 exit ; \
3855 fi ; \
39- old_archive=$$(mktemp /tmp/archive-old.XXXXXX ) ; \
40- trap ' rm -f $$old_archive' EXIT; \
41- git show $(ARCHIVE_BRANCH ) :$@ > $$ old_archive || true ; \
42- $(LIBDIR ) /archive_repo.py $(GITHUB_REPO_FULL ) $(GITHUB_API_TOKEN ) $@ --reference $$ old_archive;
43-
56+ $(call archive_issues,$@ )
4457
45- ARCHIVE_ROOT := /tmp/ gharchive$(shell echo $$$$ )
58+ ARCHIVE_ROOT := $( TMPDIR ) / gharchive$(PID )
4659$(ARCHIVE_ROOT ) : fetch-archive
4760 @git show-ref refs/heads/$(ARCHIVE_BRANCH ) > /dev/null 2>&1 || \
4861 (git show-ref refs/remotes/origin/$( ARCHIVE_BRANCH) > /dev/null 2>&1 && \
@@ -55,6 +68,10 @@ $(ARCHIVE_ROOT)/%.json: %.json $(ARCHIVE_ROOT)
5568
5669# # Commit and push the changes to $(ARCHIVE_BRANCH)
5770.PHONY : gh-archive
71+ ifneq (,$(MAKE_TRACE ) )
72+ gh-archive :
73+ @$(call MAKE_TRACE,gh-archive)
74+ else
5875gh-archive : $(ARCHIVE_ROOT ) /archive.json
5976 cp -f $(LIBDIR ) /template/issues.html $(LIBDIR ) /template/issues.js $(ARCHIVE_ROOT )
6077 @-git -C $(ARCHIVE_ROOT ) rm --ignore-unmatch -f issues.json pulls.json
@@ -63,15 +80,21 @@ gh-archive: $(ARCHIVE_ROOT)/archive.json
6380 git -C $(ARCHIVE_ROOT ) $(CI_AUTHOR ) commit -m " Script updating archive at $( shell date -u +%FT%TZ) . [ci skip]" ; fi
6481ifeq (true,$(PUSH_GHPAGES ) )
6582ifneq (,$(if $(CI_HAS_WRITE_KEY ) ,1,$(if $(GITHUB_PUSH_TOKEN ) ,,1) ) )
66- git -C $(ARCHIVE_ROOT) push -f https://github.com/$(GITHUB_REPO_FULL) $(ARCHIVE_BRANCH)
83+ $(trace) archive -s archive-push git -C $(ARCHIVE_ROOT) push -f "$(shell git remote get-url --push $(GIT_REMOTE))" $(ARCHIVE_BRANCH)
6784else
6885 @echo git -C $(ARCHIVE_ROOT) push -qf https://github.com/$(GITHUB_REPO_FULL) $(ARCHIVE_BRANCH)
69- @git -C $(ARCHIVE_ROOT) push -qf https://$(GITHUB_PUSH_TOKEN)@github.com/$(GITHUB_REPO_FULL) $(ARCHIVE_BRANCH) >/dev/null 2>&1
86+ @git -C $(ARCHIVE_ROOT) push -qf https://$(GITHUB_PUSH_TOKEN)@github.com/$(GITHUB_REPO_FULL) $(ARCHIVE_BRANCH) >/dev/null 2>&1 \
87+ || $(trace) all -s archive-push ! echo "git -C $(GHPAGES_ROOT) push -qf https://****@github.com/$(GITHUB_REPO_FULL) $(ARCHIVE_BRANCH)"
7088endif
7189else
72- git -C $(ARCHIVE_ROOT) push -f origin $(ARCHIVE_BRANCH)
90+ ifeq (true,$(CI ) )
91+ @echo "*** Warning: pushing to the gh-pages branch is disabled."
92+ else
93+ $(trace) all -s archive-push git -C $(ARCHIVE_ROOT) push -f origin $(ARCHIVE_BRANCH)
94+ endif
7395endif # PUSH_GHPAGES
7496 -rm -rf $(ARCHIVE_ROOT)
97+ endif # MAKE_TRACE
7598
7699# # Save archive.json to the CI_ARTIFACTS directory
77100ifneq (,$(CI_ARTIFACTS ) )
0 commit comments