chore: improve CI workflows and README documentation#314
chore: improve CI workflows and README documentation#314ignaciosantise merged 8 commits intomainfrom
Conversation
- Move Firebase App IDs from secrets to variables (not sensitive) - Rename W3W_* secrets to WALLETKIT_* for consistency - Rename W3M_WAGMI_* secrets to APPKIT_* for consistency - Move WC_INTERNAL_KEYSTORE_NAME from secret to variable - Remove base64 encoding for Android google-services.json (plain text) - Keep base64 encoding for iOS GoogleService-Info.plist (XML issues) - Add create-certificates.sh script for fastlane match with branch protection - Update README with: - Improved intro and app listings - Fastlane installation and certificate management docs - Sentry configuration guide - Google Services file encoding instructions - Add .ruby-version file (3.3.0)
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Claude finished @ignaciosantise's task in 1m 48s —— View job Review CompleteFound 3 issue(s)Issue 1: Bash script executes gh API commands without error handling for API failuresID: create-certi-gh-api-errors-a3f1 The script fetches the master branch SHA using Recommendation: Add error handling to validate API responses: MASTER_SHA=$(gh api repos/${CERTS_REPO}/git/ref/heads/master --jq '.object.sha' 2>/dev/null)
if [ -z "$MASTER_SHA" ]; then
echo "Error: Failed to fetch master branch SHA from ${CERTS_REPO}"
exit 1
fiIssue 2: Bash script merges PR automatically without verification of fastlane match successID: create-certi-auto-merge-risk-b8c2 The script automatically merges the PR immediately after creation (lines 56-60) without verifying that the fastlane match command (line 40) actually succeeded in creating valid certificates. If fastlane fails or creates corrupt certificates, the script will still create and auto-merge a PR with broken/incomplete certificate changes. Recommendation: Add explicit success verification after fastlane match and consider requiring manual review: # After line 44, add:
if [ $? -ne 0 ]; then
echo "Error: fastlane match failed"
echo "Branch ${BRANCH_NAME} created but PR not opened. Review and fix manually."
exit 1
fi
# For line 56-60, consider removing auto-merge or adding a flag:
# Option 1: Remove auto-merge entirely (safest)
echo "✅ PR created: Review and merge manually when ready"
# Option 2: Add a flag to control auto-merge
if [ "$AUTO_MERGE" = "true" ]; then
gh pr merge "${BRANCH_NAME}" --repo "${CERTS_REPO}" --merge --delete-branch
fiIssue 3: Inconsistent handling of google-services-file secret across workflow filesID: release-andro-inconsistent-gservices-c9d3 The Android base workflow checks if Recommendation: Add validation for JSON format: - name: Add Google Services file
env:
google-services-file: ${{ secrets.google-services-file }}
if: ${{ env.google-services-file != '' }}
run: |
echo '${{ secrets.google-services-file }}' > ${{ inputs.root-path }}/android/app/google-services.json
# Validate JSON format
if ! jq empty ${{ inputs.root-path }}/android/app/google-services.json 2>/dev/null; then
echo "Error: Invalid JSON in google-services-file secret"
exit 1
fiAutomated Checks✅ No external domain URLs detected (all URLs point to approved domains: reown.com, github.com, sentry.io, fastlane.tools) SummaryThis PR improves CI maintainability by renaming secrets for consistency (W3W_* → WALLETKIT_, W3M_WAGMI_ → APPKIT_*), moving non-sensitive Firebase App IDs from secrets to variables, and adding comprehensive documentation for certificate management and Google Services file handling. Key improvements:
Found 3 non-blocking issues:
All issues are low-to-medium severity and don't block merging. The PR substantially improves CI/CD maintainability. |
There was a problem hiding this comment.
Pull request overview
This PR refactors CI/CD workflows and improves documentation by standardizing secret naming conventions, migrating non-sensitive configuration from secrets to variables, and adding comprehensive guides for certificate management and project setup.
Changes:
- Renamed secrets for consistency (W3W_* → WALLETKIT_, W3M_WAGMI_ → APPKIT_*)
- Moved Firebase App IDs and keystore names from secrets to workflow variables for better transparency
- Added automation script for certificate creation with fastlane match
- Enhanced README with fastlane setup, certificate management, and configuration guides
- Simplified Android google-services file handling to use plain JSON instead of base64
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
scripts/create-certificates.sh |
New automation script for creating certificates via fastlane match with PR workflow |
dapps/poc-pos-app/app.json |
Updated app display name from "WPay" to "WPay PoC" for clarity |
README.md |
Added comprehensive documentation for fastlane, certificate management, and configuration files |
.ruby-version |
Added Ruby 3.3.0 version specification for consistency |
.github/workflows/release-walletkit.yaml |
Updated to use WALLETKIT_* secrets and moved Firebase App IDs to variables |
.github/workflows/release-pos.yaml |
Moved Firebase App ID from secret to variable |
.github/workflows/release-pos-poc.yaml |
Moved Firebase App ID to variable and removed unused testflight-groups parameter |
.github/workflows/release-ios-base.yaml |
Updated comment to clarify base64 encoding for iOS Google Services files |
.github/workflows/release-appkit.yaml |
Updated to use APPKIT_* secrets and moved Firebase App IDs to variables |
.github/workflows/release-android-base.yaml |
Changed Firebase App ID to input parameter and simplified Android Google Services file handling to plain JSON |
.github/workflow-templates/e2e-template.yaml |
Removed unused workflow template |
.github/workflow-templates/e2e-template.properties.json |
Removed unused workflow template metadata |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Consistent approach for both Android and iOS - all google-services files use base64 encoding
- Check if branch already exists before creating - Validate master SHA fetch with error message - Handle fastlane match failures with cleanup - Verify PR creation success - Add --auto-merge flag (default: manual merge required) - Add cleanup function for failed runs - Better error messages throughout
|
@claude review |
|
Claude finished @ignaciosantise's task in 1m 34s —— View job 🔄 Incremental Review
Previously Reported Issues - Status Update✅ Resolved Issues:
ℹ️ Acknowledged by Author:
Found 1 issue(s)Issue 1: AppKit Android workflow missing google-services-file secret configurationID: appkit-missing-gservices-d8f4 AppKit Android workflow does not pass Recommendation: Add the google-services-file secret to AppKit Android job: secrets:
env-file: ${{ secrets.APPKIT_ENV_FILE }}
sentry-file: ${{ secrets.APPKIT_SENTRY_FILE }}
secrets-file: ${{ secrets.ANDROID_SECRETS_FILE }}
gsa-key: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_KEY }}
keystore-name: ${{ inputs.release-type == 'internal' && vars.WC_INTERNAL_KEYSTORE_NAME || vars.WC_PROD_KEYSTORE_NAME }}
keystore: ${{ inputs.release-type == 'internal' && secrets.WC_INTERNAL_KEYSTORE || secrets.WC_PROD_KEYSTORE }}
google-services-file: ${{ secrets.APPKIT_ANDROID_GOOGLE_SERVICES_BASE64 }}
aws-account-id: ${{ secrets.AWS_ACCOUNT_ID }}
slack-webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }}Automated Checks✅ No external domain URLs detected (all URLs: reown.com, fastlane.tools, github.com, sentry.io, discord.com) SummaryIncremental review confirms previous critical issues in One new configuration issue identified: AppKit Android workflow missing google-services-file secret that WalletKit has. Non-blocking but should be addressed for Firebase feature parity. |
Shows platform (🍎 iOS / 🤖 Android) and release type in the Actions list
Summary
This PR improves CI workflows and documentation for better maintainability.
Workflow Changes
W3W_*→WALLETKIT_*W3M_WAGMI_*→APPKIT_*WC_INTERNAL_KEYSTORE_NAMEfrom secret to variableNew Script
scripts/create-certificates.sh- Automates fastlane match with branch protection (creates branch, runs match, creates PR, merges)README Updates
Action Required
After merging, update GitHub secrets/variables:
Secrets to DELETE
W3W_SENTRY_FILEW3W_ANDROID_INTERNAL_FIREBASE_APP_IDW3W_ANDROID_PROD_FIREBASE_APP_IDW3W_IOS_INTERNAL_GOOGLE_SERVICES_FILEW3W_IOS_PROD_GOOGLE_SERVICES_FILEW3M_WAGMI_SENTRY_FILEW3M_WAGMI_ANDROID_INTERNAL_FIREBASE_APP_IDWC_INTERNAL_KEYSTORE_NAMEPOS_ANDROID_FIREBASE_APP_IDPOC_POS_ANDROID_FIREBASE_APP_IDAPPKIT_ANDROID_PROD_FIREBASE_APP_IDSecrets to CREATE
WALLETKIT_SENTRY_FILEWALLETKIT_IOS_INTERNAL_GOOGLE_SERVICES_FILEWALLETKIT_IOS_PROD_GOOGLE_SERVICES_FILEAPPKIT_SENTRY_FILEVariables to CREATE
WC_INTERNAL_KEYSTORE_NAMEWALLETKIT_ANDROID_INTERNAL_FIREBASE_APP_IDWALLETKIT_ANDROID_PROD_FIREBASE_APP_IDAPPKIT_ANDROID_INTERNAL_FIREBASE_APP_IDAPPKIT_ANDROID_PROD_FIREBASE_APP_IDPOS_ANDROID_FIREBASE_APP_IDPOC_POS_ANDROID_FIREBASE_APP_IDTests