1212 release :
1313 types : [published]
1414
15+ permissions :
16+ contents : write
17+
1518jobs :
1619 build_and_publish :
1720 runs-on : ubuntu-latest
@@ -32,13 +35,25 @@ jobs:
3235 echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
3336
3437 - name : Checkout
35- uses : actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
38+ uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
3639 with :
40+ persist-credentials : false
3741 path : ${{ env.APP_NAME }}
3842
43+ - name : Get app version number
44+ id : app-version
45+ uses : skjnldsv/xpath-action@f5b036e9d973f42c86324833fd00be90665fbf77 # v1.0.0
46+ with :
47+ filename : ${{ env.APP_NAME }}/appinfo/info.xml
48+ expression : " //info//version/text()"
49+
50+ - name : Validate app version against tag
51+ run : |
52+ [ "${{ env.APP_VERSION }}" = "v${{ fromJSON(steps.app-version.outputs.result).version }}" ]
53+
3954 - name : Get appinfo data
4055 id : appinfo
41- uses : skjnldsv/xpath-action@7e6a7c379d0e9abc8acaef43df403ab4fc4f770c # master
56+ uses : skjnldsv/xpath-action@f5b036e9d973f42c86324833fd00be90665fbf77 # v1.0.0
4257 with :
4358 filename : ${{ env.APP_NAME }}/appinfo/info.xml
4459 expression : " //info//dependencies//nextcloud/@min-version"
@@ -50,13 +65,13 @@ jobs:
5065 continue-on-error : true
5166 with :
5267 path : ${{ env.APP_NAME }}
53- fallbackNode : ' ^20 '
54- fallbackNpm : ' ^10 '
68+ fallbackNode : ' ^24 '
69+ fallbackNpm : ' ^11.3 '
5570
5671 - name : Set up node ${{ steps.versions.outputs.nodeVersion }}
5772 # Skip if no package.json
5873 if : ${{ steps.versions.outputs.nodeVersion }}
59- uses : actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
74+ uses : actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
6075 with :
6176 node-version : ${{ steps.versions.outputs.nodeVersion }}
6277
@@ -67,12 +82,12 @@ jobs:
6782
6883 - name : Get php version
6984 id : php-versions
70- uses : icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
85+ uses : icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2
7186 with :
7287 filename : ${{ env.APP_NAME }}/appinfo/info.xml
7388
7489 - name : Set up php ${{ steps.php-versions.outputs.php-min }}
75- uses : shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
90+ uses : shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
7691 with :
7792 php-version : ${{ steps.php-versions.outputs.php-min }}
7893 coverage : none
@@ -125,22 +140,31 @@ jobs:
125140 cd ${{ env.APP_NAME }}
126141 make appstore
127142
128- - name : Checkout server ${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}
129- continue-on-error : true
130- id : server-checkout
143+ - name : Check server download link for ${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}
131144 run : |
132145 NCVERSION='${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}'
133- wget --quiet https://download.nextcloud.com/server/releases/latest-$NCVERSION.zip
134- unzip latest-$NCVERSION.zip
146+ DOWNLOAD_URL=$(curl -s "https://updates.nextcloud.com/updater_server/latest?channel=beta&version=$NCVERSION" | jq -r '.downloads.zip[0]')
147+ echo "DOWNLOAD_URL=$DOWNLOAD_URL" >> $GITHUB_ENV
148+
149+ - name : Download server ${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}
150+ continue-on-error : true
151+ id : server-download
152+ if : ${{ env.DOWNLOAD_URL != 'null' }}
153+ run : |
154+ echo "Downloading release tarball from $DOWNLOAD_URL"
155+ wget $DOWNLOAD_URL -O nextcloud.zip
156+ unzip nextcloud.zip
135157
136158 - name : Checkout server master fallback
137- uses : actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
138- if : ${{ steps.server-checkout .outcome != 'success' }}
159+ uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
160+ if : ${{ steps.server-download .outcome != 'success' }}
139161 with :
162+ persist-credentials : false
140163 submodules : true
141164 repository : nextcloud/server
142165 path : nextcloud
143166
167+
144168 - name : Sign app
145169 run : |
146170 # Extracting release
@@ -157,7 +181,7 @@ jobs:
157181 tar -zcvf ${{ env.APP_NAME }}.tar.gz ${{ env.APP_NAME }}
158182
159183 - name : Attach tarball to github release
160- uses : svenstaro/upload-release-action@04733e069f2d7f7f0b4aebc4fbdbce8613b03ccd # v2
184+ uses : svenstaro/upload-release-action@6b7fa9f267e90b50a19fef07b3596790bb941741 # v2.11.3
161185 id : attach_to_release
162186 with :
163187 repo_token : ${{ secrets.GITHUB_TOKEN }}
@@ -167,7 +191,7 @@ jobs:
167191 overwrite : true
168192
169193 - name : Upload app to Nextcloud appstore
170- uses : nextcloud-releases/nextcloud-appstore-push-action@a011fe619bcf6e77ddebc96f9908e1af4071b9c1 # v1
194+ uses : nextcloud-releases/nextcloud-appstore-push-action@a011fe619bcf6e77ddebc96f9908e1af4071b9c1 # v1.0.3
171195 with :
172196 app_name : ${{ env.APP_NAME }}
173197 appstore_token : ${{ secrets.APPSTORE_TOKEN }}
0 commit comments