Skip to content

Commit cee41f6

Browse files
authored
Merge pull request #49 from LibreCodeCoop/fix/release-flow-libresign
refactor(actions): align release workflows with LibreSign
2 parents 40c3975 + 58108c5 commit cee41f6

File tree

2 files changed

+41
-48
lines changed

2 files changed

+41
-48
lines changed

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

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ on:
1010

1111
permissions:
1212
contents: write
13+
actions: write
1314

1415
jobs:
1516
build_and_publish:
@@ -26,6 +27,7 @@ jobs:
2627
- name: Set app env
2728
run: |
2829
[ "${GITHUB_REPOSITORY##*/}" = "${APP_NAME}" ]
30+
echo "APP_VERSION=${GITHUB_REF##*/}" >> "$GITHUB_ENV"
2931
3032
- name: Checkout
3133
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@@ -91,11 +93,6 @@ jobs:
9193
env:
9294
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
9395

94-
- name: Package ${{ env.APP_NAME }} with makefile
95-
run: |
96-
make -C "${{ env.APP_NAME }}" appstore
97-
make -C "${{ env.APP_NAME }}" verify-appstore-package
98-
9996
- name: Check server download link for ${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}
10097
id: server-url
10198
run: |
@@ -120,22 +117,13 @@ jobs:
120117
repository: nextcloud/server
121118
path: nextcloud
122119

123-
- name: Sign app
120+
- name: Package ${{ env.APP_NAME }} ${{ github.ref_name }} with makefile
124121
run: |
125-
KEY_PATH="${GITHUB_WORKSPACE}/${{ env.APP_NAME }}.key"
126-
CERT_PATH="${GITHUB_WORKSPACE}/${{ env.APP_NAME }}.crt"
127-
APP_PATH="${GITHUB_WORKSPACE}/${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}"
128-
129-
printf '%s' '${{ secrets.APP_PRIVATE_KEY }}' > "${KEY_PATH}"
130-
chmod 600 "${KEY_PATH}"
131-
wget --quiet -O "${CERT_PATH}" "https://github.com/nextcloud/app-certificate-requests/raw/master/${{ env.APP_NAME }}/${{ env.APP_NAME }}.crt"
132-
133-
php nextcloud/occ integrity:sign-app \
134-
--privateKey="${KEY_PATH}" \
135-
--certificate="${CERT_PATH}" \
136-
--path="${APP_PATH}"
137-
138-
tar -C "${{ env.APP_NAME }}/build/artifacts" -zcf "${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}.tar.gz" "${{ env.APP_NAME }}"
122+
cd "${{ env.APP_NAME }}"
123+
mkdir -p build/tools/certificates/
124+
printf '%s' '${{ secrets.APP_PRIVATE_KEY }}' > "build/tools/certificates/${{ env.APP_NAME }}.key"
125+
chmod 600 "build/tools/certificates/${{ env.APP_NAME }}.key"
126+
make appstore verify-appstore-package
139127
140128
- name: Attach tarball to GitHub release
141129
uses: svenstaro/upload-release-action@29e53e917877a24fad85510ded594ab3c9ca12de # v2.11.5

.github/workflows/nightly-release.yml

Lines changed: 33 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ on:
1717

1818
permissions:
1919
contents: write
20+
actions: write
2021

2122
jobs:
2223
check-latest-stable:
@@ -81,6 +82,10 @@ jobs:
8182
filename: ${{ env.APP_NAME }}/appinfo/info.xml
8283
expression: "//info//version/text()"
8384

85+
- name: Set APP_VERSION env
86+
run: |
87+
echo "APP_VERSION=${{ fromJSON(steps.app-version.outputs.result).version }}" >> "$GITHUB_ENV"
88+
8489
- name: Get appinfo data
8590
id: appinfo
8691
uses: skjnldsv/xpath-action@f5b036e9d973f42c86324833fd00be90665fbf77 # v1.0.0
@@ -121,11 +126,6 @@ jobs:
121126
env:
122127
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
123128

