File tree Expand file tree Collapse file tree 1 file changed +26
-3
lines changed Expand file tree Collapse file tree 1 file changed +26
-3
lines changed Original file line number Diff line number Diff line change @@ -18,16 +18,34 @@ inputs:
1818 required : true
1919 program-keypair :
2020 description : " Program address keypair for initial deployment"
21- required : true
21+ required : false
2222
2323runs :
2424 using : " composite"
2525 steps :
26- - name : Write keypairs
26+ - name : Write keypairs and optionally verify program-id keypair
2727 shell : bash
2828 run : |
2929 echo "$DEPLOY_KEYPAIR" > ./deploy-keypair.json && chmod 600 ./deploy-keypair.json
30- echo "$PROGRAM_KEYPAIR" > ./program-keypair.json && chmod 600 ./program-keypair.json
30+
31+ if [ -z "$PROGRAM_KEYPAIR" ]; then
32+ echo "ℹ️ No program-keypair provided — skipping program-id verification."
33+ else
34+ echo "$PROGRAM_KEYPAIR" > ./program-keypair.json && chmod 600 ./program-keypair.json
35+
36+ echo "🔍 Verifying program-keypair matches inputs.program-id..."
37+ PROGRAM_PUBKEY=$(solana-keygen pubkey ./program-keypair.json)
38+
39+ echo "Expected: '${{ inputs.program-id }}'"
40+ echo "Actual: '$PROGRAM_PUBKEY'"
41+
42+ if [ "$PROGRAM_PUBKEY" != "${{ inputs.program-id }}" ]; then
43+ echo "❌ Error: 'program-id' does not match public key of 'program-keypair'"
44+ exit 1
45+ fi
46+
47+ echo "✅ Verified: program-id matches program-keypair."
48+ fi
3149 env :
3250 DEPLOY_KEYPAIR : ${{ inputs.keypair }}
3351 PROGRAM_KEYPAIR : ${{ inputs.program-keypair }}
4058 echo "exists=true" >> $GITHUB_OUTPUT
4159 else
4260 echo "exists=false" >> $GITHUB_OUTPUT
61+
62+ if [ -z "${{ inputs.program-keypair }}" ]; then
63+ echo "❌ Error: program-keypair input is required for initial deployment (program does not exist yet)."
64+ exit 1
65+ fi
4366 fi
4467
4568 - name : Deploy new program
You can’t perform that action at this time.
0 commit comments