2222 sudo apt-get install subversion
2323
2424 # -------------------------------------------
25- # KEEPING YOUR EXISTING README-FINDING LOGIC
25+ # KEEPING EXISTING README-FINDING LOGIC
2626 # -------------------------------------------
2727 - name : Find Readme File
2828 id : find_readme
3737 fi
3838
3939 # -------------------------------------------
40- # KEEPING YOUR EXISTING RELEASE NOTES LOGIC
40+ # KEEPING EXISTING RELEASE NOTES LOGIC
4141 # -------------------------------------------
4242 - name : Extract Release Notes
4343 id : release_notes
@@ -81,27 +81,79 @@ jobs:
8181 echo "EOF" >> $GITHUB_OUTPUT
8282
8383 # -------------------------------------------
84- # BEGIN CUSTOM SVN DEPLOY LOGIC
84+ # CUSTOM SVN DEPLOY LOGIC
8585 # -------------------------------------------
8686 - name : Checkout WP.org SVN
8787 run : |
8888 svn co https://plugins.svn.wordpress.org/${{ github.event.repository.name }}/ svn-wp
8989
90- - name : Copy plugin files to trunk (excluding readme.txt)
90+ - name : Clean trunk
9191 run : |
9292 rm -rf svn-wp/trunk/*
93- rsync -av --exclude='readme.txt' --exclude=' svn-wp' ./ svn-wp/ trunk/
93+ mkdir -p svn-wp/ trunk
9494
95+ # -------------------------------------------
96+ # Copy vendor WITHOUT autoload.php
97+ # -------------------------------------------
98+ - name : Copy vendor folder (excluding autoload.php)
99+ run : |
100+ if [ -d "vendor" ]; then
101+ mkdir -p svn-wp/trunk/vendor
102+ rsync -av \
103+ --exclude='autoload.php' \
104+ ./vendor/ svn-wp/trunk/vendor/
105+ fi
106+
107+ # -------------------------------------------
108+ # Commit vendor folders one-by-one
109+ # -------------------------------------------
110+ - name : Commit vendor subfolders
111+ run : |
112+ if [ -d "svn-wp/trunk/vendor" ]; then
113+ cd svn-wp/trunk/vendor
114+
115+ for dir in */; do
116+ echo "Processing vendor folder: $dir"
95117
96- - name : Commit trunk update
118+ cd "$dir"
119+ svn add --force .
120+ svn status
121+
122+ svn commit -m "Add vendor folder: ${dir%/} for version ${{ github.ref_name }}" \
123+ --username "${{ secrets.SVN_USERNAME }}" \
124+ --password "${{ secrets.SVN_PASSWORD }}" \
125+ || echo "Nothing to commit for $dir"
126+
127+ cd ..
128+ done
129+ fi
130+
131+ # -------------------------------------------
132+ # Copy remaining plugin files (excluding readme.txt + vendor)
133+ # -------------------------------------------
134+ - name : Copy remaining plugin files
135+ run : |
136+ rsync -av \
137+ --exclude='vendor' \
138+ --exclude='readme.txt' \
139+ --exclude='svn-wp' \
140+ ./ svn-wp/trunk/
141+
142+ # -------------------------------------------
143+ # Commit remaining plugin files
144+ # -------------------------------------------
145+ - name : Commit the rest of the plugin files
97146 run : |
98147 cd svn-wp
99148 svn add --force trunk
100149 svn status
101- svn commit -m "Update trunk for version ${{ github.ref_name }}" \
150+ svn commit -m "Add remaining plugin files for version ${{ github.ref_name }}" \
102151 --username "${{ secrets.SVN_USERNAME }}" \
103152 --password "${{ secrets.SVN_PASSWORD }}"
104153
154+ # -------------------------------------------
155+ # Create the tag from trunk
156+ # -------------------------------------------
105157 - name : Create new SVN tag
106158 run : |
107159 version="${GITHUB_REF##*/}"
@@ -111,25 +163,52 @@ jobs:
111163 --username "${{ secrets.SVN_USERNAME }}" \
112164 --password "${{ secrets.SVN_PASSWORD }}"
113165
114- - name : Update readme stable tag in both trunk and tag
166+ # -------------------------------------------
167+ # Add readme.txt AND vendor/autoload.php in trunk + tag
168+ # -------------------------------------------
169+ - name : Add final files: readme + vendor/autoload.php
115170 run : |
116171 version="${GITHUB_REF##*/}"
117172
118- # update readme in trunk
119- sed -i "s/^Stable tag:.*/Stable tag: $version/" svn-wp/trunk/readme.txt
173+ # add readme.txt to trunk
174+ cp readme.txt svn-wp/trunk/readme.txt
175+ svn -q add svn-wp/trunk/readme.txt || true
176+
177+ # add readme.txt to tag
178+ cp readme.txt svn-wp/tags/$version/readme.txt
179+ svn -q add svn-wp/tags/$version/readme.txt || true
180+
181+ # add autoload.php if exists
182+ if [ -f "vendor/autoload.php" ]; then
183+ cp vendor/autoload.php svn-wp/trunk/vendor/autoload.php
184+ cp vendor/autoload.php svn-wp/tags/$version/vendor/autoload.php
185+
186+ svn -q add svn-wp/trunk/vendor/autoload.php || true
187+ svn -q add svn-wp/tags/$version/vendor/autoload.php || true
188+ fi
120189
121- # update readme in tag dir
190+ # -------------------------------------------
191+ # Update stable tag in both readmes
192+ # -------------------------------------------
193+ - name : Update readme stable tag in trunk + tag
194+ run : |
195+ version="${GITHUB_REF##*/}"
196+
197+ sed -i "s/^Stable tag:.*/Stable tag: $version/" svn-wp/trunk/readme.txt
122198 sed -i "s/^Stable tag:.*/Stable tag: $version/" svn-wp/tags/$version/readme.txt
123199
124- - name : Commit updated readmes (final)
200+ # -------------------------------------------
201+ # Commit final updates (readme + autoload.php)
202+ # -------------------------------------------
203+ - name : Commit final readme + autoload.php
125204 run : |
126205 cd svn-wp
127- svn commit -m "Update stable tag to ${GITHUB_REF##*/}" \
206+ svn commit -m "Finalize stable tag and autoloader for version ${GITHUB_REF##*/}" \
128207 --username "${{ secrets.SVN_USERNAME }}" \
129208 --password "${{ secrets.SVN_PASSWORD }}"
130209
131210 # -------------------------------------------
132- # CREATE GITHUB RELEASE (KEEP THIS AS IS )
211+ # CREATE GITHUB RELEASE (unchanged )
133212 # -------------------------------------------
134213 - name : Create GitHub Release
135214 uses : softprops/action-gh-release@v2
0 commit comments