77
88permissions :
99 contents : write
10+ pull-requests : write
1011
1112jobs :
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 :
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