[Issue-1826] Implement Manage Account #616
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Internal builds | |
on: | |
pull_request: | |
branches: [ "koni-dev", "upgrade-ui" ] | |
jobs: | |
# iOS build workflow ------------------------------------------------- | |
build-ios: | |
name: iOS builds | |
runs-on: macos-13 | |
env: | |
GH_PAT: ${{ secrets.GH_PAT }} | |
GH_RELEASE_GITHUB_API_TOKEN: ${{ secrets.GH_PAT }} | |
KS_PASSWORD: ${{ secrets.KS_PASSWORD }} | |
NEXTCLOUD_CONFIG: ${{ secrets.NEXTCLOUD_CONFIG }} | |
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} | |
COMMIT_MESSAGE: ${{ github.event.pull_request.title }} | |
REF_NAME: ${{ github.ref_name }} | |
TRANSAK_API_KEY: ${{ secrets.TRANSAK_API_KEY }} | |
COINBASE_PAY_ID: ${{ secrets.COINBASE_PAY_ID }} | |
IOS_CODEPUSH_KEY: ${{ secrets.IOS_CODEPUSH_STAGING_KEY }}DISABLED | |
ANDROID_CODEPUSH_KEY: ${{ secrets.ANDROID_CODEPUSH_STAGING_KEY }}DISABLED | |
BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
token: ${{ secrets.GH_PAT }} | |
- name: Add APP ENV | |
run: | | |
cp .env.development.example .env.production | |
if [ -f .env.production ]; then | |
sed -i '' "s/^TRANSAK_API_KEY=.*/TRANSAK_API_KEY=$TRANSAK_API_KEY/" .env.production | |
sed -i '' "s/^COINBASE_PAY_ID=.*/COINBASE_PAY_ID=$COINBASE_PAY_ID/" .env.production | |
sed -i '' "s/^IOS_CODEPUSH_KEY=.*/IOS_CODEPUSH_KEY=$IOS_CODEPUSH_KEY/" .env.production | |
sed -i '' "s/^ANDROID_CODEPUSH_KEY=.*/ANDROID_CODEPUSH_KEY=$ANDROID_CODEPUSH_KEY/" .env.production | |
sed -i '' "s/^BUNDLE_ENV=.*/BUNDLE_ENV=STAGING/" .env.production | |
else | |
echo "TRANSAK_API_KEY=$TRANSAK_API_KEY" >> .env.production | |
echo "COINBASE_PAY_ID=$COINBASE_PAY_ID" >> .env.production | |
echo "IOS_CODEPUSH_KEY=$IOS_CODEPUSH_KEY" >> .env.production | |
echo "ANDROID_CODEPUSH_KEY=$ANDROID_CODEPUSH_KEY" >> .env.production | |
echo "BUNDLE_ENV=STAGING" >> .env.production | |
fi | |
- name: Use Node.js 18 | |
uses: actions/setup-node@v4 | |
if: ${{ runner.name != 'Dos-Mac-mini' && runner.name != 'Mac-x86' }} | |
with: | |
node-version: 18 | |
cache: 'yarn' | |
- name: Cache Yarn dependencies | |
uses: actions/cache@v3 | |
if: ${{ runner.name != 'Dos-Mac-mini' && runner.name != 'Mac-x86' }} | |
id: yarn-cache # optional, but allows referencing the step | |
with: | |
path: | | |
.yarn/cache | |
**/node_modules | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
- name: Install dependencies | |
run: yarn install --immutable | grep -v 'YN0013' | |
- name: Restore Pods Cache | |
uses: actions/cache@v3 | |
if: ${{ runner.name != 'Dos-Mac-mini' && runner.name != 'Mac-x86' }} | |
with: | |
path: | | |
ios/Pods | |
~/Library/Caches/CocoaPods | |
~/.cocoapods | |
key: ${{ runner.os }}-pods-${{ hashFiles('ios/Podfile.lock') }} | |
restore-keys: | | |
${{ runner.os }}-pods- | |
- name: Install Pods | |
run: cd ios && pod update hermes-engine --no-repo-update && cd .. | |
# Build IPA file | |
- name: iOS Build Action | |
uses: yukiarrr/[email protected] | |
with: | |
project-path: ios/SubWalletMobile.xcodeproj | |
export-method: 'ad-hoc' | |
p12-base64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} | |
certificate-password: ${{ secrets.P12_PASSWORD }} | |
mobileprovision-base64: ${{ secrets.BUILD_ADHOC_PROVISION_PROFILE_BASE64 }} | |
code-signing-identity: 'Apple Distribution: CDM SOFTWARE DEVELOPMENT COMPANY LIMITED (ZUZ7T3GQMT)' | |
team-id: ${{ secrets.APPLE_TEAM_ID }} | |
workspace-path: ios/SubWalletMobile.xcworkspace | |
scheme: SubWalletMobile-Production | |
- name: Upload iOS to Diawi | |
id: upload-diawi-ios | |
uses: rnkdsh/[email protected] | |
with: | |
token: ${{ secrets.DIAWI_TOKEN }} | |
file: output.ipa | |
# Notify Discord | |
- name: Notify to Discord | |
uses: sarisia/actions-status-discord@v1 | |
if: always() | |
with: | |
webhook: ${{ secrets.DISCORD_WEBHOOK }} | |
status: ${{ job.status }} | |
username: GitHub Actions Test Notifier | |
title: ${{ github.workflow }} | |
description: | | |
iOS: The Deployment has been completed. | |
URL: ${{ steps.upload-ios.outputs.fileUrl }} | |
Diawi: ${{ steps.upload-diawi-ios.outputs.url }} | |
Diawi QR: ${{ steps.upload-diawi-ios.outputs.qrcode }} | |
# Android build workflow ------------------------------------------------- | |
build-android: | |
name: Android builds | |
runs-on: macos-12 | |
env: | |
GH_PAT: ${{ secrets.GH_PAT }} | |
GH_RELEASE_GITHUB_API_TOKEN: ${{ secrets.GH_PAT }} | |
KS_PASSWORD: ${{ secrets.KS_PASSWORD }} | |
NEXTCLOUD_CONFIG: ${{ secrets.NEXTCLOUD_CONFIG }} | |
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} | |
COMMIT_MESSAGE: ${{ github.event.pull_request.title }} | |
REF_NAME: ${{ github.ref_name }} | |
TRANSAK_API_KEY: ${{ secrets.TRANSAK_API_KEY }} | |
COINBASE_PAY_ID: ${{ secrets.COINBASE_PAY_ID }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
token: ${{ secrets.GH_PAT }} | |
- name: Remove unused web-runner for Android | |
run: | | |
rm -rf ./html/OldWeb.bundle | |
- name: Add APP ENV | |
run: | | |
cp .env.development.example .env.production | |
if [ -f .env.production ]; then | |
sed -i '' "s/^TRANSAK_API_KEY=.*/TRANSAK_API_KEY=$TRANSAK_API_KEY/" .env.production | |
sed -i '' "s/^COINBASE_PAY_ID=.*/COINBASE_PAY_ID=$COINBASE_PAY_ID/" .env.production | |
sed -i '' "s/^IOS_CODEPUSH_KEY=.*/IOS_CODEPUSH_KEY=$IOS_CODEPUSH_KEY/" .env.production | |
sed -i '' "s/^ANDROID_CODEPUSH_KEY=.*/ANDROID_CODEPUSH_KEY=$ANDROID_CODEPUSH_KEY/" .env.production | |
sed -i '' "s/^BUNDLE_ENV=.*/BUNDLE_ENV=STAGING/" .env.production | |
else | |
echo "TRANSAK_API_KEY=$TRANSAK_API_KEY" >> .env.production | |
echo "COINBASE_PAY_ID=$COINBASE_PAY_ID" >> .env.production | |
echo "IOS_CODEPUSH_KEY=$IOS_CODEPUSH_KEY" >> .env.production | |
echo "ANDROID_CODEPUSH_KEY=$ANDROID_CODEPUSH_KEY" >> .env.production | |
echo "BUNDLE_ENV=STAGING" >> .env.production | |
fi | |
- name: Use Node.js 18 | |
uses: actions/setup-node@v4 | |
if: ${{ runner.name != 'Dos-Mac-mini' && runner.name != 'Mac-x86' }} | |
with: | |
node-version: 18 | |
cache: 'yarn' | |
- name: Cache Yarn dependencies | |
uses: actions/cache@v3 | |
if: ${{ runner.name != 'Dos-Mac-mini' && runner.name != 'Mac-x86' }} | |
id: yarn-cache # optional, but allows referencing the step | |
with: | |
path: | | |
.yarn/cache | |
**/node_modules | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
- uses: actions/setup-java@v1 | |
with: | |
java-version: '11' | |
- name: Cache Gradle Wrapper | |
uses: actions/cache@v3 | |
if: ${{ runner.name != 'Dos-Mac-mini' && runner.name != 'Mac-x86' }} | |
with: | |
path: ~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }} | |
- name: Cache Gradle Dependencies | |
uses: actions/cache@v3 | |
if: ${{ runner.name != 'Dos-Mac-mini' && runner.name != 'Mac-x86' }} | |
with: | |
path: ~/.gradle/caches | |
key: ${{ runner.os }}-gradle-caches-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }} | |
restore-keys: | | |
${{ runner.os }}-gradle-caches- | |
- name: Install dependencies | |
run: yarn install --immutable | grep -v 'YN0013' | |
- name: Prepare sign datarun | |
run: | | |
echo "${{ secrets.ANDROID_KEY_STORE_BASE64 }}" | base64 --decode > android/app/${{ secrets.MYAPP_UPLOAD_STORE_FILE }} | |
# Build APK file | |
- name: Generate App APK | |
run: | | |
cd android && export ENVFILE=.env.production && ./gradlew assembleRelease -PMYAPP_UPLOAD_STORE_FILE=${{ secrets.MYAPP_UPLOAD_STORE_FILE }} -PMYAPP_UPLOAD_STORE_PASSWORD=${{ secrets.ANDROID_KEY_STORE_PASSWORD }} -PMYAPP_UPLOAD_KEY_PASSWORD=${{ secrets.ANDROID_KEY_PASSWORD }} -PMYAPP_UPLOAD_KEY_ALIAS=${{ secrets.ANDROID_ALIAS }} | |
- name: Upload Android to Diawi | |
id: upload-diawi-android | |
uses: rnkdsh/[email protected] | |
with: | |
token: ${{ secrets.DIAWI_TOKEN }} | |
file: ./android/app/build/outputs/apk/release/app-release.apk | |
# Notify to Discord | |
- name: Notify to Discord | |
uses: sarisia/actions-status-discord@v1 | |
if: always() | |
with: | |
webhook: ${{ secrets.DISCORD_WEBHOOK }} | |
status: ${{ job.status }} | |
username: GitHub Actions Test Notifier | |
title: ${{ github.workflow }} | |
description: | | |
Android: The Deployment has been completed. | |
Diawi: ${{ steps.upload-diawi-android.outputs.url }} | |
Diawi QR: ${{ steps.upload-diawi-android.outputs.qrcode }} |