24
24
description : Perform a dry-run release.
25
25
type : boolean
26
26
required : true
27
+ ignore_missing_commit_metadata :
28
+ description : WARNING! This option disables the requirement that all commits have a PR. Not needed for dry_run.
29
+ type : boolean
30
+ default : false
27
31
28
32
permissions :
29
33
# Required to publish a release
@@ -36,6 +40,7 @@ permissions:
36
40
env :
37
41
CODER_RELEASE : ${{ github.event.inputs.snapshot && 'false' || 'true' }}
38
42
DRY_RUN : ${{ (github.event.inputs.dry_run || github.event.inputs.snapshot) && 'true' || 'false' }}
43
+ CODER_IGNORE_MISSING_COMMIT_METADATA : ${{ github.event.inputs.ignore_missing_commit_metadata && '1' || '0' }}
39
44
40
45
concurrency : ${{ github.workflow }}-${{ github.ref }}
41
46
65
70
git config user.name "GitHub Actions Bot"
66
71
git config user.email ""
67
72
73
+ - name : Create release tag and release notes
74
+ run : |
75
+ set -euo pipefail
76
+ ref=HEAD
77
+ old_version="$(git describe --abbrev=0 "$ref^1")"
78
+
79
+ # Warn if CODER_IGNORE_MISSING_COMMIT_METADATA is set any other way
80
+ # than via dry-run.
81
+ if [[ ${CODER_IGNORE_MISSING_COMMIT_METADATA:-0} != 0 ]]; then
82
+ echo "WARNING: CODER_IGNORE_MISSING_COMMIT_METADATA is enabled and we will ignore missing commit metadata." 1>&2
83
+ fi
84
+
85
+ if [[ $DRY_RUN == true ]]; then
86
+ # Allow dry-run of branches to pass.
87
+ export CODER_IGNORE_MISSING_COMMIT_METADATA=1
88
+ fi
89
+
90
+ # Cache commit metadata.
91
+ . ./scripts/release/check_commit_metadata.sh "$old_version" "$ref"
92
+
93
+ # Create new release tag (note that this tag is not pushed before
94
+ # release.sh is run).
95
+ version="$(
96
+ ./scripts/release/tag_version.sh \
97
+ ${{ (github.event.inputs.dry_run || github.event.inputs.snapshot) && '--dry-run' }} \
98
+ --ref "$ref" \
99
+ --${{ github.event.inputs.increment }}
100
+ )"
101
+
102
+ # Generate notes.
103
+ release_notes_file="$(mktemp -t release_notes.XXXXXX)"
104
+ ./scripts/release/generate_release_notes.sh --old-version "$old_version" --new-version "$version" --ref "$ref" >> "$release_notes_file"
105
+ echo CODER_RELEASE_NOTES_FILE="$release_notes_file" >> $GITHUB_ENV
106
+
107
+ - name : Echo release notes
108
+ run : |
109
+ set -euo pipefail
110
+ cat "$CODER_RELEASE_NOTES_FILE"
111
+
68
112
- name : Docker Login
69
113
uses : docker/login-action@v2
70
114
with :
@@ -120,38 +164,6 @@ jobs:
120
164
AC_CERTIFICATE_PASSWORD : ${{ secrets.AC_CERTIFICATE_PASSWORD }}
121
165
AC_APIKEY_P8_BASE64 : ${{ secrets.AC_APIKEY_P8_BASE64 }}
122
166
123
- - name : Create release tag and release notes
124
- run : |
125
- set -euo pipefail
126
- ref=HEAD
127
- old_version="$(git describe --abbrev=0 "$ref^1")"
128
-
129
- if [[ $DRY_RUN == true ]]; then
130
- # Allow dry-run of branches to pass.
131
- export CODER_IGNORE_MISSING_COMMIT_METADATA=1
132
- fi
133
-
134
- # Cache commit metadata.
135
- . ./scripts/release/check_commit_metadata.sh "$old_version" "$ref"
136
-
137
- # Create new release tag.
138
- version="$(
139
- ./scripts/release/tag_version.sh \
140
- ${{ (github.event.inputs.dry_run || github.event.inputs.snapshot) && '--dry-run' }} \
141
- --ref "$ref" \
142
- --${{ github.event.inputs.increment }}
143
- )"
144
-
145
- # Generate notes.
146
- release_notes_file="$(mktemp -t release_notes.XXXXXX)"
147
- ./scripts/release/generate_release_notes.sh --old-version "$old_version" --new-version "$version" --ref "$ref" >> "$release_notes_file"
148
- echo CODER_RELEASE_NOTES_FILE="$release_notes_file" >> $GITHUB_ENV
149
-
150
- - name : Echo release notes
151
- run : |
152
- set -euo pipefail
153
- cat "$CODER_RELEASE_NOTES_FILE"
154
-
155
167
- name : Build binaries
156
168
run : |
157
169
set -euo pipefail
0 commit comments