mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
build-system: assemble release notes using gh CLI
Instead of using a thirdparty action and painfully passing things around, simply use the GitHub CLI (gh) and assemble the release notes on the fly. This makes for much simpler and much easier to maintain code. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
867d31bcbc
commit
14e715be6e
7 changed files with 39 additions and 79 deletions
18
.github/workflows/android.yml
vendored
18
.github/workflows/android.yml
vendored
|
@ -7,10 +7,10 @@ on:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
|
|
||||||
env:
|
env:
|
||||||
BUILD_ROOT: ${{ github.workspace }}/..
|
BUILD_ROOT: ${{ github.workspace }}/..
|
||||||
KEYSTORE_FILE: ${{ github.workspace }}/../subsurface.keystore
|
KEYSTORE_FILE: ${{ github.workspace }}/../subsurface.keystore
|
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
buildAndroid:
|
buildAndroid:
|
||||||
|
@ -22,25 +22,13 @@ jobs:
|
||||||
- name: checkout sources
|
- name: checkout sources
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: get pull request information from corresponding merge
|
- name: atomically create or retrieve the build number and assemble release notes
|
||||||
if: github.event_name == 'push'
|
|
||||||
id: get_pr
|
|
||||||
uses: pablogamboa/action-get-merged-pull-request@v1.1
|
|
||||||
with:
|
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: atomically create or retrieve the build number
|
|
||||||
id: version_number
|
id: version_number
|
||||||
if: github.event_name == 'push'
|
if: github.event_name == 'push'
|
||||||
run: |
|
run: |
|
||||||
version="$(bash scripts/get-atomic-buildnr.sh ${{ github.sha }} ${{ secrets.NIGHTLY_BUILDS }} "CICD-release")"
|
version="$(bash scripts/get-atomic-buildnr.sh ${{ github.sha }} ${{ secrets.NIGHTLY_BUILDS }} "CICD-release")"
|
||||||
echo "version=$version" >> $GITHUB_OUTPUT
|
echo "version=$version" >> $GITHUB_OUTPUT
|
||||||
pr_num="${{ steps.get_pr.outputs.number }}"
|
bash scripts/create-releasenotes.sh ${{ github.event.head_commit.id }}
|
||||||
pr_url="${{ steps.get_pr.outputs.html_url }}"
|
|
||||||
pr_title="${{ steps.get_pr.outputs.title }}"
|
|
||||||
commit_id="${{ github.event.head_commit.id }}"
|
|
||||||
commit_url="${{ github.event.head_commit.url }}"
|
|
||||||
bash scripts/create-releasenotes.sh "$pr_num" "$pr_url" "$pr_title" "$commit_id" "$commit_url"
|
|
||||||
|
|
||||||
- name: store dummy version and build number for non-push build runs
|
- name: store dummy version and build number for non-push build runs
|
||||||
if: github.event_name != 'push'
|
if: github.event_name != 'push'
|
||||||
|
|
25
.github/workflows/linux-trusty-5.12.yml
vendored
25
.github/workflows/linux-trusty-5.12.yml
vendored
|
@ -7,6 +7,9 @@ on:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
buildAppImage:
|
buildAppImage:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -17,12 +20,13 @@ jobs:
|
||||||
- name: checkout sources
|
- name: checkout sources
|
||||||
uses: actions/checkout@v1
|
uses: actions/checkout@v1
|
||||||
|
|
||||||
- name: atomically create or retrieve the build number
|
- name: atomically create or retrieve the build number and assemble release notes
|
||||||
id: version_number
|
id: version_number
|
||||||
if: github.event_name == 'push'
|
if: github.event_name == 'push'
|
||||||
run: |
|
run: |
|
||||||
version=$(bash ./scripts/get-atomic-buildnr.sh ${{ github.sha }} ${{ secrets.NIGHTLY_BUILDS }} "CICD-release")
|
version=$(bash ./scripts/get-atomic-buildnr.sh ${{ github.sha }} ${{ secrets.NIGHTLY_BUILDS }} "CICD-release")
|
||||||
echo "version=$version" >> $GITHUB_OUTPUT
|
echo "version=$version" >> $GITHUB_OUTPUT
|
||||||
|
bash scripts/create-releasenotes.sh ${{ github.event.head_commit.id }}
|
||||||
|
|
||||||
- name: store dummy version and build number for pull request
|
- name: store dummy version and build number for pull request
|
||||||
if: github.event_name == 'pull_request'
|
if: github.event_name == 'pull_request'
|
||||||
|
@ -70,21 +74,4 @@ jobs:
|
||||||
fail_on_unmatched_files: true
|
fail_on_unmatched_files: true
|
||||||
files: |
|
files: |
|
||||||
./Subsurface*.AppImage
|
./Subsurface*.AppImage
|
||||||
body: |
|
body_path: gh_release_notes
|
||||||
CICD release artifact
|
|
||||||
|
|
||||||
These builds are created on every merge or push into the [Subsurface repo](http://github.com/subsurface/subsurface).
|
|
||||||
|
|
||||||
This build is based on changeset ${{ github.event.head_commit.id }} ([link](${{ github.event.head_commit.url }})):
|
|
||||||
${{ github.event.head_commit.message }}
|
|
||||||
|
|
||||||
None of these artifacts are signed with an official key.
|
|
||||||
The Android APK can be side-loaded on most Android devices. If you had a previous Subsurface-mobile version installed from the Google Play store, you'll have to uninstall that first.
|
|
||||||
The Windows installer will ask you to confirm installation of an app from an unknown developer.
|
|
||||||
The macOS DMG makes it even harder with a multi-step dance that requires opening the Privacy & Security settings in the System Preferences and explicitly confirming that you are willing to install this app.
|
|
||||||
|
|
||||||
You can find similar Subsurface-Daily builds for [Ubuntu](https://ppa.launchpadcontent.net/subsurface) and Subsurface-test for [Fedora](https://copr.fedorainfracloud.org/coprs/dirkhh/Subsurface-test).
|
|
||||||
|
|
||||||
**Note:** Due to the asynchronous nature of our build process the artifacts for the individual platforms are added to the release one by one, whenever their build is finished. So if you can not find a particular artifact on a recent (less than 2 hours old) build, please come back later and check again.
|
|
||||||
|
|
||||||
Please report any issues with these builds in the [Subsurface user forum](https://groups.google.com/g/subsurface-divelog).
|
|
25
.github/workflows/mac.yml
vendored
25
.github/workflows/mac.yml
vendored
|
@ -7,6 +7,9 @@ on:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
buildMac:
|
buildMac:
|
||||||
runs-on: macOS-11
|
runs-on: macOS-11
|
||||||
|
@ -14,12 +17,13 @@ jobs:
|
||||||
- name: checkout sources
|
- name: checkout sources
|
||||||
uses: actions/checkout@v1
|
uses: actions/checkout@v1
|
||||||
|
|
||||||
- name: atomically create or retrieve the build number
|
- name: atomically create or retrieve the build number and assemble release notes
|
||||||
id: version_number
|
id: version_number
|
||||||
if: github.event_name == 'push'
|
if: github.event_name == 'push'
|
||||||
run: |
|
run: |
|
||||||
version=$(bash ./scripts/get-atomic-buildnr.sh ${{ github.sha }} ${{ secrets.NIGHTLY_BUILDS }} "CICD-release")
|
version=$(bash ./scripts/get-atomic-buildnr.sh ${{ github.sha }} ${{ secrets.NIGHTLY_BUILDS }} "CICD-release")
|
||||||
echo "version=$version" >> $GITHUB_OUTPUT
|
echo "version=$version" >> $GITHUB_OUTPUT
|
||||||
|
bash scripts/create-releasenotes.sh ${{ github.event.head_commit.id }}
|
||||||
|
|
||||||
- name: store dummy version and build number for pull request
|
- name: store dummy version and build number for pull request
|
||||||
if: github.event_name == 'pull_request'
|
if: github.event_name == 'pull_request'
|
||||||
|
@ -65,21 +69,4 @@ jobs:
|
||||||
prerelease: false
|
prerelease: false
|
||||||
fail_on_unmatched_files: true
|
fail_on_unmatched_files: true
|
||||||
files: ${{ steps.build.outputs.dmg }}
|
files: ${{ steps.build.outputs.dmg }}
|
||||||
body: |
|
body_path: gh_release_notes
|
||||||
CICD release artifact
|
|
||||||
|
|
||||||
These builds are created on every merge or push into the [Subsurface repo](http://github.com/subsurface/subsurface).
|
|
||||||
|
|
||||||
This build is based on changeset ${{ github.event.head_commit.id }} ([link](${{ github.event.head_commit.url }})):
|
|
||||||
${{ github.event.head_commit.message }}
|
|
||||||
|
|
||||||
None of these artifacts are signed with an official key.
|
|
||||||
The Android APK can be side-loaded on most Android devices. If you had a previous Subsurface-mobile version installed from the Google Play store, you'll have to uninstall that first.
|
|
||||||
The Windows installer will ask you to confirm installation of an app from an unknown developer.
|
|
||||||
The macOS DMG makes it even harder with a multi-step dance that requires opening the Privacy & Security settings in the System Preferences and explicitly confirming that you are willing to install this app.
|
|
||||||
|
|
||||||
You can find similar Subsurface-Daily builds for [Ubuntu](https://ppa.launchpadcontent.net/subsurface) and Subsurface-test for [Fedora](https://copr.fedorainfracloud.org/coprs/dirkhh/Subsurface-test).
|
|
||||||
|
|
||||||
**Note:** Due to the asynchronous nature of our build process the artifacts for the individual platforms are added to the release one by one, whenever their build is finished. So if you can not find a particular artifact on a recent (less than 2 hours old) build, please come back later and check again.
|
|
||||||
|
|
||||||
Please report any issues with these builds in the [Subsurface user forum](https://groups.google.com/g/subsurface-divelog).
|
|
||||||
|
|
25
.github/workflows/windows.yml
vendored
25
.github/workflows/windows.yml
vendored
|
@ -7,6 +7,9 @@ on:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
buildWindows:
|
buildWindows:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -17,12 +20,13 @@ jobs:
|
||||||
- name: checkout sources
|
- name: checkout sources
|
||||||
uses: actions/checkout@v1
|
uses: actions/checkout@v1
|
||||||
|
|
||||||
- name: atomically create or retrieve the build number
|
- name: atomically create or retrieve the build number and assemble release notes
|
||||||
id: version_number
|
id: version_number
|
||||||
if: github.event_name == 'push'
|
if: github.event_name == 'push'
|
||||||
run: |
|
run: |
|
||||||
version=$(bash ./scripts/get-atomic-buildnr.sh ${{ github.sha }} ${{ secrets.NIGHTLY_BUILDS }} "CICD-release")
|
version=$(bash ./scripts/get-atomic-buildnr.sh ${{ github.sha }} ${{ secrets.NIGHTLY_BUILDS }} "CICD-release")
|
||||||
echo "version=$version" >> $GITHUB_OUTPUT
|
echo "version=$version" >> $GITHUB_OUTPUT
|
||||||
|
bash scripts/create-releasenotes.sh ${{ github.event.head_commit.id }}
|
||||||
|
|
||||||
- name: store dummy version and build number for pull request
|
- name: store dummy version and build number for pull request
|
||||||
if: github.event_name == 'pull_request'
|
if: github.event_name == 'pull_request'
|
||||||
|
@ -60,21 +64,4 @@ jobs:
|
||||||
files: |
|
files: |
|
||||||
./subsurface*.exe*
|
./subsurface*.exe*
|
||||||
./smtk2ssrf*.exe
|
./smtk2ssrf*.exe
|
||||||
body: |
|
body_path: gh_release_notes
|
||||||
CICD release artifact
|
|
||||||
|
|
||||||
These builds are created on every merge or push into the [Subsurface repo](http://github.com/subsurface/subsurface).
|
|
||||||
|
|
||||||
This build is based on changeset ${{ github.event.head_commit.id }} ([link](${{ github.event.head_commit.url }})):
|
|
||||||
${{ github.event.head_commit.message }}
|
|
||||||
|
|
||||||
None of these artifacts are signed with an official key.
|
|
||||||
The Android APK can be side-loaded on most Android devices. If you had a previous Subsurface-mobile version installed from the Google Play store, you'll have to uninstall that first.
|
|
||||||
The Windows installer will ask you to confirm installation of an app from an unknown developer.
|
|
||||||
The macOS DMG makes it even harder with a multi-step dance that requires opening the Privacy & Security settings in the System Preferences and explicitly confirming that you are willing to install this app.
|
|
||||||
|
|
||||||
You can find similar Subsurface-Daily builds for [Ubuntu](https://ppa.launchpadcontent.net/subsurface) and Subsurface-test for [Fedora](https://copr.fedorainfracloud.org/coprs/dirkhh/Subsurface-test).
|
|
||||||
|
|
||||||
**Note:** Due to the asynchronous nature of our build process the artifacts for the individual platforms are added to the release one by one, whenever their build is finished. So if you can not find a particular artifact on a recent (less than 2 hours old) build, please come back later and check again.
|
|
||||||
|
|
||||||
Please report any issues with these builds in the [Subsurface user forum](https://groups.google.com/g/subsurface-divelog).
|
|
||||||
|
|
|
@ -1,8 +1,3 @@
|
||||||
CICD release artifact
|
|
||||||
|
|
||||||
These builds are created on every merge or push into the [Subsurface repo](http://github.com/subsurface/subsurface).
|
|
||||||
|
|
||||||
This build was created by [merging PR PRNUM ("PRTITLE")](PRURL) and is based on changeset COMMITID ([link](COMMITURL))
|
|
||||||
|
|
||||||
None of these artifacts are signed with an official key.
|
None of these artifacts are signed with an official key.
|
||||||
The Android APK can be side-loaded on most Android devices. If you had a previous Subsurface-mobile version installed from the Google Play store, you'll have to uninstall that first.
|
The Android APK can be side-loaded on most Android devices. If you had a previous Subsurface-mobile version installed from the Google Play store, you'll have to uninstall that first.
|
4
gh_release_notes_top
Normal file
4
gh_release_notes_top
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
CICD release artifact
|
||||||
|
|
||||||
|
These builds are created on every merge or push into the [Subsurface repo](http://github.com/subsurface/subsurface).
|
||||||
|
|
|
@ -2,7 +2,19 @@
|
||||||
|
|
||||||
# use to assemble the details for our release notes and write them to a file
|
# use to assemble the details for our release notes and write them to a file
|
||||||
#
|
#
|
||||||
# Usage: create-releasenotes.sh pr_num pr_url pr_title commit_id commit_url
|
# Usage: create-releasenotes.sh merge_sha
|
||||||
|
|
||||||
sed "s/PRNUM/$1/;s/PRURL/$2/;s/PRTITLE/$3/;s/COMMITID/$4/;s/COMMITURL/$5/" < gh_release_notes.in > gh_release_notes
|
json=$(gh pr list -s merged -S "$1" --json title,number,url)
|
||||||
|
|
||||||
|
cp gh_release_notes_top gh_release_notes
|
||||||
|
(
|
||||||
|
echo -n 'This build was created by [merging PR'
|
||||||
|
echo -n $json | jq -j '.[0]|{number}|join(" ")'
|
||||||
|
echo -n '('
|
||||||
|
echo -n $json | jq -j '.[0]|{title}|join(" ")'
|
||||||
|
echo -n ')]('
|
||||||
|
echo -n $json | jq -j '.[0]|{url}|join(" ")'
|
||||||
|
echo ' )'
|
||||||
|
) >> gh_release_notes
|
||||||
|
|
||||||
|
cat gh_release_notes_bottom >> gh_release_notes
|
||||||
|
|
Loading…
Reference in a new issue