This is an automated email from the ASF dual-hosted git repository.
sjaranowski pushed a commit to branch v4
in repository https://gitbox.apache.org/repos/asf/maven-gh-actions-shared.git
The following commit(s) were added to refs/heads/v4 by this push:
new f5ed123 Milestones management on next development
f5ed123 is described below
commit f5ed123d6c8723df6215cb0cc4f8ae3266150e51
Author: Slawomir Jaranowski <[email protected]>
AuthorDate: Sun Nov 23 19:39:51 2025 +0100
Milestones management on next development
on next development version, we will do actions:
- create new next milestone
- close old one
---
.github/workflows/release-drafter.yml | 96 +++++++++++++++++++++++++++++++++--
1 file changed, 92 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/release-drafter.yml
b/.github/workflows/release-drafter.yml
index 279d585..9cf48a4 100644
--- a/.github/workflows/release-drafter.yml
+++ b/.github/workflows/release-drafter.yml
@@ -39,14 +39,13 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false
+# clare all permissions for GITHUB_TOKEN
+permissions: {}
+
jobs:
detect-version:
- # skip release drafter on releases commits
- if: (!startsWith(github.event.head_commit.message ,
'[maven-release-plugin] prepare for next development iteration'))
-
name: Detect version
runs-on: ubuntu-latest
- permissions: {}
outputs:
version: ${{ steps.version.outputs.version }}
@@ -84,6 +83,11 @@ jobs:
# write permission is required to create a github release
contents: write
runs-on: ubuntu-latest
+ # skip release drafter on next development commits
+ if: >
+ needs.detect-version.outputs.version != '' &&
+ !startsWith(github.event.head_commit.message , '[maven-release-plugin]
prepare for next development iteration')
+
steps:
- uses: apache/maven-gh-actions-shared@release-drafter # temporary copy
of the release-drafter action
id: release-drafter
@@ -98,3 +102,87 @@ jobs:
- name: Verify release drafter status
if: steps.release-drafter.outputs.id == ''
run: exit 1
+
+ milestones-managment:
+ name: Milestones Management
+ needs: detect-version
+ permissions:
+ # write permission is required to manage milestones
+ issues: write
+ runs-on: ubuntu-latest
+ # execute only on next development commits
+ if: >
+ needs.detect-version.outputs.version != '' &&
+ startsWith(github.event.head_commit.message , '[maven-release-plugin]
prepare for next development iteration')
+
+ steps:
+ - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd #
v8.0.0
+ env:
+ CURRENT_VERSION: ${{ needs.detect-version.outputs.version }}
+ with:
+ script: |
+ const branch = context.ref.replace('refs/heads/', '');
+ const version = process.env.CURRENT_VERSION;
+
+ console.log('branch: ' + branch);
+ console.log('version: ' + version);
+
+ const milestones = await github.rest.issues.listMilestones({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ state: 'open'
+ });
+
+ console.log('All open milestones: ');
+ console.log(milestones.data);
+
+ var milestone;
+ if (milestones.data.length > 1) {
+ milestone = milestones.data.find(({description}) =>
description?.includes('branch: ' + branch));
+ } else if (milestones.data.length == 1) {
+ milestone = milestones.data[0];
+ }
+
+ console.log('Current milestone: ');
+ console.log(milestone);
+
+ core.summary.addHeading('Milestone management');
+
+ // in first step just create new milestone - closing the old one
will be in the next step
+ // if something fails here - we don't want to close the existing
milestone
+ const resultNew = await github.rest.issues.createMilestone({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ title: version,
+ description: 'branch: ' + branch
+ });
+
+ console.log('Created new milestone: ');
+ console.log(resultNew.data);
+
+ core.summary.addRaw('New milestone: ');
+ core.summary.addLink(resultNew.data.title,
resultNew.data.html_url);
+ core.summary.addBreak();
+
+ // now close the existing milestone
+ if (milestone) {
+ const resultOld = await github.rest.issues.updateMilestone({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ milestone_number: milestone.number,
+ state: 'closed'
+ });
+
+ console.log('Closed old milestone: ');
+ console.log(resultOld.data);
+
+ core.summary.addRaw('Closed milestone: ');
+ core.summary.addLink(milestone.title, milestone.html_url);
+ core.summary.addBreak();
+ } else {
+ console.log('No existing milestone to close');
+ core.summary.addRaw('No existing milestone to close - please
verify');
+ core.summary.addBreak();
+ }
+
+ core.summary.write();