Skip to content

Increment milestones on tag #661

Increment milestones on tag

Increment milestones on tag #661

name: Increment milestones on tag
on:
create
permissions:
contents: read
issues: write
jobs:
increment_milestone:
if: github.event.ref_type == 'tag' && github.event.master_branch == 'main'
runs-on: ubuntu-latest
steps:
- name: Get milestone title
id: milestoneTitle
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # 9.0.0
with:
result-encoding: string
script: |
// Our tags are of the form v_X.X.X and milestones don't have the "v"
return '${{github.event.ref}}'.startsWith('v_') ? '${{github.event.ref}}'.substring(2) : '${{github.event.ref}}';
- name: Get milestone for tag
id: milestone
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # 9.0.0
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const milestones = await github.paginate(github.rest.issues.listMilestones, {
owner: context.repo.owner,
repo: context.repo.repo,
state: 'all'
})
const milestone = milestones.find(milestone => milestone.title == '${{steps.milestoneTitle.outputs.result}}')
if (milestone) {
return milestone.number
} else {
return null
}
- name: Close milestone
if: fromJSON(steps.milestone.outputs.result)
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # 9.0.0
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
await github.rest.issues.updateMilestone({
owner: context.repo.owner,
repo: context.repo.repo,
state: 'closed',
milestone_number: ${{steps.milestone.outputs.result}}
})
- name: Get next minor version
if: fromJSON(steps.milestone.outputs.result)
id: semvers
uses: WyriHaximus/github-action-next-semvers@18aa9ed4152808ab99b88d71f5481e41f8d89930 # 1.2.1
with:
version: ${{steps.milestoneTitle.outputs.result}}
- name: Create next milestone
if: fromJSON(steps.milestone.outputs.result)
uses: WyriHaximus/github-action-create-milestone@6f8e11bb23890a15c6cc520abf7a36510dfd0f94 # 1.2.0
with:
title: ${{ steps.semvers.outputs.minor }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}