Repository navigation
132 lines (121 loc) · 5.08 KB
/
Copy pathrelease_draft.yml
File metadata and controls
132 lines (121 loc) · 5.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#
# Copyright 2021 ABSA Group Limited
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
name: Draft Release
on:
workflow_dispatch:
inputs:
tag-name:
description: 'Name of git tag to be created, and then draft release created. Syntax: "v[0-9]+.[0-9]+.[0-9]+".'
required: true
from-tag-name:
description: >-
Name of the git tag from which to detect changes from.
Default value: latest tag. Syntax: "v[0-9]+.[0-9]+.[0-9]+".
required: false
permissions:
contents: write
issues: read
pull-requests: read
jobs:
release-draft:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
fetch-depth: 0
persist-credentials: false
- uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0
with:
python-version: '3.14'
- name: Check format of received target tag
id: check-version-tag
uses: AbsaOSS/version-tag-check@4145e48bf3f77a5afff2ec9afdd8afb6b53bce34
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
github-repository: ${{ github.repository }}
version-tag: ${{ github.event.inputs.tag-name }}
- name: Check format of received from tag
if: ${{ github.event.inputs.from-tag-name }}
id: check-version-from-tag
uses: AbsaOSS/version-tag-check@4145e48bf3f77a5afff2ec9afdd8afb6b53bce34
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
github-repository: ${{ github.repository }}
version-tag: ${{ github.event.inputs.from-tag-name }}
should-exist: true
- name: Create and push tag
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3
env:
TAG_NAME: ${{ github.event.inputs.tag-name }}
with:
script: |
const tag = process.env.TAG_NAME;
const ref = `refs/tags/${tag}`;
const sha = context.sha;
await github.rest.git.createRef({
owner: context.repo.owner,
repo: context.repo.repo,
ref: ref,
sha: sha
});
console.log(`Tag created: ${tag}`);
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Generate Release Notes
id: generate_release_notes
uses: AbsaOSS/generate-release-notes@4592187ca123598c8f0bd6de06311c9f5cd8b773
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
release-notes-title: "## [Rr]elease [Nn]otes"
tag-name: ${{ github.event.inputs.tag-name }}
from-tag-name: ${{ github.event.inputs.from-tag-name }}
chapters: |
- { title: Breaking Changes 💥, label: breaking change, order: 10 }
- { title: Epics 🚀, label: epic, order: 20 }
- { title: New Features 🎉, label: enhancement, order: 30 }
- { title: Bugfixes 🛠, label: bug, order: 40 }
- { title: Infrastructure ⚙️, label: infrastructure, order: 50 }
- { title: Spikes 💡, label: spike, order: 60 }
- { title: Agent 🤖, label: Agent, order: 70 }
- { title: DB 🗄️, label: DB, order: 75 }
- { title: Model 🧩, label: Model, order: 80 }
- { title: Server 🖥️, label: Server, order: 85 }
- { title: Reader 📖, label: Reader, order: 90 }
- { title: Entries to skip 🚫, label: duplicate, hidden: true, order: 99 }
- { title: Entries to skip 🚫, label: no RN, hidden: true, order: 99 }
- { title: Silent-live 🤫, catch-open-hierarchy: true, hidden: false }
warnings: true
print-empty-chapters: false
row-format-issue: '{type}: {number} _{title}_ by {developers} in {pull-requests}'
row-format-pr: '{number} _{title}_ by {developers}'
hierarchy: true
row-format-hierarchy-issue: '{type}: {number} _{title}_ by {developers} {progress}'
service-chapter-exclude: |
Closed Issues without Pull Request ⚠️:
- [scope:security, type:tech-debt]
- name: Create draft release
uses: softprops/action-gh-release@efb35369e0ad2afab669f228072c1b0d510eae64
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
name: ${{ github.event.inputs.tag-name }}
body: ${{ steps.generate_release_notes.outputs.release-notes }}
tag_name: ${{ github.event.inputs.tag-name }}
draft: true
prerelease: false