|
8 | 8 | - 'v[0-9]+.[0-9]+.[0-9]+'
|
9 | 9 | - 'v[0-9]+.[0-9]+[0-9a-z]+'
|
10 | 10 | workflow_dispatch:
|
| 11 | + create_release: |
| 12 | + description: Create a draft release |
| 13 | + default: no |
| 14 | + type: choice |
| 15 | + options: |
| 16 | + - yes |
| 17 | + - no |
11 | 18 |
|
12 | 19 | jobs:
|
13 | 20 | check:
|
@@ -102,7 +109,7 @@ jobs:
|
102 | 109 | delete-merged: true
|
103 | 110 |
|
104 | 111 | release:
|
105 |
| - name: Sign release |
| 112 | + name: Sign and prepare release draft |
106 | 113 | needs:
|
107 | 114 | - check
|
108 | 115 | - artifact
|
@@ -130,22 +137,45 @@ jobs:
|
130 | 137 | trust_level: 5
|
131 | 138 |
|
132 | 139 | - name: Set default GPG key
|
133 |
| - run: | |
134 |
| - gpg -K |
135 |
| - gpg --list-secret-keys |
136 |
| - echo "default-key ${{ steps.gpg.outputs.keyid }}" >> ~/.gnupg/gpg.conf |
137 |
| - cat ~/.gnupg/gpg.conf |
| 140 | + run: echo "default-key ${{ steps.gpg.outputs.keyid }}" >> ~/.gnupg/gpg.conf |
138 | 141 |
|
139 | 142 | - name: Sign release
|
140 | 143 | run: |
|
141 | 144 | sudo apt-get install -y lowdown
|
142 | 145 | ./configure
|
143 |
| - # TODO: configure GPG key |
144 | 146 | tools/build-release.sh --without-zip sign
|
| 147 | + mv release/SHA256SUMS.asc${{ steps.gpg.outputs.keyid }} release/SHA256SUMS.asc |
145 | 148 |
|
146 | 149 | - name: Upload signed artifact
|
147 | 150 | uses: actions/upload-artifact@v4
|
148 | 151 | with:
|
149 | 152 | name: c-lightning-${{ env.version }}
|
150 | 153 | overwrite: true
|
151 | 154 | path: release/
|
| 155 | + |
| 156 | + - name: Determine release data |
| 157 | + id: release_data |
| 158 | + run: | |
| 159 | + VERSION=${{ env.version }} |
| 160 | + CHANGELOG_VERSION=${VERSION#v} |
| 161 | + echo "CHANGELOG_VERSION=$CHANGELOG_VERSION" |
| 162 | + echo "changelog_version=$CHANGELOG_VERSION" >> "$GITHUB_OUTPUT" |
| 163 | +
|
| 164 | + CHANGELOG_TITLE=$(grep "## \[${CHANGELOG_VERSION}\]" CHANGELOG.md) |
| 165 | + echo "CHANGELOG_TITLE=$CHANGELOG_TITLE" |
| 166 | + echo "changelog_title=$CHANGELOG_TITLE" >> "$GITHUB_OUTPUT" |
| 167 | +
|
| 168 | + RELEASE_TITLE=$(echo $CHANGELOG_TITLE | cut -d'"' -f2) |
| 169 | + echo "RELEASE_TITLE=$RELEASE_TITLE" |
| 170 | + echo "release_title=$RELEASE_TITLE" >> "$GITHUB_OUTPUT" |
| 171 | +
|
| 172 | + - name: Prepare release draft |
| 173 | + if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && inputs.create_release == 'yes') |
| 174 | + uses: softprops/action-gh-release@v2 |
| 175 | + with: |
| 176 | + name: "${{ env.version }} ${{ steps.release_data.outputs.release_title }}" |
| 177 | + tag_name: ${{ env.version }} |
| 178 | + draft: true |
| 179 | + prerelease: contains(env.version, "-rc") |
| 180 | + files: release/* |
| 181 | + fail_on_unmatched_files: true |
0 commit comments