22#
33# https://github.com/nextcloud/.github
44# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
5+ #
6+ # SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
7+ # SPDX-License-Identifier: MIT
58
69name : Build and publish app release
710
811on :
912 release :
1013 types : [published]
1114
12- env :
13- PHP_VERSION : 8.1
14-
1515jobs :
1616 build_and_publish :
1717 runs-on : ubuntu-latest
2121
2222 steps :
2323 - name : Check actor permission
24- uses : skjnldsv/check-actor-permission@e591dbfe838300c007028e1219ca82cc26e8d7c5 # v2.1
24+ uses : skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v3.0
2525 with :
2626 require : write
2727
@@ -32,50 +32,56 @@ jobs:
3232 echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
3333
3434 - name : Checkout
35- uses : actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5 .2
35+ uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0 .2
3636 with :
3737 path : ${{ env.APP_NAME }}
3838
3939 - name : Get appinfo data
4040 id : appinfo
41- uses : skjnldsv/xpath-action@7e6a7c379d0e9abc8acaef43df403ab4fc4f770c # master
41+ uses : skjnldsv/xpath-action@d813024a13948950fd8d23b580254feeb4883d3c # master
4242 with :
4343 filename : ${{ env.APP_NAME }}/appinfo/info.xml
4444 expression : " //info//dependencies//nextcloud/@min-version"
4545
4646 - name : Read package.json node and npm engines version
47- uses : skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
47+ uses : skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
4848 id : versions
4949 # Continue if no package.json
5050 continue-on-error : true
5151 with :
5252 path : ${{ env.APP_NAME }}
53- fallbackNode : " ^16 "
54- fallbackNpm : " ^7 "
53+ fallbackNode : ' ^20 '
54+ fallbackNpm : ' ^10 '
5555
5656 - name : Set up node ${{ steps.versions.outputs.nodeVersion }}
5757 # Skip if no package.json
5858 if : ${{ steps.versions.outputs.nodeVersion }}
59- uses : actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
59+ uses : actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v3
6060 with :
6161 node-version : ${{ steps.versions.outputs.nodeVersion }}
6262
6363 - name : Set up npm ${{ steps.versions.outputs.npmVersion }}
6464 # Skip if no package.json
6565 if : ${{ steps.versions.outputs.npmVersion }}
66- run : npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
66+ run : npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
67+
68+ - name : Get php version
69+ id : php-versions
70+ uses : icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1
71+ with :
72+ filename : ${{ env.APP_NAME }}/appinfo/info.xml
6773
68- - name : Set up php ${{ env.PHP_VERSION }}
69- uses : shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2
74+ - name : Set up php ${{ steps.php-versions.outputs.php-min }}
75+ uses : shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
7076 with :
71- php-version : ${{ env.PHP_VERSION }}
77+ php-version : ${{ steps.php-versions.outputs.php-min }}
7278 coverage : none
7379 env :
7480 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
7581
7682 - name : Check composer.json
7783 id : check_composer
78- uses : andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
84+ uses : andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
7985 with :
8086 files : " ${{ env.APP_NAME }}/composer.json"
8187
@@ -91,11 +97,11 @@ jobs:
9197 run : |
9298 cd ${{ env.APP_NAME }}
9399 npm ci
94- npm run build
100+ npm run build --if-present
95101
96102 - name : Check Krankerl config
97103 id : krankerl
98- uses : andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
104+ uses : andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
99105 with :
100106 files : ${{ env.APP_NAME }}/krankerl.toml
101107
@@ -121,12 +127,12 @@ jobs:
121127 continue-on-error : true
122128 id : server-checkout
123129 run : |
124- NCVERSION=${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}
130+ NCVERSION=' ${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}'
125131 wget --quiet https://download.nextcloud.com/server/releases/latest-$NCVERSION.zip
126132 unzip latest-$NCVERSION.zip
127133
128134 - name : Checkout server master fallback
129- uses : actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5 .2
135+ uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0 .2
130136 if : ${{ steps.server-checkout.outcome != 'success' }}
131137 with :
132138 submodules : true
@@ -140,7 +146,7 @@ jobs:
140146 tar -xvf ${{ env.APP_NAME }}.tar.gz
141147 cd ../../../
142148 # Setting up keys
143- echo " ${{ secrets.APP_PRIVATE_KEY }}" > ${{ env.APP_NAME }}.key
149+ echo ' ${{ secrets.APP_PRIVATE_KEY }}' > ${{ env.APP_NAME }}.key
144150 wget --quiet "https://github.com/nextcloud/app-certificate-requests/raw/master/${{ env.APP_NAME }}/${{ env.APP_NAME }}.crt"
145151 # Signing
146152 php nextcloud/occ integrity:sign-app --privateKey=../${{ env.APP_NAME }}.key --certificate=../${{ env.APP_NAME }}.crt --path=../${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}
@@ -149,7 +155,7 @@ jobs:
149155 tar -zcvf ${{ env.APP_NAME }}.tar.gz ${{ env.APP_NAME }}
150156
151157 - name : Attach tarball to github release
152- uses : svenstaro/upload-release-action@2b9d2847a97b04d02ad5c3df2d3a27baa97ce689 # v2
158+ uses : svenstaro/upload-release-action@b98a3b12e86552593f3e4e577ca8a62aa2f3f22b # v2
153159 id : attach_to_release
154160 with :
155161 repo_token : ${{ secrets.GITHUB_TOKEN }}
@@ -164,4 +170,4 @@ jobs:
164170 app_name : ${{ env.APP_NAME }}
165171 appstore_token : ${{ secrets.APPSTORE_TOKEN }}
166172 download_url : ${{ steps.attach_to_release.outputs.browser_download_url }}
167- app_private_key : ${{ secrets.APP_PRIVATE_KEY }}
173+ app_private_key : ${{ secrets.APP_PRIVATE_KEY }}
0 commit comments