Skip to content

Commit 89badf7

Browse files
committed
We are going to use dynamic identity in this case
1 parent 8628313 commit 89badf7

File tree

1 file changed

+46
-18
lines changed

1 file changed

+46
-18
lines changed

.github/workflows/rust-release.yml

Lines changed: 46 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,11 @@ concurrency:
1919

2020
env:
2121
# Test-only signing values for this branch. Replace with GitHub secrets when ready.
22-
APPLE_CERTIFICATE: |-
23-
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
24-
APPLE_CERTIFICATE_PASSWORD: codex-test-password
22+
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE_P12 }}
23+
APPLE_CERTIFICATE_PASSWORD: $({ secrets.APPLE_CERTIFICATE_PASSWORD })
2524
# SHA-1 fingerprint of the test certificate; codesign accepts this format.
26-
APPLE_CODESIGN_IDENTITY: 4E7E4C6F30634C3C9E308723F109FE7C83C061ED
27-
CODESIGN_DEBUG: true
25+
# APPLE_CODESIGN_IDENTITY: 4E7E4C6F30634C3C9E308723F109FE7C83C061ED
26+
CODESIGN_DEBUG: false
2827

2928
jobs:
3029
tag-check:
@@ -130,11 +129,6 @@ jobs:
130129
exit 1
131130
fi
132131
133-
if [[ -z "${APPLE_CODESIGN_IDENTITY:-}" ]]; then
134-
echo "APPLE_CODESIGN_IDENTITY is required for macOS signing"
135-
exit 1
136-
fi
137-
138132
# TODO: we will be directly using the p12 from github secrets
139133
# We would still write this to a path for easier importing
140134
cert_path="${RUNNER_TEMP}/apple_signing_certificate.p12"
@@ -146,6 +140,17 @@ jobs:
146140
security unlock-keychain -p "$KEYCHAIN_PASSWORD" "$keychain_path"
147141
148142
keychain_args=()
143+
cleanup_keychain() {
144+
if ((${#keychain_args[@]} > 0)); then
145+
security list-keychains -s "${keychain_args[@]}" || true
146+
security default-keychain -s "${keychain_args[0]}" || true
147+
else
148+
security list-keychains -s || true
149+
fi
150+
if [[ -f "$keychain_path" ]]; then
151+
security delete-keychain "$keychain_path" || true
152+
fi
153+
}
149154
150155
while IFS= read -r keychain; do
151156
[[ -n "$keychain" ]] && keychain_args+=("$keychain")
@@ -161,17 +166,39 @@ jobs:
161166
security import "$cert_path" -k "$keychain_path" -P "$APPLE_CERTIFICATE_PASSWORD" -T /usr/bin/codesign -T /usr/bin/security
162167
security set-key-partition-list -S apple-tool:,apple: -s -k "$KEYCHAIN_PASSWORD" "$keychain_path"
163168
169+
mapfile -t codesign_hashes < <(security find-identity -v -p codesigning "$keychain_path" \
170+
| awk 'match($0, /[0-9A-F]{40}/) { print substr($0, RSTART, RLENGTH) }' \
171+
| sort -u)
172+
173+
if ((${#codesign_hashes[@]} == 0)); then
174+
echo "No signing identities found in $keychain_path"
175+
cleanup_keychain
176+
rm -f "$cert_path"
177+
exit 1
178+
fi
179+
180+
if ((${#codesign_hashes[@]} > 1)); then
181+
echo "Multiple signing identities found in $keychain_path:"
182+
printf ' %s\n' "${codesign_hashes[@]}"
183+
cleanup_keychain
184+
rm -f "$cert_path"
185+
exit 1
186+
fi
187+
188+
APPLE_CODESIGN_IDENTITY="${codesign_hashes[0]}"
189+
export APPLE_CODESIGN_IDENTITY
190+
echo "Resolved codesign identity: $APPLE_CODESIGN_IDENTITY"
191+
164192
if [[ "${CODESIGN_DEBUG:-}" == "true" ]]; then
165193
echo "::group::Imported signing identities"
166-
# TODO: we will need to grab the identity from this and then use it in the next step
167-
# TODO: WE DEFINITELY NEED TO GET RID OF THOSE
168194
security find-identity -v -p codesigning "$keychain_path" || true
169195
security find-certificate -a -Z "$keychain_path" || true
170196
echo "::endgroup::"
171197
fi
172198
173199
rm -f "$cert_path"
174200
201+
echo "APPLE_CODESIGN_IDENTITY=$APPLE_CODESIGN_IDENTITY" >> "$GITHUB_ENV"
175202
echo "APPLE_CODESIGN_KEYCHAIN=$keychain_path" >> "$GITHUB_ENV"
176203
177204
- if: ${{ matrix.runner == 'macos-14' }}
@@ -196,12 +223,13 @@ jobs:
196223
197224
for binary in codex codex-responses-api-proxy; do
198225
path="target/${{ matrix.target }}/release/${binary}"
199-
if [[ "${CODESIGN_DEBUG:-}" == "true" ]]; then
200-
echo "Ad-hoc signing $path (test mode)"
201-
codesign --force --sign - "$path"
202-
else
203-
codesign --force --options runtime --timestamp --sign "$APPLE_CODESIGN_IDENTITY" "${keychain_args[@]}" "$path"
204-
fi
226+
# if [[ "${CODESIGN_DEBUG:-}" == "true" ]]; then
227+
# echo "Ad-hoc signing $path (test mode)"
228+
# codesign --force --sign - "$path"
229+
# else
230+
# codesign --force --options runtime --timestamp --sign "$APPLE_CODESIGN_IDENTITY" "${keychain_args[@]}" "$path"
231+
# fi
232+
codesign --force --options runtime --timestamp --sign "$APPLE_CODESIGN_IDENTITY" "${keychain_args[@]}" "$path"
205233
done
206234
207235
- name: Stage artifacts

0 commit comments

Comments
 (0)