Skip to content

Commit de6ba32

Browse files
authored
ci(artifacts): upload build artifacts with in-tree script (#2158)
* install `paramiko` in CI container Signed-off-by: onur-ozkan <[email protected]> * create artifact uploader python script Signed-off-by: onur-ozkan <[email protected]> * use in-tree script for uploading artifacts Signed-off-by: onur-ozkan <[email protected]> * extend deps-install composite pipeline Signed-off-by: onur-ozkan <[email protected]> * apply review notes Signed-off-by: onur-ozkan <[email protected]> * apply review note Signed-off-by: onur-ozkan <[email protected]> --------- Signed-off-by: onur-ozkan <[email protected]>
1 parent 8e312a1 commit de6ba32

File tree

5 files changed

+203
-169
lines changed

5 files changed

+203
-169
lines changed

.docker/Dockerfile.ci-container

+6-1
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,14 @@ RUN apt-get install -y \
1414
gnupg \
1515
git \
1616
zip \
17+
python3 \
18+
python3-pip \
19+
python-dev \
20+
libffi-dev \
1721
sudo
1822

19-
RUN ln -s /usr/bin/python3 /bin/python
23+
RUN pip3 install --upgrade pip
24+
RUN pip3 install paramiko
2025

2126
RUN apt install -y \
2227
software-properties-common \

.github/actions/deps-install/action.yml

+11
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,14 @@ runs:
4848
run: |
4949
sudo apt-get update -y
5050
sudo apt-get install -y libudev-dev
51+
52+
- name: Install python3
53+
uses: actions/setup-python@v5
54+
if: contains(inputs.deps, 'python3')
55+
with:
56+
python-version: 3
57+
58+
- name: Install `paramiko` pip package
59+
if: contains(inputs.deps, 'paramiko')
60+
shell: bash
61+
run: pip install paramiko

.github/workflows/dev-build.yml

+60-92
Original file line numberDiff line numberDiff line change
@@ -74,18 +74,14 @@ jobs:
7474
zip $NAME target/release/kdf -j
7575
mv $NAME ./$BRANCH_NAME/
7676
77-
- name: Upload output
77+
- name: Upload build artifact
7878
env:
79-
AVAILABLE: ${{ secrets.FILE_SERVER_KEY }}
80-
if: ${{ env.AVAILABLE != '' }}
81-
uses: easingthemes/[email protected]
82-
with:
83-
REMOTE_HOST: ${{ secrets.FILE_SERVER_HOST }}
84-
REMOTE_USER: ${{ secrets.FILE_SERVER_USERNAME }}
85-
REMOTE_PORT: ${{ secrets.FILE_SERVER_PORT }}
86-
SSH_PRIVATE_KEY: ${{ secrets.FILE_SERVER_KEY }}
87-
SOURCE: "${{ env.BRANCH_NAME }}/"
88-
TARGET: "/uploads/${{ env.BRANCH_NAME }}"
79+
FILE_SERVER_HOST: ${{ secrets.FILE_SERVER_HOST }}
80+
FILE_SERVER_USERNAME: ${{ secrets.FILE_SERVER_USERNAME }}
81+
FILE_SERVER_PORT: ${{ secrets.FILE_SERVER_PORT }}
82+
FILE_SERVER_KEY: ${{ secrets.FILE_SERVER_KEY }}
83+
if: ${{ env.FILE_SERVER_KEY != '' }}
84+
run: python3 ./scripts/ci/upload_artifact.py "${{ env.BRANCH_NAME }}" "/uploads/${{ env.BRANCH_NAME }}"
8985

9086
- name: Login to dockerhub
9187
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/dev'
@@ -113,7 +109,7 @@ jobs:
113109
- name: Install build deps
114110
uses: ./.github/actions/deps-install
115111
with:
116-
deps: ('protoc')
112+
deps: ('protoc', 'python3', 'paramiko')
117113

118114
- name: Calculate commit hash for PR commit
119115
if: github.event_name == 'pull_request'
@@ -151,18 +147,14 @@ jobs:
151147
zip $NAME target/x86_64-apple-darwin/release/kdf -j
152148
mv $NAME ./$BRANCH_NAME/
153149
154-
- name: Upload output
150+
- name: Upload build artifact
155151
env:
156-
AVAILABLE: ${{ secrets.FILE_SERVER_KEY }}
157-
if: ${{ env.AVAILABLE != '' }}
158-
uses: easingthemes/[email protected]
159-
with:
160-
REMOTE_HOST: ${{ secrets.FILE_SERVER_HOST }}
161-
REMOTE_USER: ${{ secrets.FILE_SERVER_USERNAME }}
162-
REMOTE_PORT: ${{ secrets.FILE_SERVER_PORT }}
163-
SSH_PRIVATE_KEY: ${{ secrets.FILE_SERVER_KEY }}
164-
SOURCE: "${{ env.BRANCH_NAME }}/"
165-
TARGET: "/uploads/${{ env.BRANCH_NAME }}"
152+
FILE_SERVER_HOST: ${{ secrets.FILE_SERVER_HOST }}
153+
FILE_SERVER_USERNAME: ${{ secrets.FILE_SERVER_USERNAME }}
154+
FILE_SERVER_PORT: ${{ secrets.FILE_SERVER_PORT }}
155+
FILE_SERVER_KEY: ${{ secrets.FILE_SERVER_KEY }}
156+
if: ${{ env.FILE_SERVER_KEY != '' }}
157+
run: python3 ./scripts/ci/upload_artifact.py "${{ env.BRANCH_NAME }}" "/uploads/${{ env.BRANCH_NAME }}"
166158

167159
win-x86-64:
168160
timeout-minutes: 60
@@ -177,7 +169,7 @@ jobs:
177169
- name: Install build deps
178170
uses: ./.github/actions/deps-install
179171
with:
180-
deps: ('protoc')
172+
deps: ('protoc', 'python3', 'paramiko')
181173

182174
- name: Calculate commit hash for PR commit
183175
if: github.event_name == 'pull_request'
@@ -217,18 +209,14 @@ jobs:
217209
7z a $NAME .\target\release\kdf.exe .\target\release\*.dll
218210
mv $NAME ./$Env:BRANCH_NAME/
219211
220-
- name: Upload output
212+
- name: Upload build artifact
221213
env:
222-
AVAILABLE: ${{ secrets.FILE_SERVER_KEY }}
223-
if: ${{ env.AVAILABLE != '' }}
224-
uses: garygrossgarten/[email protected]
225-
with:
226-
host: ${{ secrets.FILE_SERVER_HOST }}
227-
username: ${{ secrets.FILE_SERVER_USERNAME }}
228-
port: ${{ secrets.FILE_SERVER_PORT }}
229-
privateKey: ${{ secrets.FILE_SERVER_KEY }}
230-
local: ${{ env.BRANCH_NAME }}
231-
remote: "/uploads/${{ env.BRANCH_NAME }}"
214+
FILE_SERVER_HOST: ${{ secrets.FILE_SERVER_HOST }}
215+
FILE_SERVER_USERNAME: ${{ secrets.FILE_SERVER_USERNAME }}
216+
FILE_SERVER_PORT: ${{ secrets.FILE_SERVER_PORT }}
217+
FILE_SERVER_KEY: ${{ secrets.FILE_SERVER_KEY }}
218+
if: ${{ env.FILE_SERVER_KEY != '' }}
219+
run: python3 ./scripts/ci/upload_artifact.py "${{ env.BRANCH_NAME }}" "/uploads/${{ env.BRANCH_NAME }}"
232220

233221
mac-dylib-x86-64:
234222
timeout-minutes: 60
@@ -244,7 +232,7 @@ jobs:
244232
- name: Install build deps
245233
uses: ./.github/actions/deps-install
246234
with:
247-
deps: ('protoc')
235+
deps: ('protoc', 'python3', 'paramiko')
248236

249237
- name: Calculate commit hash for PR commit
250238
if: github.event_name == 'pull_request'
@@ -284,18 +272,14 @@ jobs:
284272
zip $NAME target/x86_64-apple-darwin/release/libkdf.a -j
285273
mv $NAME ./$BRANCH_NAME/
286274
287-
- name: Upload output
275+
- name: Upload build artifact
288276
env:
289-
AVAILABLE: ${{ secrets.FILE_SERVER_KEY }}
290-
if: ${{ env.AVAILABLE != '' }}
291-
uses: easingthemes/[email protected]
292-
with:
293-
REMOTE_HOST: ${{ secrets.FILE_SERVER_HOST }}
294-
REMOTE_USER: ${{ secrets.FILE_SERVER_USERNAME }}
295-
REMOTE_PORT: ${{ secrets.FILE_SERVER_PORT }}
296-
SSH_PRIVATE_KEY: ${{ secrets.FILE_SERVER_KEY }}
297-
SOURCE: "${{ env.BRANCH_NAME }}/"
298-
TARGET: "/uploads/${{ env.BRANCH_NAME }}"
277+
FILE_SERVER_HOST: ${{ secrets.FILE_SERVER_HOST }}
278+
FILE_SERVER_USERNAME: ${{ secrets.FILE_SERVER_USERNAME }}
279+
FILE_SERVER_PORT: ${{ secrets.FILE_SERVER_PORT }}
280+
FILE_SERVER_KEY: ${{ secrets.FILE_SERVER_KEY }}
281+
if: ${{ env.FILE_SERVER_KEY != '' }}
282+
run: python3 ./scripts/ci/upload_artifact.py "${{ env.BRANCH_NAME }}" "/uploads/${{ env.BRANCH_NAME }}"
299283

300284
wasm:
301285
timeout-minutes: 60
@@ -352,18 +336,14 @@ jobs:
352336
mkdir $BRANCH_NAME
353337
mv $NAME ./$BRANCH_NAME/
354338
355-
- name: Upload output
339+
- name: Upload build artifact
356340
env:
357-
AVAILABLE: ${{ secrets.FILE_SERVER_KEY }}
358-
if: ${{ env.AVAILABLE != '' }}
359-
uses: easingthemes/[email protected]
360-
with:
361-
REMOTE_HOST: ${{ secrets.FILE_SERVER_HOST }}
362-
REMOTE_USER: ${{ secrets.FILE_SERVER_USERNAME }}
363-
REMOTE_PORT: ${{ secrets.FILE_SERVER_PORT }}
364-
SSH_PRIVATE_KEY: ${{ secrets.FILE_SERVER_KEY }}
365-
SOURCE: "${{ env.BRANCH_NAME }}/"
366-
TARGET: "/uploads/${{ env.BRANCH_NAME }}"
341+
FILE_SERVER_HOST: ${{ secrets.FILE_SERVER_HOST }}
342+
FILE_SERVER_USERNAME: ${{ secrets.FILE_SERVER_USERNAME }}
343+
FILE_SERVER_PORT: ${{ secrets.FILE_SERVER_PORT }}
344+
FILE_SERVER_KEY: ${{ secrets.FILE_SERVER_KEY }}
345+
if: ${{ env.FILE_SERVER_KEY != '' }}
346+
run: python3 ./scripts/ci/upload_artifact.py "${{ env.BRANCH_NAME }}" "/uploads/${{ env.BRANCH_NAME }}"
367347

368348
ios-aarch64:
369349
timeout-minutes: 60
@@ -379,7 +359,7 @@ jobs:
379359
- name: Install build deps
380360
uses: ./.github/actions/deps-install
381361
with:
382-
deps: ('protoc')
362+
deps: ('protoc', 'python3', 'paramiko')
383363

384364
- name: Calculate commit hash for PR commit
385365
if: github.event_name == 'pull_request'
@@ -419,18 +399,14 @@ jobs:
419399
zip $NAME target/aarch64-apple-ios/release/libkdf.a -j
420400
mv $NAME ./$BRANCH_NAME/
421401
422-
- name: Upload output
402+
- name: Upload build artifact
423403
env:
424-
AVAILABLE: ${{ secrets.FILE_SERVER_KEY }}
425-
if: ${{ env.AVAILABLE != '' }}
426-
uses: easingthemes/[email protected]
427-
with:
428-
REMOTE_HOST: ${{ secrets.FILE_SERVER_HOST }}
429-
REMOTE_USER: ${{ secrets.FILE_SERVER_USERNAME }}
430-
REMOTE_PORT: ${{ secrets.FILE_SERVER_PORT }}
431-
SSH_PRIVATE_KEY: ${{ secrets.FILE_SERVER_KEY }}
432-
SOURCE: "${{ env.BRANCH_NAME }}/"
433-
TARGET: "/uploads/${{ env.BRANCH_NAME }}"
404+
FILE_SERVER_HOST: ${{ secrets.FILE_SERVER_HOST }}
405+
FILE_SERVER_USERNAME: ${{ secrets.FILE_SERVER_USERNAME }}
406+
FILE_SERVER_PORT: ${{ secrets.FILE_SERVER_PORT }}
407+
FILE_SERVER_KEY: ${{ secrets.FILE_SERVER_KEY }}
408+
if: ${{ env.FILE_SERVER_KEY != '' }}
409+
run: python3 ./scripts/ci/upload_artifact.py "${{ env.BRANCH_NAME }}" "/uploads/${{ env.BRANCH_NAME }}"
434410

435411
android-aarch64:
436412
timeout-minutes: 60
@@ -500,18 +476,14 @@ jobs:
500476
zip $NAME target/aarch64-linux-android/release/libkdf.a -j
501477
mv $NAME ./$BRANCH_NAME/
502478
503-
- name: Upload output
479+
- name: Upload build artifact
504480
env:
505-
AVAILABLE: ${{ secrets.FILE_SERVER_KEY }}
506-
if: ${{ env.AVAILABLE != '' }}
507-
uses: easingthemes/[email protected]
508-
with:
509-
REMOTE_HOST: ${{ secrets.FILE_SERVER_HOST }}
510-
REMOTE_USER: ${{ secrets.FILE_SERVER_USERNAME }}
511-
REMOTE_PORT: ${{ secrets.FILE_SERVER_PORT }}
512-
SSH_PRIVATE_KEY: ${{ secrets.FILE_SERVER_KEY }}
513-
SOURCE: "${{ env.BRANCH_NAME }}/"
514-
TARGET: "/uploads/${{ env.BRANCH_NAME }}"
481+
FILE_SERVER_HOST: ${{ secrets.FILE_SERVER_HOST }}
482+
FILE_SERVER_USERNAME: ${{ secrets.FILE_SERVER_USERNAME }}
483+
FILE_SERVER_PORT: ${{ secrets.FILE_SERVER_PORT }}
484+
FILE_SERVER_KEY: ${{ secrets.FILE_SERVER_KEY }}
485+
if: ${{ env.FILE_SERVER_KEY != '' }}
486+
run: python3 ./scripts/ci/upload_artifact.py "${{ env.BRANCH_NAME }}" "/uploads/${{ env.BRANCH_NAME }}"
515487

516488
android-armv7:
517489
timeout-minutes: 60
@@ -581,18 +553,14 @@ jobs:
581553
zip $NAME target/armv7-linux-androideabi/release/libkdf.a -j
582554
mv $NAME ./$BRANCH_NAME/
583555
584-
- name: Upload output
556+
- name: Upload build artifact
585557
env:
586-
AVAILABLE: ${{ secrets.FILE_SERVER_KEY }}
587-
if: ${{ env.AVAILABLE != '' }}
588-
uses: easingthemes/[email protected]
589-
with:
590-
REMOTE_HOST: ${{ secrets.FILE_SERVER_HOST }}
591-
REMOTE_USER: ${{ secrets.FILE_SERVER_USERNAME }}
592-
REMOTE_PORT: ${{ secrets.FILE_SERVER_PORT }}
593-
SSH_PRIVATE_KEY: ${{ secrets.FILE_SERVER_KEY }}
594-
SOURCE: "${{ env.BRANCH_NAME }}/"
595-
TARGET: "/uploads/${{ env.BRANCH_NAME }}"
558+
FILE_SERVER_HOST: ${{ secrets.FILE_SERVER_HOST }}
559+
FILE_SERVER_USERNAME: ${{ secrets.FILE_SERVER_USERNAME }}
560+
FILE_SERVER_PORT: ${{ secrets.FILE_SERVER_PORT }}
561+
FILE_SERVER_KEY: ${{ secrets.FILE_SERVER_KEY }}
562+
if: ${{ env.FILE_SERVER_KEY != '' }}
563+
run: python3 ./scripts/ci/upload_artifact.py "${{ env.BRANCH_NAME }}" "/uploads/${{ env.BRANCH_NAME }}"
596564

597565
deployment-commitment:
598566
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/dev'

0 commit comments

Comments
 (0)