21
21
prepare-release :
22
22
name : Prepare release
23
23
runs-on : ubuntu-latest
24
+ env :
25
+ GITHUB_URL : " https://github.com/crowdsecurity/php-cs-bouncer"
24
26
25
27
steps :
26
28
- name : Check naming convention
@@ -42,24 +44,40 @@ jobs:
42
44
- name : Check version ${{ env.VERSION_NUMBER }} consistency in files
43
45
# Check src/Constants.php and CHANGELOG.md
44
46
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
45
58
CURRENT_DATE=$(date +'%Y-%m-%d')
46
59
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')
48
61
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" ]]
50
63
then
51
64
echo "CHANGELOG VERSION OK"
52
65
else
53
66
echo "CHANGELOG VERSION KO"
54
67
exit 1
55
68
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 }})" ]]
58
74
then
59
- echo "CONSTANT VERSION OK"
75
+ echo "VERSION COMPARISON OK"
60
76
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
63
81
fi
64
82
65
83
- name : Create Tag ${{ github.event.inputs.tag_name }}
76
94
77
95
- name : Prepare release notes
78
96
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' )
80
98
echo "$VERSION_RELEASE_NOTES" >> CHANGELOG.txt
81
99
82
-
83
100
- name : Create release ${{ env.VERSION_NUMBER }}
84
101
uses : softprops/action-gh-release@v1
85
102
with :
0 commit comments