124-
- name: Package ${{ env.APP_NAME }} with makefile
125-
run: |
126-
make -C "${{ env.APP_NAME }}" appstore
127-
make -C "${{ env.APP_NAME }}" verify-appstore-package
128-
129129
- name: Check server download link for ${{ fromJSON(steps.appinfo.outputs.result).nextcloud.min-version }}
130130
id: server-url
131131
run: |
@@ -150,27 +150,18 @@ jobs:
150150
repository: nextcloud/server
151151
path: nextcloud
152152

153-
- name: Sign app
153+
- name: Package ${{ env.APP_NAME }} nightly with makefile
154154
run: |
155-
KEY_PATH="${GITHUB_WORKSPACE}/${{ env.APP_NAME }}.key"
156-
CERT_PATH="${GITHUB_WORKSPACE}/${{ env.APP_NAME }}.crt"
157-
APP_PATH="${GITHUB_WORKSPACE}/${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}"
158-
159-
printf '%s' '${{ secrets.APP_PRIVATE_KEY }}' > "${KEY_PATH}"
160-
chmod 600 "${KEY_PATH}"
161-
wget --quiet -O "${CERT_PATH}" "https://github.com/nextcloud/app-certificate-requests/raw/master/${{ env.APP_NAME }}/${{ env.APP_NAME }}.crt"
162-
163-
php nextcloud/occ integrity:sign-app \
164-
--privateKey="${KEY_PATH}" \
165-
--certificate="${CERT_PATH}" \
166-
--path="${APP_PATH}"
167-
168-
tar -C "${{ env.APP_NAME }}/build/artifacts" -zcf "${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}.tar.gz" "${{ env.APP_NAME }}"
155+
cd "${{ env.APP_NAME }}"
156+
mkdir -p build/tools/certificates/
157+
printf '%s' '${{ secrets.APP_PRIVATE_KEY }}' > "build/tools/certificates/${{ env.APP_NAME }}.key"
158+
chmod 600 "build/tools/certificates/${{ env.APP_NAME }}.key"
159+
make appstore verify-appstore-package
169160
170161
- name: Define nightly metadata
171162
id: version
172163
run: |
173-
echo "version=${{ fromJSON(steps.app-version.outputs.result).version }}" >> "$GITHUB_OUTPUT"
164+
echo "version=${APP_VERSION}" >> "$GITHUB_OUTPUT"
174165
echo 'tag=nightly' >> "$GITHUB_OUTPUT"
175166
echo "branch=${GITHUB_REF#refs/heads/}" >> "$GITHUB_OUTPUT"
176167
@@ -228,11 +219,25 @@ jobs:
228219
--prerelease
229220
fi
230221
231-
- name: Upload nightly tarball
222+
- name: Attach tarball to GitHub release
223+
uses: svenstaro/upload-release-action@29e53e917877a24fad85510ded594ab3c9ca12de # v2.11.5
224+
id: attach_to_release
225+
with:
226+
repo_token: ${{ secrets.GITHUB_TOKEN }}
227+
file: ${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}.tar.gz
228+
asset_name: ${{ env.APP_NAME }}-${{ steps.version.outputs.tag }}.tar.gz
229+
tag: ${{ steps.version.outputs.tag }}
230+
overwrite: true
231+
232+
- name: Upload app to Nextcloud appstore (nightly)
232233
env:
233-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
234-
run: |
235-
gh release upload nightly \
236-
'${{ env.APP_NAME }}/build/artifacts/${{ env.APP_NAME }}.tar.gz' \
237-
--repo '${{ github.repository }}' \
238-
--clobber
234+
APPSTORE_TOKEN: ${{ secrets.APPSTORE_TOKEN }}
235+
APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}
236+
if: env.APPSTORE_TOKEN != '' && env.APP_PRIVATE_KEY != ''
237+
uses: nextcloud-releases/nextcloud-appstore-push-action@a011fe619bcf6e77ddebc96f9908e1af4071b9c1 # v1.0.3
238+
with:
239+
app_name: ${{ env.APP_NAME }}
240+
appstore_token: ${{ env.APPSTORE_TOKEN }}
241+
download_url: ${{ steps.attach_to_release.outputs.browser_download_url }}
242+
app_private_key: ${{ env.APP_PRIVATE_KEY }}
243+
nightly: true

0 commit comments

Comments
 (0)