Skip to content

Commit cae2785

Browse files
ops(KDP): fixing action wrapper version
1 parent 28cd93b commit cae2785

File tree

1 file changed

+52
-20
lines changed
  • .github/templates/github/semantic_release

1 file changed

+52
-20
lines changed

.github/templates/github/semantic_release/action.yml

Lines changed: 52 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -86,28 +86,66 @@ runs:
8686
8787
- name: "Run Semantic Release"
8888
id: semantic-release
89-
uses: cycjimmy/semantic-release-action@v3.4.1
89+
shell: bash
9090
env:
9191
GITHUB_TOKEN: ${{ inputs.GITHUB_TOKEN }}
92-
with:
93-
branches: ${{ inputs.BRANCHES }}
94-
dry_run: ${{ inputs.DRY_RUN }}
95-
working_directory: ${{ inputs.PROJECT_DIRECTORY }}
96-
extra_plugins: |
97-
@semantic-release/commit-analyzer
98-
@semantic-release/release-notes-generator
99-
@semantic-release/changelog
100-
@semantic-release/github
101-
@semantic-release/git
102-
@semantic-release/exec
103-
conventional-changelog-conventionalcommits@7.0.2
92+
run: |
93+
cd ${{ inputs.PROJECT_DIRECTORY }}
94+
95+
# Run semantic-release
96+
DRY_RUN_FLAG=""
97+
if [ "${{ inputs.DRY_RUN }}" = "true" ]; then
98+
DRY_RUN_FLAG="--dry-run"
99+
fi
100+
101+
# Run semantic-release and capture the output
102+
npx semantic-release $DRY_RUN_FLAG --branches ${{ inputs.BRANCHES }} > semantic-release-output.txt 2>&1 || true
103+
104+
# Display output for debugging
105+
cat semantic-release-output.txt
106+
107+
# Check if a release was created or would be created (in dry-run)
108+
if grep -q "The next release version is" semantic-release-output.txt || grep -q "Published release" semantic-release-output.txt; then
109+
# Try different patterns to extract the version
110+
if grep -q "The next release version is" semantic-release-output.txt; then
111+
NEW_RELEASE_VERSION=$(grep -o "The next release version is [0-9]\+\.[0-9]\+\.[0-9]\+" semantic-release-output.txt | grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+")
112+
else
113+
NEW_RELEASE_VERSION=$(grep -o "Published release [0-9]\+\.[0-9]\+\.[0-9]\+" semantic-release-output.txt | grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+")
114+
fi
115+
116+
echo "new_release_version=$NEW_RELEASE_VERSION" >> $GITHUB_OUTPUT
117+
echo "new_release_published=true" >> $GITHUB_OUTPUT
118+
119+
# Extract major, minor, patch versions
120+
MAJOR=$(echo $NEW_RELEASE_VERSION | cut -d. -f1)
121+
MINOR=$(echo $NEW_RELEASE_VERSION | cut -d. -f2)
122+
PATCH=$(echo $NEW_RELEASE_VERSION | cut -d. -f3)
123+
124+
echo "new_release_major_version=$MAJOR" >> $GITHUB_OUTPUT
125+
echo "new_release_minor_version=$MINOR" >> $GITHUB_OUTPUT
126+
echo "new_release_patch_version=$PATCH" >> $GITHUB_OUTPUT
127+
128+
# Generate a simplified version of the release notes for output
129+
if [ -f "CHANGELOG.md" ]; then
130+
# Extract the latest release notes from the changelog
131+
RELEASE_NOTES=$(awk '/^## / {if (p) exit; p=1} p' CHANGELOG.md | tail -n +2)
132+
echo "new_release_notes<<EOF" >> $GITHUB_OUTPUT
133+
echo "$RELEASE_NOTES" >> $GITHUB_OUTPUT
134+
echo "EOF" >> $GITHUB_OUTPUT
135+
else
136+
echo "new_release_notes=No detailed release notes available" >> $GITHUB_OUTPUT
137+
fi
138+
else
139+
echo "No new version to be released"
140+
echo "new_release_published=false" >> $GITHUB_OUTPUT
141+
echo "new_release_notes=No release notes available" >> $GITHUB_OUTPUT
142+
fi
104143
105144
- name: "Export released version"
106145
id: export-released-version
107146
shell: bash
108147
run: |
109148
if [ "${{ steps.semantic-release.outputs.new_release_version }}" != "" ]; then
110-
echo "new_release_version=${{ steps.semantic-release.outputs.new_release_version }}" >> $GITHUB_OUTPUT
111149
echo "New release version: ${{ steps.semantic-release.outputs.new_release_version }}"
112150
else
113151
echo "No new version released"
@@ -118,15 +156,9 @@ runs:
118156
shell: bash
119157
run: |
120158
if [ "${{ steps.semantic-release.outputs.new_release_notes }}" != "" ]; then
121-
RELEASE_NOTES="${{ steps.semantic-release.outputs.new_release_notes }}"
122-
RELEASE_NOTES="${RELEASE_NOTES//'%'/'%25'}"
123-
RELEASE_NOTES="${RELEASE_NOTES//$'\r'/'%0D'}"
124-
RELEASE_NOTES="${RELEASE_NOTES//$'\n'/'%0A'}"
125-
echo "new_release_notes=${RELEASE_NOTES}" >> $GITHUB_OUTPUT
126159
echo "Release notes captured successfully"
127160
else
128161
echo "No release notes available"
129-
echo "new_release_notes=No release notes available" >> $GITHUB_OUTPUT
130162
fi
131163
132164
- name: "Release summary"

0 commit comments

Comments
 (0)