@@ -17,43 +17,47 @@ jobs:
1717 build :
1818 strategy :
1919 matrix :
20- framework : [ net6.0 ]
20+ framework : [net6.0]
2121 runs-on : ubuntu-latest
2222 steps :
2323 - name : Checkout
2424 uses : actions/checkout@v4
2525 with :
2626 submodules : true
27+ fetch-depth : 0
2728
2829 - name : Extract version from tag
2930 id : extract_version
3031 run : |
3132 TAG_VERSION=${GITHUB_REF#refs/tags/v}
3233 echo "Extracted version: $TAG_VERSION"
3334 echo "PACKAGE_VERSION=$TAG_VERSION" >> $GITHUB_ENV
34-
35- # Log the extracted version
36- echo "Version: $TAG_VERSION"
37-
38- # Check if the version is a pre-release (starts with 0.)
3935 if [[ "$TAG_VERSION" == 0.* ]]; then
40- echo "This is a pre-release version."
4136 echo "IS_PRERELEASE=true" >> $GITHUB_ENV
4237 else
43- echo "This is a stable release."
4438 echo "IS_PRERELEASE=false" >> $GITHUB_ENV
4539 fi
4640
47- - name : Log version and pre-release status
41+ - name : Determine branch and modify package name
42+ id : branch_check
4843 run : |
49- echo "Version: $PACKAGE_VERSION"
50- echo "Is Pre-release: $IS_PRERELEASE"
44+ BRANCH_NAME=$(git branch -r --contains HEAD | sed -e 's/ *origin\///g' | grep -v HEAD | head -n 1)
45+ if [ -z "$BRANCH_NAME" ]; then
46+ echo "No branch found; defaulting to master"
47+ BRANCH_NAME="master"
48+ fi
49+ if [ "$BRANCH_NAME" = "master" ]; then
50+ BUILD_SUFFIX="net6.0"
51+ else
52+ BUILD_SUFFIX="$BRANCH_NAME"
53+ fi
54+ echo "Detected branch: $BRANCH_NAME, Build suffix: $BUILD_SUFFIX"
55+ echo "BUILD_SUFFIX=$BUILD_SUFFIX" >> $GITHUB_ENV
5156
52- - name : Extract repository name without owner
57+ - name : Extract repository name
5358 id : extract_repo_name
5459 run : |
55- REPO_NAME=$(echo $GITHUB_REPOSITORY | cut -d'/' -f2)
56- echo "Repository name: $REPO_NAME"
60+ REPO_NAME=$(basename $GITHUB_REPOSITORY)
5761 echo "PLUGIN_NAME=$REPO_NAME" >> $GITHUB_ENV
5862
5963 - name : Setup .NET Core
6771
6872 - name : Build with package version
6973 run : |
70- dotnet build *.sln -c Release -f ${{ matrix.framework }} -p:Version=${{ env.PACKAGE_VERSION }} -p:AssemblyVersion=${{ env.PACKAGE_VERSION }} -p:FileVersion=${{ env.PACKAGE_VERSION }}
74+ dotnet build *.sln -c Release -f ${{ matrix.framework }} \
75+ -p:Version=${{ env.PACKAGE_VERSION }} \
76+ -p:AssemblyVersion=${{ env.PACKAGE_VERSION }} \
77+ -p:FileVersion=${{ env.PACKAGE_VERSION }}
7178
7279 - name : Find Plugin Output Directory
7380 id : find_plugin_dir
@@ -77,52 +84,91 @@ jobs:
7784 echo "Error: Plugin output directory not found!"
7885 exit 1
7986 fi
80- echo "PLUGIN_OUTPUT_DIR=$PLUGIN_OUTPUT_DIR" >> $GITHUB_OUTPUT
87+ echo "PLUGIN_OUTPUT_DIR=$PLUGIN_OUTPUT_DIR" >> $GITHUB_ENV
8188
82- - name : Zip files matching pattern
89+ - name : Zip Plugin
8390 run : |
84- cd ./_plugins/net6.0/ ${{ env.PLUGIN_NAME }}/
85- zip -r ${{ env.PLUGIN_NAME }}-v${{ env.PACKAGE_VERSION }}.${{ matrix.framework }}.zip *.${{ env.PLUGIN_NAME }}.* *.Plugin.${{ env.PLUGIN_NAME }}.*
91+ cd ${{ env.PLUGIN_OUTPUT_DIR }}
92+ zip -r ${{ env.PLUGIN_NAME }}-v${{ env.PACKAGE_VERSION }}.${{ env.BUILD_SUFFIX }}.zip *.${{ env.PLUGIN_NAME }}.* *.Plugin.${{ env.PLUGIN_NAME }}.*
8693
8794 - name : Get commit messages since last release
8895 id : get_commit_messages
8996 run : |
90- LAST_TAG=$(git describe --tags --abbrev=0 $(git rev-list --tags --max-count=1) 2>/dev/null || true)
91- if [ -z "$LAST_TAG" ]; then
92- echo "No previous tag found. Using initial commit."
93- COMMIT_MESSAGES=$(git log --pretty=format:"- %s")
97+ CURRENT_TAG=${GITHUB_REF#refs/tags/}
98+ PREVIOUS_TAG=$(git describe --tags --abbrev=0 ${CURRENT_TAG}^ 2>/dev/null || true)
99+ if [ -z "$PREVIOUS_TAG" ]; then
100+ echo "No previous tag found. Retrieving all commit messages up to ${CURRENT_TAG}."
101+ COMMIT_MESSAGES=$(git log --pretty=format:"- %h %s" $CURRENT_TAG)
94102 else
95- COMMIT_MESSAGES=$(git log $LAST_TAG..HEAD --pretty=format:"- %s")
103+ COMMIT_MESSAGES=$(git log ${PREVIOUS_TAG}..${CURRENT_TAG} --pretty=format:"- %h %s")
96104 fi
97105 if [ -z "$COMMIT_MESSAGES" ]; then
98- COMMIT_MESSAGES=$(git log --oneline $(git describe --tags --abbrev=0)@^..@ | sed 's/^/- /')
106+ echo "No commit messages found!"
107+ COMMIT_MESSAGES="- No significant changes."
99108 fi
100- if [ -z "$COMMIT_MESSAGES" ]; then
101- COMMIT_MESSAGES=$(git log --all --oneline | sed 's/^/- /')
102- fi
103- echo "Commit messages: $COMMIT_MESSAGES"
109+ echo "Commit messages from ${PREVIOUS_TAG:-start} to ${CURRENT_TAG}: $COMMIT_MESSAGES"
104110 echo "COMMIT_MESSAGES<<EOF" >> $GITHUB_ENV
105111 echo "$COMMIT_MESSAGES" >> $GITHUB_ENV
106112 echo "EOF" >> $GITHUB_ENV
107113
114+ - name : Fetch Minimum Lidarr Version from Submodule
115+ id : fetch_minimum_lidarr_version
116+ run : |
117+ if [ -f "Submodules/Lidarr/azure-pipelines.yml" ]; then
118+ RAW_YAML=$(cat Submodules/Lidarr/azure-pipelines.yml)
119+ else
120+ echo "Error: Submodules/Lidarr/azure-pipelines.yml not found!"
121+ exit 1
122+ fi
123+ MAJOR_VERSION=$(echo "$RAW_YAML" | grep "majorVersion:" | head -n 1 | sed "s/.*majorVersion: *'\([^']*\)'.*/\1/")
124+ echo "Extracted majorVersion: $MAJOR_VERSION"
125+ DOT_COUNT=$(echo "$MAJOR_VERSION" | awk -F. '{print NF-1}')
126+ if [ "$DOT_COUNT" -eq 2 ]; then
127+ MINIMUM_LIDARR_VERSION="${MAJOR_VERSION}.0"
128+ else
129+ MINIMUM_LIDARR_VERSION="$MAJOR_VERSION"
130+ fi
131+ echo "Minimum Lidarr Version: $MINIMUM_LIDARR_VERSION"
132+ echo "MINIMUM_LIDARR_VERSION=$MINIMUM_LIDARR_VERSION" >> $GITHUB_ENV
133+
108134 - name : Debug environment variables
109135 run : |
110136 echo "COMMIT_MESSAGES: $COMMIT_MESSAGES"
111- echo "TAG_DESCRIPTION : $TAG_DESCRIPTION "
137+ echo "TAG_VERSION : $TAG_VERSION "
112138 echo "IS_PRERELEASE: $IS_PRERELEASE"
139+ echo "BUILD_SUFFIX: $BUILD_SUFFIX"
140+ echo "MINIMUM_LIDARR_VERSION: $MINIMUM_LIDARR_VERSION"
113141
114142 - name : Create GitHub Release and Upload Artifact
115143 uses : softprops/action-gh-release@v1
116144 with :
117145 tag_name : ${{ github.ref }}
118- name : 🚀 Release ${{ env.PACKAGE_VERSION }}
146+ name : " 🚀 Release ${{ env.PACKAGE_VERSION }}"
119147 body : |
120- ### 📝 **Changes**
148+ ### 📝 What's New:
121149 ${{ env.COMMIT_MESSAGES }}
122150
123- ----
151+ ---
152+
153+ ### 📥 Installation Notes:
154+
155+ #### Docker Setup (Hotio Image) 🐳
156+ ```yml
157+ image: ghcr.io/hotio/lidarr:pr-plugins
158+ ```
159+
160+ #### Non-Docker Setup
161+ Go to `System -> General -> Branch` and Replace "master" with "plugins"
162+
163+ **Plugin Installation:**
164+ - In Lidarr, navigate to **System -> Plugins**
165+ - Paste the URL: `https://github.com/TypNull/${{ env.PLUGIN_NAME }}`
166+
167+ ---
124168
125- ### 📦 **Artifact**
126- The plugin artifact is attached to this release. Download it below!
169+ ### 📦 Artifact
170+ **Package:** [${{ env.PLUGIN_NAME }}-v${{ env.PACKAGE_VERSION }}.${{ env.BUILD_SUFFIX }}](https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/${{ env.PLUGIN_NAME }}-v${{ env.PACKAGE_VERSION }}.${{ env.BUILD_SUFFIX }}.zip)
171+ **Minimum Lidarr Version:** ${{ env.MINIMUM_LIDARR_VERSION }}
172+ prerelease : ${{ env.IS_PRERELEASE }}
127173 files : |
128- ${{ steps.find_plugin_dir.outputs. PLUGIN_OUTPUT_DIR }}/${{ env.PLUGIN_NAME }}-v${{ env.PACKAGE_VERSION }}.${{ matrix.framework }}.zip
174+ ${{ env. PLUGIN_OUTPUT_DIR }}/${{ env.PLUGIN_NAME }}-v${{ env.PACKAGE_VERSION }}.${{ env.BUILD_SUFFIX }}.zip
0 commit comments