Compare commits

...

2 Commits

View File

@@ -3,132 +3,31 @@ on:
branches:
- master
jobs:
build:
update:
runs-on: ubuntu-latest
env:
# 加速 npm/pnpm 下载
PNPM_REGISTRY: https://registry.npmmirror.com
# 加速 Android 构建
GRADLE_OPTS: -Dorg.gradle.daemon=false -Dorg.gradle.parallel=true -Dorg.gradle.configureondemand=true -Dorg.gradle.jvmargs="-Xmx4g -XX:+HeapDumpOnOutOfMemoryError"
# 使用国内镜像加速
ANDROID_SDK_ROOT: /usr/local/lib/android/sdk
steps:
- name: 🏗 Setup repo
uses: actions/checkout@v3
- name: 🏗 Setup pnpm
uses: pnpm/action-setup@v2
with:
version: latest
run_install: false
- name: 🏗 Setup Node
uses: actions/setup-node@v3
with:
node-version: 18.x
cache: pnpm
registry-url: 'https://registry.npmmirror.com'
- name: ⚡ Configure pnpm for speed
run: |
pnpm config set registry https://registry.npmmirror.com
pnpm config set store-dir ~/.pnpm-store
pnpm config set network-timeout 60000
- name: 📦 Install dependencies
run: pnpm install
- name: 🏗 Setup Java
uses: actions/setup-java@v3
- name: 🏗 Setup pnpm
uses: pnpm/action-setup@v2
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
- name: ⚡ Configure Java mirrors for speed
run: |
# 配置 Maven 使用阿里云镜像
mkdir -p ~/.m2
cat > ~/.m2/settings.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<mirror>
<id>aliyun-google</id>
<mirrorOf>central</mirrorOf>
<name>阿里云Google镜像</name>
<url>https://maven.aliyun.com/repository/google</url>
</mirror>
</mirrors>
</settings>
EOF
- name: 🏗 Setup Android SDK
uses: android-actions/setup-android@v3
with:
cache-disabled: false
- name: ⚡ Cache Gradle dependencies
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
~/.android/build-cache
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: ⚡ Configure Gradle for speed
run: |
mkdir -p ~/.gradle
cat > ~/.gradle/gradle.properties << EOF
org.gradle.daemon=false
org.gradle.parallel=true
org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx4g -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true
android.enableJetifier=true
android.enableR8.fullMode=true
EOF
# 配置 Gradle 使用国内镜像
mkdir -p ~/.gradle/init.d
cat > ~/.gradle/init.d/mirror.gradle << EOF
allprojects {
repositories {
all { ArtifactRepository repo ->
if (repo instanceof MavenArtifactRepository) {
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2/') || url.startsWith('https://jcenter.bintray.com/') || url.startsWith('https://dl.google.com/dl/android/maven2/')) {
project.logger.lifecycle "Repository \${repo.url} replaced by https://maven.aliyun.com/repository/public/."
remove repo
}
}
}
maven { url 'https://maven.aliyun.com/repository/public/' }
maven { url 'https://maven.aliyun.com/repository/google/' }
maven { url 'https://maven.aliyun.com/repository/jcenter/' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin/' }
}
}
EOF
version: latest
- name: 🏗 Setup EAS
uses: expo/expo-github-action@v8
with:
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}
packager: pnpm
- name: 🚀 Build app
run: eas build --platform android --local --non-interactive
- name: 📦 Install dependencies
run: pnpm install
- name: 🚀 Create update
run: eas update --platform android --non-interactive