Skip to content

Commit f97aba7

Browse files
committed
perf: change build action
1 parent 5d1cb7a commit f97aba7

1 file changed

Lines changed: 34 additions & 17 deletions

File tree

.github/workflows/build.yml

Lines changed: 34 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# build.yml
22

3-
name: Auto Build
3+
name: Build and Release Client
44

55
on:
66
workflow_dispatch:
@@ -139,60 +139,79 @@ jobs:
139139
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
140140
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
141141
run: |
142-
echo $APPLE_CERTIFICATE | base64 --decode > certificate.p12
142+
# Mask sensitive values in logs
143+
echo "::add-mask::$KEYCHAIN_PASSWORD"
144+
echo "::add-mask::$APPLE_CERTIFICATE_PASSWORD"
145+
146+
# Decode certificate without echoing it
147+
echo "$APPLE_CERTIFICATE" | base64 --decode > certificate.p12
143148
security create-keychain -p "$KEYCHAIN_PASSWORD" build.keychain
144149
security default-keychain -s build.keychain
145150
security unlock-keychain -p "$KEYCHAIN_PASSWORD" build.keychain
146151
security set-keychain-settings -t 3600 -u build.keychain
147152
security import certificate.p12 -k build.keychain -P "$APPLE_CERTIFICATE_PASSWORD" -T /usr/bin/codesign
148153
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$KEYCHAIN_PASSWORD" build.keychain
149-
security find-identity -v -p codesigning build.keychain
154+
155+
# Clean up certificate file
156+
rm -f certificate.p12
157+
158+
# List identities (only show count, not full details)
159+
IDENTITY_COUNT=$(security find-identity -v -p codesigning build.keychain | grep -c "valid identities found" || echo "0")
160+
echo "Found $IDENTITY_COUNT valid code signing identity/identities"
150161
151162
- name: Verify Certificate
152163
if: matrix.platform == 'macos-latest'
153164
run: |
154-
# List all code signing identities
155-
security find-identity -v -p codesigning build.keychain
156-
157165
# Try to find valid code signing certificate (Developer ID, Apple Distribution, or Apple Development)
158166
# Priority: Developer ID Application > Apple Distribution > Apple Development
159-
CERT_INFO=$(security find-identity -v -p codesigning build.keychain | grep -E "Developer ID Application|Apple Distribution|Apple Development" | head -n 1)
167+
CERT_INFO=$(security find-identity -v -p codesigning build.keychain 2>/dev/null | grep -E "Developer ID Application|Apple Distribution|Apple Development" | head -n 1)
160168
161169
if [ -z "$CERT_INFO" ]; then
162170
echo "Error: No valid Apple certificate found in keychain"
163-
echo "Available certificates:"
164-
security find-identity -v -p codesigning build.keychain
171+
# Only show certificate count, not full details
172+
CERT_COUNT=$(security find-identity -v -p codesigning build.keychain 2>/dev/null | grep -c "valid identities found" || echo "0")
173+
echo "Found $CERT_COUNT certificate(s) in keychain"
165174
exit 1
166175
fi
167176
168177
CERT_ID=$(echo "$CERT_INFO" | awk '{print $2}')
169178
170179
if [ -z "$CERT_ID" ]; then
171-
echo "Error: Failed to extract certificate ID from: $CERT_INFO"
180+
echo "Error: Failed to extract certificate ID"
172181
exit 1
173182
fi
174183
184+
# Mask certificate ID in logs
185+
echo "::add-mask::$CERT_ID"
186+
175187
# Extract Team ID from certificate name (format: "Developer ID Application: Name (TEAM_ID)")
176188
# Use sed to extract content between parentheses
177189
TEAM_ID=$(echo "$CERT_INFO" | sed -n 's/.*(\([A-Z0-9]*\)).*/\1/p' | head -n 1)
178190
179191
if [ -z "$TEAM_ID" ]; then
180192
echo "Warning: Failed to extract Team ID from certificate name, trying alternative method"
181-
# Alternative: try to get from certificate directly using openssl
193+
# Alternative: try to get from certificate directly using openssl (without outputting full subject)
182194
CERT_SUBJECT=$(security find-certificate -c "$CERT_ID" -p build.keychain 2>/dev/null | openssl x509 -noout -subject 2>/dev/null || echo "")
183195
if [ -n "$CERT_SUBJECT" ]; then
184196
TEAM_ID=$(echo "$CERT_SUBJECT" | sed -n 's/.*OU=\([^/]*\).*/\1/p' | head -n 1)
185197
fi
186198
fi
187199
200+
# Mask Team ID in logs
201+
if [ -n "$TEAM_ID" ]; then
202+
echo "::add-mask::$TEAM_ID"
203+
fi
204+
205+
# Set environment variables
188206
echo "CERT_ID=$CERT_ID" >> $GITHUB_ENV
189207
if [ -n "$TEAM_ID" ]; then
190208
echo "APPLE_TEAM_ID=$TEAM_ID" >> $GITHUB_ENV
191-
echo "Team ID: $TEAM_ID"
192209
fi
193-
echo "Certificate ID: $CERT_ID"
194-
echo "Certificate info: $CERT_INFO"
195-
echo "Certificate imported and verified."
210+
211+
# Show sanitized info (only certificate type, not full details)
212+
CERT_TYPE=$(echo "$CERT_INFO" | sed -n 's/.*"\(Developer ID Application\|Apple Distribution\|Apple Development\).*/\1/p')
213+
echo "✓ Certificate verified: $CERT_TYPE"
214+
echo "✓ Certificate imported and verified successfully."
196215
197216
- name: Install Go client for current platform
198217
run: make install
@@ -221,8 +240,6 @@ jobs:
221240
sudo apt-get update
222241
sudo apt-get install -y libwebkit2gtk-4.1-dev libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev patchelf
223242
224-
225-
226243
- name: Install frontend dependencies
227244
run: pnpm install
228245

0 commit comments

Comments
 (0)