Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/prime login0 #6480

Draft
wants to merge 3 commits into
base: x
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,24 @@ EXT_INJECT_MODE=
# for hardware-js-sdk iframe src
HARDWARE_SDK_CONNECT_SRC=

# for webpack analyzer
ENABLE_ANALYZER=
ENABLE_ANALYZER_HTML_REPORT=

# Jpush
JPUSH_KEY=
JPUSH_CHANNEL=


# Privy
PRIVY_APP_ID=
PRIVY_MOBILE_CLIENT_ID=

# Revenuecat
REVENUECAT_API_KEY_STRIPE=
REVENUECAT_API_KEY_APPLE=
REVENUECAT_API_KEY_GOOGLE=
REVENUECAT_API_KEY_WEB=
REVENUECAT_API_KEY_WEB_SANDBOX=

# Will auto add and inject variable at CI job.Must give an empty line at end of this file.
2 changes: 1 addition & 1 deletion .env.version
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# VERSION: https://semver.org/

VERSION=5.6.0
VERSION=5.6.789

# Will auto add BUILD_NUMBER variable at native CI job.Must give an empty line at end of this file.
4 changes: 4 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
require('./development/lint/eslint-rule-force-async-bg-api');

const isDev = process.env.NODE_ENV !== 'production';
const jsRules = {
// eslint-disable-next-line global-require
Expand All @@ -6,6 +8,7 @@ const jsRules = {
'no-use-before-define': 'off',
'no-shadow': 'off',
'import/no-extraneous-dependencies': 'off',
// 'force-async-bg-api': 'error', // TODO not working
'no-restricted-exports': 'off',
'func-names': 'off',
'import/no-named-as-default-member': 'off',
Expand Down Expand Up @@ -168,6 +171,7 @@ const tsRules = {

const resolveExtensions = (platform) =>
['.ts', '.tsx', '.js', '.jsx'].map((ext) => `${platform}${ext}`);

module.exports = {
plugins: [
'spellcheck',
Expand Down
174 changes: 174 additions & 0 deletions .github/actions/shared-env/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
name: Shared Environment Variables Setup
description: Setup environment variables for the project

inputs:
additional_env:
required: false
type: string
description: "Additional environment variables to inject"
env_file_name:
required: false
type: string
default: ".env"
description: "Target environment file name"
sentry_project:
required: false
type: string
default: ''
description: "Sentry project name"
covalent_key:
required: true
type: string
description: "Covalent API Key"
sentry_token:
required: true
type: string
description: "Sentry Auth Token"
privy_app_id:
required: true
type: string
description: "Privy App ID"
privy_mobile_client_id:
required: true
type: string
description: "Privy Mobile Client ID"
revenuecat_api_key_web:
required: true
type: string
description: "RevenueCat Web API Key"
revenuecat_api_key_web_sandbox:
required: true
type: string
description: "RevenueCat Web Sandbox API Key"
revenuecat_api_key_apple:
required: true
type: string
description: "RevenueCat Apple API Key"
revenuecat_api_key_google:
required: true
type: string
description: "RevenueCat Google API Key"

runs:
using: "composite"
steps:
- name: Checkout Source Code
uses: actions/checkout@v3
with:
lfs: true

- name: Dotenv Action
id: dotenv
uses: OneKeyHQ/actions/dotenv-action@main
with:
path: .env.version

- name: Setup ENV
shell: bash
run: |
# Generate app version ------- start
app_version=${{ steps.dotenv.outputs.version }}
echo '$app_version='$app_version
echo "BUILD_APP_VERSION=$app_version" >> $GITHUB_ENV
# Generate app version ------- end

# Generate github tag ------- start
github_ref="${github_ref////-}"
github_ref="${github_ref/refs-heads-/}"
github_ref="${github_ref/refs-tags-/}"
echo '$github_ref='$github_ref
echo "GITHUB_TAG=$github_ref" >> $GITHUB_ENV
# echo "::set-env name=GITHUB_TAG::$github_ref"
# Generate github tag ------- end
env:
github_ref: ${{ github.ref }}
workflow_run_number: ${{ github.event.workflow_run.run_number}}

- name: Setup ENV BUILD_NUMBER to 1
if: ${{ !github.event.workflow_run }}
shell: bash
run: |
# Generate build number ------- start
echo "BUILD_NUMBER=1" >> $GITHUB_ENV
# Generate build number ------- end
env:
github_ref: ${{ github.ref }}
workflow_run_number: ${{ github.event.workflow_run.run_number}}


- name: Setup ENV BUILD_NUMBER by workflow_run
if: ${{ github.event.workflow_run }}
shell: bash
run: |
echo "ActionTriggerBy = ${{ github.event.action }} / ${{ github.event_name }}"

# Generate build number ------- start
DATE=`date "+%Y%m%d"`
run_number=$(($workflow_run_number % 100))
run_number=$(printf "%02d" $run_number)
build_number="${DATE}${run_number}"
echo '$build_number='$build_number
echo "BUILD_NUMBER=$build_number" >> $GITHUB_ENV
# Generate build number ------- end
env:
github_ref: ${{ github.ref }}
workflow_run_number: ${{ github.event.workflow_run.run_number}}

- name: Inject Environment Variables
shell: bash
env:
GITHUB_SHA: ${{ github.sha }}
COVALENT_KEY: ${{ inputs.covalent_key }}
SENTRY_TOKEN: ${{ inputs.sentry_token }}
SENTRY_PROJECT: ${{ inputs.sentry_project || '' }}
TARGET_ENV_FILE: ${{ inputs.env_file_name || '.env' }}
PRIVY_APP_ID: ${{ inputs.privy_app_id }}
PRIVY_MOBILE_CLIENT_ID: ${{ inputs.privy_mobile_client_id }}
REVENUECAT_API_KEY_WEB: ${{ inputs.revenuecat_api_key_web }}
REVENUECAT_API_KEY_WEB_SANDBOX: ${{ inputs.revenuecat_api_key_web_sandbox }}
REVENUECAT_API_KEY_APPLE: ${{ inputs.revenuecat_api_key_apple }}
REVENUECAT_API_KEY_GOOGLE: ${{ inputs.revenuecat_api_key_google }}
run: |
echo "GITHUB_SHA=${{ env.GITHUB_SHA }}" >> ${TARGET_ENV_FILE}
echo "GITHUB_TAG=${{ env.GITHUB_TAG }}" >> ${TARGET_ENV_FILE}
echo "CI_BUILD_APP_VERSION=${{ env.BUILD_APP_VERSION }}" >> ${TARGET_ENV_FILE}
echo "CI_BUILD_NUMBER=${{ env.BUILD_NUMBER }}" >> ${TARGET_ENV_FILE}
echo "ENABLE_ANALYZER=1" >> ${TARGET_ENV_FILE}
echo "ENABLE_ANALYZER_HTML_REPORT=1" >> ${TARGET_ENV_FILE}
echo "COVALENT_KEY=${{ env.COVALENT_KEY }}" >> ${TARGET_ENV_FILE}
echo "SPLIT_BUNDLE=${{ inputs.is-split-bundle }}" >> ${TARGET_ENV_FILE}
echo "SENTRY_AUTH_TOKEN=${{ env.SENTRY_TOKEN }}" >> ${TARGET_ENV_FILE}
echo "SENTRY_TOKEN=${{ env.SENTRY_TOKEN }}" >> ${TARGET_ENV_FILE}
echo "SENTRY_PROJECT=${{ env.SENTRY_PROJECT }}" >> ${TARGET_ENV_FILE}
echo "PRIVY_APP_ID=${{ env.PRIVY_APP_ID }}" >> ${TARGET_ENV_FILE}
echo "PRIVY_MOBILE_CLIENT_ID=${{ env.PRIVY_MOBILE_CLIENT_ID }}" >> ${TARGET_ENV_FILE}
echo "REVENUECAT_API_KEY_WEB=${{ env.REVENUECAT_API_KEY_WEB }}" >> ${TARGET_ENV_FILE}
echo "REVENUECAT_API_KEY_WEB_SANDBOX=${{ env.REVENUECAT_API_KEY_WEB_SANDBOX }}" >> ${TARGET_ENV_FILE}
echo "REVENUECAT_API_KEY_APPLE=${{ env.REVENUECAT_API_KEY_APPLE }}" >> ${TARGET_ENV_FILE}
echo "REVENUECAT_API_KEY_GOOGLE=${{ env.REVENUECAT_API_KEY_GOOGLE }}" >> ${TARGET_ENV_FILE}
if [[ ! -z "${{ inputs.additional_env }}" ]]; then
echo "${{ inputs.additional_env }}" >> ${TARGET_ENV_FILE}
fi

- name: Print ENV file content
shell: bash
run: |
echo "=== .env ==="
if [ -f .env ]; then
cat .env
fi
echo "--------------------------------"

echo "=== .env.expo ==="
if [ -f .env.expo ]; then
cat .env.expo
fi
echo "--------------------------------"

echo "=== .env.version ==="
if [ -f .env.version ]; then
cat .env.version
fi
echo "--------------------------------"


70 changes: 34 additions & 36 deletions .github/workflows/release-android-debug.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ on:
description: "Should it run as split-bundle? (keep it null if you don't need it)"
required: false
default: ''

jobs:
release-android-debug:
runs-on: ubuntu-latest
Expand All @@ -15,39 +16,28 @@ jobs:
node-version: [20.x]

steps:
# https://github.com/orgs/community/discussions/25678
- name: Delete huge unnecessary tools folder
run: rm -rf /opt/hostedtoolcache

- name: Checkout Source Code
uses: actions/checkout@v3
with:
lfs: true

- name: Dotenv Action
id: dotenv
uses: OneKeyHQ/actions/dotenv-action@main
- name: Run Shared Env Setup
uses: ./.github/actions/shared-env
with:
path: .env.version

- name: 'Setup ENV'
run: |
echo "ActionTriggerBy = ${{ github.event.action }} / ${{ github.event_name }}"

# Generate build number ------- start
DATE=`date "+%Y%m%d"`
run_number=$(($workflow_run_number % 100))
run_number=$(printf "%02d" $run_number)
build_number="${DATE}${run_number}"
echo '$build_number='$build_number
echo "BUILD_NUMBER=$build_number" >> $GITHUB_ENV
# Generate build number ------- end

github_ref="${github_ref////-}"
github_ref="${github_ref/refs-heads-/}"
github_ref="${github_ref/refs-tags-/}"
echo '$github_ref='$github_ref
echo "GITHUB_TAG=$github_ref" >> $GITHUB_ENV
# echo "::set-env name=GITHUB_TAG::$github_ref"
env:
github_ref: ${{ github.ref }}
workflow_run_number: ${{ github.event.workflow_run.run_number}}
env_file_name: ".env.expo"
sentry_project: ''
covalent_key: ${{ secrets.COVALENT_KEY }}
sentry_token: ${{ secrets.SENTRY_TOKEN }}
privy_app_id: ${{ secrets.PRIVY_APP_ID }}
privy_mobile_client_id: ${{ secrets.PRIVY_MOBILE_CLIENT_ID }}
revenuecat_api_key_web: ${{ secrets.REVENUECAT_API_KEY_WEB }}
revenuecat_api_key_web_sandbox: ${{ secrets.REVENUECAT_API_KEY_WEB_SANDBOX }}
revenuecat_api_key_apple: ${{ secrets.REVENUECAT_API_KEY_APPLE }}
revenuecat_api_key_google: ${{ secrets.REVENUECAT_API_KEY_GOOGLE }}

- name: Setup Java
uses: actions/setup-java@v4
Expand Down Expand Up @@ -83,12 +73,6 @@ jobs:
run: |
yarn

- name: Inject Environment Variables
env:
GITHUB_SHA: ${{ github.sha }}
run: |
echo "GITHUB_SHA=${{ env.GITHUB_SHA }}" >> .env

- name: Build APK
env:
NODE_OPTIONS: '--max_old_space_size=8192'
Expand All @@ -97,6 +81,10 @@ jobs:
yarn app:web-embed:build
cd apps/mobile/android
./gradlew assembleDebug

# https://github.com/orgs/community/discussions/25678
- name: Delete huge unnecessary tools folder
run: rm -rf /opt/hostedtoolcache

- name: Upload Main Debug APK
uses: actions/upload-artifact@v3
Expand All @@ -115,7 +103,17 @@ jobs:
- name: Upload Huawei Debug APK
uses: actions/upload-artifact@v3
with:
name: release-huawei-debug
path: |
./apps/mobile/android/app/build/outputs/apk/huawei/debug
name: release-huawei-debug
path: |
./apps/mobile/android/app/build/outputs/apk/huawei/debug

- name: Free Disk Space
uses: jlumbroso/free-disk-space@main
with:
tool-cache: false
android: true
dotnet: false
haskell: false
large-packages: false
docker-images: false
swap-storage: false
Loading
Loading