3636 type : string
3737
3838 secrets :
39- GPG_PRIVATE_KEY :
40- required : true
41- PASSPHRASE :
42- required : true
43- SSH_KEY_TORRENTS :
39+ PRIMARY_KEY :
40+ required : false
41+ PRIMARY_PASS :
42+ required : false
43+ SECONDARY_KEY :
44+ required : false
45+ SECONDARY_PASS :
46+ required : false
47+ TERTIARY_KEY :
4448 required : false
45- KNOWN_HOSTS_UPLOAD :
49+ TERTIARY_PASS :
4650 required : false
4751
52+ env :
53+ PRIMARY_KEY : ${{ secrets.PRIMARY_KEY }}
54+ PRIMARY_PASS : ${{ secrets.PRIMARY_PASS }}
55+ SECONDARY_KEY : ${{ secrets.SECONDARY_KEY }}
56+ SECONDARY_PASS : ${{ secrets.SECONDARY_PASS }}
57+ TERTIARY_KEY : ${{ secrets.TERTIARY_KEY }}
58+ TERTIARY_PASS : ${{ secrets.TERTIARY_PASS }}
59+
4860jobs :
4961
5062 prepare :
63+ name : Prepare releases
64+ if : ${{ github.repository_owner == 'Armbian' }}
5165 runs-on : ubuntu-latest
5266 outputs :
5367 matrix : ${{ steps.prep.outputs.matrix }}
@@ -178,23 +192,69 @@ jobs:
178192 path : repository
179193 ref : repository
180194
181- - name : Import GPG key
182- id : import_gpg
195+ - name : Import PRIMARY GPG key
196+ id : import_gpg_primary
197+ if : env.PRIMARY_KEY != ''
198+ uses : crazy-max/ghaction-import-gpg@v6
199+ with :
200+ gpg_private_key : ${{ secrets.PRIMARY_KEY }}
201+ passphrase : ${{ secrets.PRIMARY_PASS || '' }}
202+
203+ - name : Import SECONDARY GPG key
204+ id : import_gpg_secondary
205+ if : env.SECONDARY_KEY != ''
206+ uses : crazy-max/ghaction-import-gpg@v6
207+ with :
208+ gpg_private_key : ${{ secrets.SECONDARY_KEY }}
209+ passphrase : ${{ secrets.SECONDARY_PASS || '' }}
210+
211+ - name : Import TERTIARY GPG key
212+ id : import_gpg_tertiary
213+ if : env.TERTIARY_KEY != ''
183214 uses : crazy-max/ghaction-import-gpg@v6
184215 with :
185- gpg_private_key : ${{ secrets.GPG_PRIVATE_KEY }}
186- passphrase : ${{ secrets.PASSPHRASE }}
216+ gpg_private_key : ${{ secrets.TERTIARY_KEY }}
217+ passphrase : ${{ secrets.TERTIARY_PASS || '' }}
218+
219+ - name : Generate GPG_PARAMETERS array
220+ id : build_gpg_parameters
221+ env :
222+ FPR_PRIMARY : ${{ steps.import_gpg_primary.outputs.fingerprint }}
223+ FPR_SECONDARY : ${{ steps.import_gpg_secondary.outputs.fingerprint }}
224+ FPR_TERTIARY : ${{ steps.import_gpg_tertiary.outputs.fingerprint }}
225+ run : |
226+
227+ echo "${{ env.FPR_PRIMARY }} ${{ env.FPR_SECONDARY }} ${{ env.FPR_TERTIARY}}"
228+
229+ echo "GPG_PARAMETERS=(--yes --armor)" >> $GITHUB_ENV
230+
231+ if [ -n "$FPR_PRIMARY" ]; then
232+ echo "GPG_PARAMETERS+=( -u $FPR_PRIMARY )" >> $GITHUB_ENV
233+ fi
234+
235+ if [ -n "$FPR_SECONDARY" ]; then
236+ echo "GPG_PARAMETERS+=( -u $FPR_SECONDARY )" >> $GITHUB_ENV
237+ fi
238+
239+ if [ -n "$FPR_TERTIARY" ]; then
240+ echo "GPG_PARAMETERS+=( -u $FPR_TERTIARY )" >> $GITHUB_ENV
241+ fi
242+
243+ - name : Display GPG_PARAMETERS
244+ run : |
245+ echo "<pre>GPG_PARAMETERS: $GPG_PARAMETERS</pre>" >> $GITHUB_STEP_SUMMARY
187246
188247 - name : Configure git identity
189248 working-directory : repository
249+ env :
250+ GPG_TTY : ${{ env.GPG_TTY || '/dev/tty' }}
190251 run : |
191252
192- echo "Testing signing" | gpg --sign --armor
193-
194- gpg -K
195- echo "#"
196- git config user.name github-actions
197- git config user.email [email protected] 253+ #echo "Available GPG keys:" >> $GITHUB_STEP_SUMMARY
254+ #gpg --list-secret-keys --keyid-format LONG >> $GITHUB_STEP_SUMMARY
255+ #cho "data" | gpg --armor --batch --yes --local-user DF00FAF1C577104B50BF1D0093D6889F9F0E78D5 --sign # need password
256+ # echo "data" | gpg --armor --batch --yes --local-user B4A41B81566CC20009232FE45CD410F6B3CBB6BB --sign # need password
257+ #cho "data" | gpg --armor --batch --yes --local-user 8CFA83D13EB2181EEF5843E41EB30FAF236099FE --sign
198258
199259 - name : Deploy packages
200260 run : |
@@ -214,7 +274,6 @@ jobs:
214274 Architectures: amd64 arm64 armhf riscv64
215275 Components: main
216276 Description: Armbian development repo
217- SignWith: DF00FAF1C577104B50BF1D0093D6889F9F0E78D5
218277 EOD
219278
220279 # Determine a list of binary debs to include in the repo
@@ -242,7 +301,24 @@ jobs:
242301 echo "Repository generated at ${REPO_DIR}/"
243302 fi
244303
304+ echo "Sign repo"
305+ GPG_PARAMETERS=(
306+ "--yes"
307+ "--armor"
308+ "-u" "DF00FAF1C577104B50BF1D0093D6889F9F0E78D5" # Igor Pecovnik (Ljubljana, Slovenia) <[email protected] > 309+ "-u" "8CFA83D13EB2181EEF5843E41EB30FAF236099FE" # Armbian Repository Signing Key (Repository Key) <[email protected] > 310+ )
311+ for i in ${REPO_DIR}/dists/*/Release
312+ do
313+ DISTRO_PATH="$(dirname "$i")"
314+ echo $DISTRO_PATH
315+ gpg "${GPG_PARAMETERS[@]}" --clear-sign -o "$DISTRO_PATH/InRelease" "$i"
316+ gpg "${GPG_PARAMETERS[@]}" --detach-sign -o "$DISTRO_PATH/Release.gpg" "$i"
317+ done
318+
245319 cd ${REPO_DIR}
320+ git config user.name "github-actions"
321+ git config user.email "[email protected] " 246322 git add .
247323 git commit -m "Updating repo" || true
248324 git push origin repository || true
0 commit comments