Skip to content

Commit d3e6f15

Browse files
test
1 parent 93ebd24 commit d3e6f15

1 file changed

Lines changed: 52 additions & 28 deletions

File tree

.github/workflows/release.yml

Lines changed: 52 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@ on:
77

88
permissions:
99
contents: write
10+
pull-requests: write
1011

1112
jobs:
1213
release:
1314
runs-on: ubuntu-latest
1415

1516
env:
16-
# path to the release files
17+
# path to the release files
1718
BUILD_PATH: ${{ github.workspace }}/CalibreImport/ReleaseFiles
1819

1920
steps:
@@ -33,24 +34,6 @@ jobs:
3334
- name: List root directory contents
3435
run: ls -R ${{ github.workspace }}
3536

36-
- name: Extract version from AssemblyInfo.cs
37-
id: extract_version
38-
run: |
39-
NEW_VERSION=$(grep -Po '(?<=\[assembly: AssemblyVersion\(")([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)' CalibreImport/Properties/AssemblyInfo.cs)
40-
echo "New version: $NEW_VERSION"
41-
echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV
42-
43-
- name: Check if tag exists
44-
id: check_tag
45-
run: |
46-
if git rev-parse "v$NEW_VERSION" >/dev/null 2>&1; then
47-
echo "Tag v$NEW_VERSION already exists"
48-
echo "TAG_EXISTS=true" >> $GITHUB_ENV
49-
else
50-
echo "Tag v$NEW_VERSION does not exist"
51-
echo "TAG_EXISTS=false" >> $GITHUB_ENV
52-
fi
53-
5437
- name: Check if relevant files have changed
5538
id: check_files_changed
5639
run: |
@@ -65,16 +48,47 @@ jobs:
6548
fi
6649
echo "FILES_CHANGED=$FILES_CHANGED" # Add this line for debugging
6750
51+
- name: Extract and increment version from AssemblyInfo.cs
52+
if: env.FILES_CHANGED == 'true'
53+
id: increment_version
54+
run: |
55+
current_version=$(grep -Po '(?<=\[assembly: AssemblyVersion\(")([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)' CalibreImport/Properties/AssemblyInfo.cs)
56+
echo "Current version: $current_version"
57+
IFS='.' read -r -a version_parts <<< "$current_version"
58+
version_parts[3]=$((version_parts[3] + 1))
59+
if [ ${version_parts[3]} -gt 9 ]; then
60+
version_parts[3]=0
61+
version_parts[2]=$((version_parts[2] + 1))
62+
fi
63+
if [ ${version_parts[2]} -gt 9 ]; then
64+
version_parts[2]=0
65+
version_parts[1]=$((version_parts[1] + 1))
66+
fi
67+
new_version="${version_parts[0]}.${version_parts[1]}.${version_parts[2]}.${version_parts[3]}"
68+
echo "New version: $new_version"
69+
sed -i.bak "s/\[assembly: AssemblyVersion(\"[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\")\]/\[assembly: AssemblyVersion(\"$new_version\")\]/" CalibreImport/Properties/AssemblyInfo.cs
70+
sed -i.bak "s/\[assembly: AssemblyFileVersion(\"[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\")\]/\[assembly: AssemblyFileVersion(\"$new_version\")\]/" CalibreImport/Properties/AssemblyInfo.cs
71+
echo "NEW_VERSION=$new_version" >> $GITHUB_ENV
72+
git add CalibreImport/Properties/AssemblyInfo.cs
73+
git commit -m "Increment version to $new_version"
74+
git push origin master
6875
69-
- name: Debugging - Print changed files
76+
- name: Check if tag exists
77+
id: check_tag
7078
run: |
71-
echo "Changed files: $CHANGED_FILES"
79+
if git rev-parse "v${{ env.NEW_VERSION }}" >/dev/null 2>&1; then
80+
echo "Tag v${{ env.NEW_VERSION }} already exists"
81+
echo "TAG_EXISTS=true" >> $GITHUB_ENV
82+
else
83+
echo "Tag v${{ env.NEW_VERSION }} does not exist"
84+
echo "TAG_EXISTS=false" >> $GITHUB_ENV
85+
fi
7286
7387
- name: Create and push tag (if it doesn't exist and files have changed)
7488
if: env.TAG_EXISTS == 'false' && env.FILES_CHANGED == 'true'
7589
run: |
76-
git tag -a "v$NEW_VERSION" -m "Release version $NEW_VERSION"
77-
git push origin "v$NEW_VERSION"
90+
git tag -a "v${{ env.NEW_VERSION }}" -m "Release version ${{ env.NEW_VERSION }}"
91+
git push origin "v${{ env.NEW_VERSION }}"
7892
7993
- name: List contents of build directory
8094
run: |
@@ -85,14 +99,14 @@ jobs:
8599
run: |
86100
mkdir -p release
87101
cp $BUILD_PATH/CalibreImport.config $BUILD_PATH/CalibreImport.dll $BUILD_PATH/Setup.ps1 release/
88-
zip -r ImportToCalibreExtension-v$NEW_VERSION.zip release/
89-
echo "ZIP_FILE=ImportToCalibreExtension-v$NEW_VERSION.zip" >> $GITHUB_ENV
102+
zip -r ImportToCalibreExtension-v${{ env.NEW_VERSION }}.zip release/
103+
echo "ZIP_FILE=ImportToCalibreExtension-v${{ env.NEW_VERSION }}.zip" >> $GITHUB_ENV
90104
91105
- name: Copy and rename CalibreImportSetup.exe
92106
if: env.FILES_CHANGED == 'true'
93107
run: |
94-
cp $BUILD_PATH/CalibreImportSetup.exe release/CalibreImportSetup-$NEW_VERSION.exe
95-
echo "SETUP_FILE=release/CalibreImportSetup-$NEW_VERSION.exe" >> $GITHUB_ENV
108+
cp $BUILD_PATH/CalibreImportSetup.exe release/CalibreImportSetup-${{ env.NEW_VERSION }}.exe
109+
echo "SETUP_FILE=release/CalibreImportSetup-${{ env.NEW_VERSION }}.exe" >> $GITHUB_ENV
96110
97111
- name: Debugging - Print environment variables
98112
run: |
@@ -101,7 +115,6 @@ jobs:
101115
echo "ZIP_FILE: $ZIP_FILE"
102116
echo "SETUP_FILE: $SETUP_FILE"
103117
104-
# Retrieving the message inserted in VS when committing changes
105118
- name: Get commit message
106119
id: get_commit_message
107120
run: |
@@ -122,3 +135,14 @@ jobs:
122135
prerelease: false
123136
files: ${{ env.ZIP_FILE }},${{ env.SETUP_FILE }}
124137
token: ${{ secrets.PAT_GITHUB }}
138+
139+
# - name: Create pull request
140+
# if: env.FILES_CHANGED == 'true'
141+
# uses: peter-evans/create-pull-request@v4
142+
# with:
143+
# token: ${{ secrets.PAT_GITHUB }}
144+
# commit-message: "Increment version to ${{ env.NEW_VERSION }}"
145+
# branch: version-increment
146+
# title: "Increment version to ${{ env.NEW_VERSION }}"
147+
# body: "This pull request increments the version to ${{ env.NEW_VERSION }} and updates AssemblyInfo.cs."
148+
# base: master

0 commit comments

Comments
 (0)