Skip to content

Commit eebf54d

Browse files
committed
fix(actions): use official Nextcloud appstore action instead of custom scripts
1 parent 6bcde06 commit eebf54d

File tree

2 files changed

+13
-56
lines changed

2 files changed

+13
-56
lines changed

.github/workflows/appstore-build-publish.yml

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -136,31 +136,9 @@ jobs:
136136
overwrite: true
137137

138138
- name: Upload app to Nextcloud appstore
139-
env:
140-
APPSTORE_TOKEN: ${{ secrets.APPSTORE_TOKEN }}
141-
APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}
142-
DOWNLOAD_URL: ${{ steps.attach_to_release.outputs.browser_download_url }}
143-
run: |
144-
APPSTORE_TOKEN="$(printf '%s' "$APPSTORE_TOKEN" | tr -d '\r\n')"
145-
KEY_FILE="$RUNNER_TEMP/${{ env.APP_NAME }}.key"
146-
APP_TGZ="$RUNNER_TEMP/${{ env.APP_NAME }}.tar.gz"
147-
RESPONSE_FILE="$RUNNER_TEMP/appstore-response.json"
148-
149-
printf '%s' "$APP_PRIVATE_KEY" > "$KEY_FILE"
150-
wget "$DOWNLOAD_URL" -O "$APP_TGZ"
151-
152-
SIGNATURE="$(openssl dgst -sha512 -sign "$KEY_FILE" "$APP_TGZ" | openssl base64 -A)"
153-
PAYLOAD="$(jq -nc --arg download "$DOWNLOAD_URL" --arg signature "$SIGNATURE" '{download:$download, signature:$signature, nightly:false}')"
154-
155-
HTTP_STATUS="$(curl -sS -o "$RESPONSE_FILE" -w '%{http_code}' -X POST https://apps.nextcloud.com/api/v1/apps/releases \
156-
-H "Authorization: Token ${APPSTORE_TOKEN}" \
157-
-H 'Content-Type: application/json' \
158-
--data "$PAYLOAD")"
159-
160-
echo "App Store response status: $HTTP_STATUS"
161-
cat "$RESPONSE_FILE"
162-
163-
if [ "$HTTP_STATUS" -lt 200 ] || [ "$HTTP_STATUS" -ge 300 ]; then
164-
echo "::error::App Store upload failed with HTTP $HTTP_STATUS"
165-
exit 1
166-
fi
139+
uses: nextcloud-releases/nextcloud-appstore-push-action@a011fe619bcf6e77ddebc96f9908e1af4071b9c1
140+
with:
141+
app_name: ${{ env.APP_NAME }}
142+
appstore_token: ${{ secrets.APPSTORE_TOKEN }}
143+
download_url: ${{ steps.attach_to_release.outputs.browser_download_url }}
144+
app_private_key: ${{ secrets.APP_PRIVATE_KEY }}

.github/workflows/nightly-release.yml

Lines changed: 7 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -230,31 +230,10 @@ jobs:
230230
overwrite: true
231231

232232
- name: Upload app to Nextcloud appstore (nightly)
233-
env:
234-
APPSTORE_TOKEN: ${{ secrets.APPSTORE_TOKEN }}
235-
APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}
236-
DOWNLOAD_URL: ${{ steps.attach_to_release.outputs.browser_download_url }}
237-
run: |
238-
APPSTORE_TOKEN="$(printf '%s' "$APPSTORE_TOKEN" | tr -d '\r\n')"
239-
KEY_FILE="$RUNNER_TEMP/${{ env.APP_NAME }}.key"
240-
APP_TGZ="$RUNNER_TEMP/${{ env.APP_NAME }}.tar.gz"
241-
RESPONSE_FILE="$RUNNER_TEMP/appstore-response.json"
242-
243-
printf '%s' "$APP_PRIVATE_KEY" > "$KEY_FILE"
244-
wget "$DOWNLOAD_URL" -O "$APP_TGZ"
245-
246-
SIGNATURE="$(openssl dgst -sha512 -sign "$KEY_FILE" "$APP_TGZ" | openssl base64 -A)"
247-
PAYLOAD="$(jq -nc --arg download "$DOWNLOAD_URL" --arg signature "$SIGNATURE" '{download:$download, signature:$signature, nightly:true}')"
248-
249-
HTTP_STATUS="$(curl -sS -o "$RESPONSE_FILE" -w '%{http_code}' -X POST https://apps.nextcloud.com/api/v1/apps/releases \
250-
-H "Authorization: Token ${APPSTORE_TOKEN}" \
251-
-H 'Content-Type: application/json' \
252-
--data "$PAYLOAD")"
253-
254-
echo "App Store response status: $HTTP_STATUS"
255-
cat "$RESPONSE_FILE"
256-
257-
if [ "$HTTP_STATUS" -lt 200 ] || [ "$HTTP_STATUS" -ge 300 ]; then
258-
echo "::error::App Store upload failed with HTTP $HTTP_STATUS"
259-
exit 1
260-
fi
233+
uses: nextcloud-releases/nextcloud-appstore-push-action@a011fe619bcf6e77ddebc96f9908e1af4071b9c1
234+
with:
235+
app_name: ${{ env.APP_NAME }}
236+
appstore_token: ${{ secrets.APPSTORE_TOKEN }}
237+
download_url: ${{ steps.attach_to_release.outputs.browser_download_url }}
238+
app_private_key: ${{ secrets.APP_PRIVATE_KEY }}
239+
nightly: true

0 commit comments

Comments
 (0)