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,65 @@ 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 != ''
183198 uses : crazy-max/ghaction-import-gpg@v6
184199 with :
185- gpg_private_key : ${{ secrets.GPG_PRIVATE_KEY }}
186- passphrase : ${{ secrets.PASSPHRASE }}
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 != ''
214+ uses : crazy-max/ghaction-import-gpg@v6
215+ with :
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+ GPG_PARAMETERS=" --yes --armor"
228+ if [ -n "${{ env.FPR_PRIMARY }}" ]; then
229+ GPG_PARAMETERS+=" -u ${{ env.FPR_PRIMARY }}"
230+ fi
231+ if [ -n "${{ env.FPR_SECONDARY }}" ]; then
232+ GPG_PARAMETERS+=" -u ${{ env.FPR_SECONDARY }}"
233+ fi
234+ if [ -n "${{ env.FPR_TERTIARY}}" ]; then
235+ GPG_PARAMETERS+=" -u ${{ env.FPR_TERTIARY}}"
236+ fi
237+ echo "GPG_PARAMETERS=$GPG_PARAMETERS" >> $GITHUB_ENV
238+
239+ - name : Display GPG_PARAMETERS
240+ run : |
241+ echo "<pre>GPG_PARAMETERS: ${{ env.GPG_PARAMETERS }}</pre>" >> $GITHUB_STEP_SUMMARY
187242
188243 - name : Configure git identity
189244 working-directory : repository
245+ env :
246+ GPG_TTY : ${{ env.GPG_TTY || '/dev/tty' }}
190247 run : |
191248
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 github-actions@github.com
249+ #echo "Available GPG keys:" >> $GITHUB_STEP_SUMMARY
250+ #gpg --list-secret-keys --keyid-format LONG >> $GITHUB_STEP_SUMMARY
251+ #cho "data" | gpg --armor --batch --yes --local-user DF00FAF1C577104B50BF1D0093D6889F9F0E78D5 --sign # need password
252+ # echo "data" | gpg --armor --batch --yes --local-user B4A41B81566CC20009232FE45CD410F6B3CBB6BB --sign # need password
253+ #cho "data" | gpg --armor --batch --yes --local-user 8CFA83D13EB2181EEF5843E41EB30FAF236099FE --sign
198254
199255 - name : Deploy packages
200256 run : |
@@ -214,7 +270,6 @@ jobs:
214270 Architectures: amd64 arm64 armhf riscv64
215271 Components: main
216272 Description: Armbian development repo
217- SignWith: DF00FAF1C577104B50BF1D0093D6889F9F0E78D5
218273 EOD
219274
220275 # Determine a list of binary debs to include in the repo
@@ -242,7 +297,24 @@ jobs:
242297 echo "Repository generated at ${REPO_DIR}/"
243298 fi
244299
300+ echo "Sign repo"
301+ GPG_PARAMETERS=(
302+ "--yes"
303+ "--armor"
304+ "-u" "DF00FAF1C577104B50BF1D0093D6889F9F0E78D5" # Igor Pecovnik (Ljubljana, Slovenia) <igor.pecovnik@gmail.com>
305+ "-u" "8CFA83D13EB2181EEF5843E41EB30FAF236099FE" # Armbian Repository Signing Key (Repository Key) <info@armbian.com>
306+ )
307+ for i in ${REPO_DIR}/dists/*/Release
308+ do
309+ DISTRO_PATH="$(dirname "$i")"
310+ echo $DISTRO_PATH
311+ gpg "${{ env.GPG_PARAMETERS }}" --clear-sign -o "$DISTRO_PATH/InRelease" "$i"
312+ gpg "${{ env.GPG_PARAMETERS }}" --detach-sign -o "$DISTRO_PATH/Release.gpg" "$i"
313+ done
314+
245315 cd ${REPO_DIR}
316+ git config user.name "github-actions"
317+ git config user.email "github-actions@github.com"
246318 git add .
247319 git commit -m "Updating repo" || true
248320 git push origin repository || true
0 commit comments