3030 id : semver
3131 run : |
3232 set -e
33-
34- # Récupérer le dernier tag vX.Y.Z
3533 LATEST_TAG=$(git tag --sort=-v:refname | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | head -n 1)
36-
3734 if [[ -z "$LATEST_TAG" ]]; then
3835 VERSION="0.0.1"
3936 else
@@ -44,40 +41,27 @@ jobs:
4441 PATCH=$((PATCH + 1))
4542 VERSION="$MAJOR.$MINOR.$PATCH"
4643 fi
47-
4844 TAG="v$VERSION"
49-
50- # Vérifier si le tag existe déjà
5145 if git rev-parse "$TAG" >/dev/null 2>&1; then
5246 echo "skip=true" >> $GITHUB_OUTPUT
5347 else
5448 echo "skip=false" >> $GITHUB_OUTPUT
5549 fi
56-
5750 echo "version=$VERSION" >> $GITHUB_OUTPUT
5851 echo "tag=$TAG" >> $GITHUB_OUTPUT
5952
6053 - name : ' Créer le tag et la release si sur main'
6154 if : steps.semver.outputs.skip != 'true' && github.event.pull_request.base.ref == 'main'
6255 run : |
63- echo "Récupération du changelog pour ${{ steps.semver.outputs.tag }}"
64- # Extraire le changelog correspondant à la version
65- RELEASE_NOTES=$(awk "/^## \[${{ steps.semver.outputs.tag }}\]/ {flag=1; next} /^## / {flag=0} flag " CHANGELOG.md)
66- echo "$RELEASE_NOTES" > release_notes.md
67-
68- # Créer le tag
56+ echo "Extraction du changelog pour ${{ steps.semver.outputs.tag }}"
57+ if [[ -f CHANGELOG.md ]]; then
58+ sed -n "/^## \[${{ steps.semver.outputs.tag }}\]/, /^## /p " CHANGELOG.md > release_notes.txt
59+ else
60+ echo "${{ steps.semver.outputs.version }}" > release_notes.txt
61+ fi
6962 git tag "${{ steps.semver.outputs.tag }}"
7063 git push origin "${{ steps.semver.outputs.tag }}"
7164
72- - name : ' Créer une release GitHub'
73- if : steps.semver.outputs.skip != 'true' && github.event.pull_request.base.ref == 'main'
74- uses : ncipollo/release-action@v1
75- with :
76- tag : ' ${{ steps.semver.outputs.tag }}'
77- name : ' Hotfix ${{ steps.semver.outputs.tag }}'
78- body : |
79- $(cat release_notes.md)
80-
8165 - name : ' PR mergée sur dev'
8266 if : github.event.pull_request.base.ref == 'dev'
8367 run : echo "PR mergée sur dev, aucune release ni tag créé."
0 commit comments