Skip to content

Commit f45449d

Browse files
authored
Merge pull request #19562 from Michael-Gardner/HPCC-33480
HPCC-30890 Changelog automation to build-assets workflow Reviewed-by: Gordon Smith <[email protected]> Reviewed-by: Jake Smith <[email protected]> Merged-by: Gavin Halliday <[email protected]>
2 parents be40691 + e806db2 commit f45449d

File tree

1 file changed

+112
-0
lines changed

1 file changed

+112
-0
lines changed

.github/workflows/build-assets.yml

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,15 @@ jobs:
4040
candidate_branch: ${{ steps.vars.outputs.candidate_branch }}
4141
cmake_docker_config: ${{ steps.vars.outputs.cmake_docker_config }}
4242
gpg_import: ${{ steps.vars.outputs.gpg_import }}
43+
folder_prettygitlogs: ${{ steps.vars.outputs.folder_prettygitlogs }}
44+
folder_eclide: ${{ steps.vars.outputs.folder_eclide }}
4345
steps:
4446
- name: Calculate vars
4547
id: vars
4648
run: |
4749
echo "folder_platform=${{ github.workspace }}/HPCC-Platform" >> $GITHUB_OUTPUT
50+
echo "folder_eclide"=${{ github.workspace }}/ECLIDE >> $GITHUB_OUTPUT
51+
echo "folder_prettygitlogs"=${{ github.workspace }}/PrettyGitLogs >> $GITHUB_OUTPUT
4852
echo 'mount_platform=source="${{ github.workspace }}/HPCC-Platform",target=/hpcc-dev/HPCC-Platform,type=bind,consistency=cached' >> $GITHUB_OUTPUT
4953
echo "folder_ln=${{ github.workspace }}/LN" >> $GITHUB_OUTPUT
5054
echo 'mount_ln=source="${{ github.workspace }}/LN",target=/hpcc-dev/LN,type=bind,consistency=cached' >> $GITHUB_OUTPUT
@@ -710,3 +714,111 @@ jobs:
710714
with:
711715
name: windows-2022-logs
712716
path: ./ECLIDE/build/**/*.log
717+
718+
719+
changelogs:
720+
name: Generate Changelogs
721+
needs: preamble
722+
runs-on: ubuntu-latest
723+
steps:
724+
- name: Checkout HPCC-Platform
725+
uses: actions/checkout@v4
726+
with:
727+
ref: ${{ needs.preamble.outputs.community_ref }}
728+
submodules: recursive
729+
path: ${{ needs.preamble.outputs.folder_platform }}
730+
fetch-tags: true
731+
fetch-depth: 0
732+
- name: Checkout LN
733+
uses: actions/checkout@v4
734+
with:
735+
repository: ${{ github.repository_owner }}/LN
736+
token: ${{ secrets.LNB_TOKEN }}
737+
ref: ${{ needs.preamble.outputs.internal_ref }}
738+
submodules: recursive
739+
path: ${{ needs.preamble.outputs.folder_ln }}
740+
fetch-tags: true
741+
fetch-depth: 0
742+
- name: Checkout ECLIDE
743+
uses: actions/checkout@v4
744+
with:
745+
repository: ${{ github.repository_owner }}/ECLIDE
746+
ref: ${{ needs.preamble.outputs.eclide_ref }}
747+
submodules: recursive
748+
path: ${{ needs.preamble.outputs.folder_eclide }}
749+
fetch-tags: true
750+
fetch-depth: 0
751+
- name: Checkout PrettyGitLogs
752+
uses: actions/checkout@v4
753+
with:
754+
repository: hpcc-systems/PrettyGitLogs
755+
ref: master
756+
path: ${{ needs.preamble.outputs.folder_prettygitlogs }}
757+
- name: Get Previous Versions
758+
id: get_version
759+
shell: bash
760+
working-directory: ${{ needs.preamble.outputs.folder_platform }}
761+
run: |
762+
tag=$(git describe --exact-match --tags 2>/dev/null)
763+
version=$(echo $tag | cut -d_ -f2)
764+
major=$(echo $version | cut -d. -f1)
765+
minor=$(echo $version | cut -d. -f2)
766+
point=$(echo $version | cut -d. -f3 | cut -d- -f1)
767+
type=$(echo $version | cut -d- -f2)
768+
if [[ $point -eq 0 ]]; then
769+
if [[ $minor -eq 0 ]]; then
770+
major=$((major - 1))
771+
previous_rc=$(git tag --create-reflog --sort=-v:refname | grep -E "^community_$major\.[0-9]*\.[0-9]*-rc" | head -n 1 | cut -d_ -f2 )
772+
previous_gold=$(git tag --create-reflog --sort=-v:refname | grep -E "^community_$major\.[0-9]*\.[0-9]*-[0-9]" | head -n 1 | cut -d_ -f2 )
773+
else
774+
minor=$((minor - 2))
775+
previous_rc=$(git tag --create-reflog --sort=-v:refname | grep -E "^community_$major\.$minor\.[0-9]*-rc" | head -n 1 | cut -d_ -f2 )
776+
previous_gold=$(git tag --create-reflog --sort=-v:refname | grep -E "^community_$major\.$minor\.[0-9]*-[0-9]" | head -n 1 | cut -d_ -f2 )
777+
fi
778+
else
779+
point=$((point - 2))
780+
previous_rc=$(git tag --create-reflog --sort=-v:refname | grep -E "^community_$major\.$minor\.$point-rc" | head -n 1 | cut -d_ -f2 )
781+
previous_gold=$(git tag --create-reflog --sort=-v:refname | grep -E "^community_$major\.$minor\.$point-[0-9]" | head -n 1 | cut -d_ -f2)
782+
fi
783+
echo "current_version=$version" >> $GITHUB_OUTPUT
784+
echo "previous_rc_version=$previous_rc" >> $GITHUB_OUTPUT
785+
echo "previous_gold_version=$previous_gold" >> $GITHUB_OUTPUT
786+
echo "type=$type" >> $GITHUB_OUTPUT
787+
- name: Print vars
788+
run: |
789+
echo "${{ toJSON(steps.get_version.outputs) }}"
790+
- name: Generate Changelogs
791+
shell: bash
792+
working-directory: ${{ needs.preamble.outputs.folder_prettygitlogs }}
793+
run: |
794+
# run setup for perl environment
795+
./prettyLogs_setup.sh
796+
797+
# provide credentials
798+
sed -i -e '/^JIRAUser/c\JIRAUser=${{ secrets.JIRA_USERNAME}}' prettylogs.conf
799+
sed -i -e '/^JIRAPW/c\JIRAPW=${{ secrets.JIRA_TOKEN }}' prettylogs.conf
800+
801+
# Generate Changelogs
802+
if [[ ! "${{ steps.get_version.outputs.type }}" == *"rc"* ]]; then
803+
perl ./prettyLogs.pl -bt community_${{ steps.get_version.outputs.current_version }} -et community_${{ steps.get_version.outputs.previous_gold_version }} -repo ${{ needs.preamble.outputs.folder_platform }} -sort -html community_${{ steps.get_version.outputs.current_version }}
804+
perl ./prettyLogs.pl -bt internal_${{ steps.get_version.outputs.current_version }} -et internal_${{ steps.get_version.outputs.previous_gold_version }} -repo ${{ needs.preamble.outputs.folder_ln }} -sort -html internal_${{ steps.get_version.outputs.current_version }}
805+
perl ./prettyLogs.pl -bt eclide_${{ steps.get_version.outputs.current_version }} -et eclide_${{ steps.get_version.outputs.previous_gold_version }} -repo ${{ needs.preamble.outputs.folder_eclide }} -sort -html eclide_${{ steps.get_version.outputs.current_version }}
806+
elif [ "${{ steps.get_version.outputs.type }}" == "rc1" ]; then
807+
perl ./prettyLogs.pl -bt community_${{ steps.get_version.outputs.current_version }} -et community_${{ steps.get_version.outputs.previous_gold_version }} -repo ${{ needs.preamble.outputs.folder_platform }} -sort -html community_${{ steps.get_version.outputs.current_version }}
808+
perl ./prettyLogs.pl -bt internal_${{ steps.get_version.outputs.current_version }} -et internal_${{ steps.get_version.outputs.previous_gold_version }} -repo ${{ needs.preamble.outputs.folder_ln }} -sort -html internal_${{ steps.get_version.outputs.current_version }}
809+
perl ./prettyLogs.pl -bt eclide_${{ steps.get_version.outputs.current_version }} -et eclide_${{ steps.get_version.outputs.previous_gold_version }} -repo ${{ needs.preamble.outputs.folder_eclide }} -sort -html eclide_${{ steps.get_version.outputs.current_version }}
810+
else
811+
perl ./prettyLogs.pl -bt community_${{ steps.get_version.outputs.current_version }} -et community_${{ steps.get_version.outputs.previous_rc_version }} -repo ${{ needs.preamble.outputs.folder_platform }} -sort -html community_${{ steps.get_version.outputs.current_version }}
812+
perl ./prettyLogs.pl -bt internal_${{ steps.get_version.outputs.current_version }} -et internal_${{ steps.get_version.outputs.previous_rc_version }} -repo ${{ needs.preamble.outputs.folder_ln }} -sort -html internal_${{ steps.get_version.outputs.current_version }}
813+
perl ./prettyLogs.pl -bt eclide_${{ steps.get_version.outputs.current_version }} -et eclide_${{ steps.get_version.outputs.previous_rc_version }} -repo ${{ needs.preamble.outputs.folder_eclide }} -sort -html eclide_${{ steps.get_version.outputs.current_version }}
814+
fi
815+
- name: Upload Changelogs
816+
uses: ncipollo/[email protected]
817+
with:
818+
allowUpdates: true
819+
generateReleaseNotes: false
820+
prerelease: ${{ contains(github.ref, '-rc') }}
821+
artifacts: |
822+
${{ needs.preamble.outputs.folder_prettygitlogs }}/community_${{ steps.get_version.outputs.current_version }}.html
823+
${{ needs.preamble.outputs.folder_prettygitlogs }}/internal_${{ steps.get_version.outputs.current_version }}.html
824+
${{ needs.preamble.outputs.folder_prettygitlogs }}/eclide_${{ steps.get_version.outputs.current_version }}.html

0 commit comments

Comments
 (0)