Skip to content

Commit 95734e6

Browse files
committed
add workflows of release target
1 parent b88e5d8 commit 95734e6

File tree

3 files changed

+102
-0
lines changed

3 files changed

+102
-0
lines changed

.github/release.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# SPDX-License-Identifier: MIT
2+
# SPDX-FileCopyrightText: "2022 smdn <smdn@smdn.jp>"
3+
4+
# ref: https://docs.github.com/repositories/releasing-projects-on-github/automatically-generated-release-notes
5+
changelog:
6+
exclude:
7+
authors:
8+
- smdn
9+
labels:
10+
- release-target
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# SPDX-License-Identifier: MIT
2+
# SPDX-FileCopyrightText: "2022 smdn <smdn@smdn.jp>"
3+
4+
name: Generate release target
5+
6+
on:
7+
push:
8+
tags: new-release/*/*
9+
10+
workflow_dispatch:
11+
inputs:
12+
release_target_tag_name:
13+
description: "The tag name of release target."
14+
required: true
15+
type: string
16+
dry_run:
17+
description: "If true, performs a trial run."
18+
required: false
19+
type: boolean
20+
default: false
21+
22+
jobs:
23+
determine-release-target:
24+
runs-on: ubuntu-latest
25+
outputs:
26+
tag_name: ${{ steps.release-target.outputs.tag_name }}
27+
dry_run: ${{ steps.release-target.outputs.dry_run }}
28+
steps:
29+
- name: Determine the release target tag
30+
id: release-target
31+
run: |
32+
# If workflow is trigged by workflow_dispatch, the value of github.ref_name contains branch ref which workflow runs from.
33+
# Due to the reason of above, github.event.inputs.release_target_tag_name must be tested before testing github.ref_name.
34+
if [[ -n '${{ github.event.inputs.release_target_tag_name }}' ]]; then
35+
# use dispatched tag name
36+
echo '::set-output name=tag_name::${{ github.event.inputs.release_target_tag_name }}'
37+
38+
if [ '${{ github.event.inputs.dry_run }}' = 'true' ]; then
39+
echo '::set-output name=dry_run::true'
40+
else
41+
echo '::set-output name=dry_run::false'
42+
fi
43+
44+
exit 0
45+
fi
46+
47+
if [[ -n '${{ github.ref_name }}' ]]; then
48+
# use pushed tag name
49+
echo '::set-output name=tag_name::${{ github.ref_name }}'
50+
echo '::set-output name=dry_run::false'
51+
exit 0
52+
fi
53+
54+
echo "::error::release target tag could not be determined."
55+
exit 1
56+
57+
run-generate-release-target:
58+
uses: smdn/Smdn.Fundamentals/.github/workflows/generate-release-target.yml@workflows/release-target-v1.3.0
59+
needs: determine-release-target
60+
if: startsWith(needs.determine-release-target.outputs.tag_name, 'new-release/')
61+
with:
62+
release_target_tag_name: ${{ needs.determine-release-target.outputs.tag_name }}
63+
release_target_tag_prefix: 'new-release/'
64+
release_target_pr_label: 'release-target'
65+
release_tag_prefix: 'releases/'
66+
dry_run: ${{ fromJSON(needs.determine-release-target.outputs.dry_run) }}
67+
secrets:
68+
token_repo: ${{ secrets.PUBLISH_NEW_RELEASE }}
69+
token_pullrequest: ${{ secrets.PUBLISH_NEW_RELEASE }}
70+
token_gist: ${{ secrets.PUBLISH_NEW_RELEASE }}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# SPDX-License-Identifier: MIT
2+
# SPDX-FileCopyrightText: "2022 smdn <smdn@smdn.jp>"
3+
4+
name: Publish release target
5+
6+
on:
7+
pull_request:
8+
types: [closed]
9+
10+
jobs:
11+
run-publish-release-target:
12+
uses: smdn/Smdn.Fundamentals/.github/workflows/publish-release-target.yml@workflows/release-target-v1.3.0
13+
if: |
14+
(github.event.pull_request.merged == true && startsWith(github.head_ref, 'releases/')) &&
15+
(contains(github.event.pull_request.labels.*.name, 'release-target'))
16+
with:
17+
pr_number_request_for_release: ${{ github.event.pull_request.number }}
18+
pr_label_request_for_release: 'release-target'
19+
secrets:
20+
token_repo: ${{ secrets.PUBLISH_NEW_RELEASE }}
21+
token_push_nuget_org: ${{ secrets.PUBLISH_PACKAGE_NUGETORG }}
22+
token_push_github_packages: ${{ secrets.PUBLISH_NEW_RELEASE }}

0 commit comments

Comments
 (0)