Skip to content

Commit 8bd1e8e

Browse files
docs(changelog): Rework CHANGELOG style [skip ci]
1 parent 055323f commit 8bd1e8e

File tree

3 files changed

+164
-110
lines changed

3 files changed

+164
-110
lines changed

.github/workflows/release.yml

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ jobs:
2121
prepare-release:
2222
name: Prepare release
2323
runs-on: ubuntu-latest
24+
env:
25+
GITHUB_URL: "https://github.com/crowdsecurity/php-cs-bouncer"
2426

2527
steps:
2628
- name: Check naming convention
@@ -42,24 +44,40 @@ jobs:
4244
- name: Check version ${{ env.VERSION_NUMBER }} consistency in files
4345
# Check src/Constants.php and CHANGELOG.md
4446
run: |
47+
: # Check public const VERSION = 'vVERSION_NUMBER'; in CHANGELOG.md in src/Constants.php
48+
CONSTANT_VERSION=$(grep -E "public const VERSION = 'v(.*)';" src/Constants.php | sed 's/ //g')
49+
if [[ $CONSTANT_VERSION == "publicconstVERSION='v${{ env.VERSION_NUMBER }}';" ]]
50+
then
51+
echo "CONSTANT VERSION OK"
52+
else
53+
echo "CONSTANT VERSION KO"
54+
exit 1
55+
fi
56+
57+
: # Check top ## [VERSION_NUMBER](GITHUB_URL/releases/tag/vVERSION_NUMBER) - yyyy-mm-dd in CHANGELOG.md
4558
CURRENT_DATE=$(date +'%Y-%m-%d')
4659
echo $CURRENT_DATE
47-
CHANGELOG_VERSION=$(grep -o -E "## \[(.*)\] - $CURRENT_DATE" CHANGELOG.md | head -1 | sed 's/ //g')
60+
CHANGELOG_VERSION=$(grep -o -E "## \[(.*)\].* - $CURRENT_DATE" CHANGELOG.md | head -1 | sed 's/ //g')
4861
echo $CHANGELOG_VERSION
49-
if [[ $CHANGELOG_VERSION == "##[${{ env.VERSION_NUMBER }}]-$CURRENT_DATE" ]]
62+
if [[ $CHANGELOG_VERSION == "##[${{ env.VERSION_NUMBER }}](${{ env.GITHUB_URL }}/releases/tag/v${{ env.VERSION_NUMBER }})-$CURRENT_DATE" ]]
5063
then
5164
echo "CHANGELOG VERSION OK"
5265
else
5366
echo "CHANGELOG VERSION KO"
5467
exit 1
5568
fi
56-
CONSTANT_VERSION=$(grep -E "public const VERSION = 'v(.*)';" src/Constants.php | sed 's/ //g')
57-
if [[ $CONSTANT_VERSION == "publicconstVERSION='v${{ env.VERSION_NUMBER }}';" ]]
69+
70+
: # Check top [_Compare with previous release_](GITHUB_URL/compare/vLAST_TAG...vVERSION_NUMBER) in CHANGELOG.md
71+
COMPARISON=$(grep -oP "\/compare\/\K(.*)$" CHANGELOG.md | head -1)
72+
LAST_TAG=$(curl -Ls -o /dev/null -w %{url_effective} ${{ env.GITHUB_URL }}/releases/latest | grep -oP "\/tag\/\K(.*)$")
73+
if [[ $COMPARISON == "$LAST_TAG...v${{ env.VERSION_NUMBER }})" ]]
5874
then
59-
echo "CONSTANT VERSION OK"
75+
echo "VERSION COMPARISON OK"
6076
else
61-
echo "CONSTANT VERSION KO"
62-
exit 1
77+
echo "VERSION COMPARISON KO"
78+
echo $COMPARISON
79+
echo "$LAST_TAG...v${{ env.VERSION_NUMBER }})"
80+
exit 1
6381
fi
6482
6583
- name: Create Tag ${{ github.event.inputs.tag_name }}
@@ -76,10 +94,9 @@ jobs:
7694
7795
- name: Prepare release notes
7896
run: |
79-
VERSION_RELEASE_NOTES=$(awk -v ver="[${{ env.VERSION_NUMBER }}]" '/^## / { if (p) { exit }; if ($2 == ver) { p=1; next} } p && NF' CHANGELOG.md)
97+
VERSION_RELEASE_NOTES=$(awk -v ver="[${{ env.VERSION_NUMBER }}](${{ env.GITHUB_URL }}/releases/tag/v${{ env.VERSION_NUMBER }})" '/^## / { if (p) { exit }; if ($2 == ver) { p=1; next} } p && NF' CHANGELOG.md | sed ':a;N;$!ba;s/\n---/ /g')
8098
echo "$VERSION_RELEASE_NOTES" >> CHANGELOG.txt
8199
82-
83100
- name: Create release ${{ env.VERSION_NUMBER }}
84101
uses: softprops/action-gh-release@v1
85102
with:

0 commit comments

Comments
 (0)