@@ -2,6 +2,7 @@ include common/base.mk
22include $(COMMON ) /java.mk
33include $(COMMON ) /docker.mk
44
5+ include $(MAKES ) /gh.mk
56include $(SHELL-LANGS :% =$(MAKES ) /% .mk)
67include $(MAKES ) /shell.mk
78
@@ -208,9 +209,9 @@ docker-build := YS_BUILD_IN_DOCKER=1
208209endif
209210endif
210211
211- _release-yamlscript : $(YS )
212+ _release-yamlscript : $(YS ) $( GH )
212213 ($( TIME) $( docker-build) \
213- $< $(ROOT ) /util/release-yamlscript $o $n $s ) 2>&1 | \
214+ ys $(ROOT ) /util/release-yamlscript release $o $n $s ) 2>&1 | \
214215 tee -a $(RELEASE-LOG )
215216
216217release-assets : $(RELEASE-ASSETS )
@@ -222,6 +223,84 @@ release-build-ys: $(YS-RELEASE)
222223
223224release-build-libys : $(LYS-RELEASE )
224225
226+ # ------------------------------------------------------------------------------
227+ # Interactive Release Workflow - Individual Step Targets
228+ # ------------------------------------------------------------------------------
229+
230+ # Show all release steps
231+ release-list :
232+ $(YS ) $(ROOT ) /util/release-yamlscript list
233+
234+ # Step 1: Sanity checks
235+ release-sanity-check :
236+ ifndef o
237+ $(error 'make release-sanity-check' requires o=OLD_VERSION n=NEW_VERSION)
238+ endif
239+ ifndef n
240+ $(error 'make release-sanity-check' requires o=OLD_VERSION n=NEW_VERSION)
241+ endif
242+ $(YS) $(ROOT)/util/release-yamlscript sanity-check $(o) $(n)
243+
244+ # Step 2: Version bump
245+ release-version-bump :
246+ $(YS ) $(ROOT ) /util/release-yamlscript version-bump
247+
248+ # Step 3: Changelog
249+ release-changelog :
250+ ifndef o
251+ $(error 'make release-changelog' requires o=OLD_VERSION n=NEW_VERSION)
252+ endif
253+ ifndef n
254+ $(error 'make release-changelog' requires o=OLD_VERSION n=NEW_VERSION)
255+ endif
256+ $(YS) $(ROOT)/util/release-yamlscript changelog $(o) $(n)
257+
258+ # Step 4: Test (optional)
259+ release-test :
260+ $(YS ) $(ROOT ) /util/release-yamlscript test
261+
262+ # Step 5: Binding changelogs
263+ release-binding-changelogs :
264+ $(YS ) $(ROOT ) /util/release-yamlscript binding-changelogs
265+
266+ # Step 6: Commit
267+ release-commit :
268+ ifndef n
269+ $(error 'make release-commit' requires n=NEW_VERSION)
270+ endif
271+ $(YS) $(ROOT)/util/release-yamlscript commit $(n)
272+
273+ # Step 7: Tag
274+ release-tag :
275+ ifndef n
276+ $(error 'make release-tag' requires n=NEW_VERSION)
277+ endif
278+ $(YS) $(ROOT)/util/release-yamlscript tag $(n)
279+
280+ # Step 8: Push
281+ release-push :
282+ ifndef n
283+ $(error 'make release-push' requires n=NEW_VERSION)
284+ endif
285+ $(YS) $(ROOT)/util/release-yamlscript push $(n)
286+
287+ # Step 9: Trigger GitHub Actions
288+ release-build-github :
289+ ifndef n
290+ $(error 'make release-build-github' requires n=NEW_VERSION)
291+ endif
292+ $(YS) $(ROOT)/util/release-yamlscript build-github $(n)
293+
294+ # Step 10: Release bindings
295+ release-bindings :
296+ $(YS ) $(ROOT ) /util/release-yamlscript bindings
297+
298+ # Step 11: Publish website
299+ release-website :
300+ $(YS ) $(ROOT ) /util/release-yamlscript website
301+
302+ # ------------------------------------------------------------------------------
303+
225304jars : $(JAR-ASSETS )
226305
227306$(YS-RELEASE ) : $(RELEASE-YS-NAME )
0 commit comments