Commit 9e67dcce authored by tongzifang's avatar tongzifang

add legu

parent bb5d9819
This diff is collapsed.
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
<component name="GradleSettings"> <component name="GradleSettings">
<option name="linkedExternalProjectsSettings"> <option name="linkedExternalProjectsSettings">
<GradleProjectSettings> <GradleProjectSettings>
<option name="testRunner" value="CHOOSE_PER_TEST" />
<option name="externalProjectPath" value="$PROJECT_DIR$" /> <option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="1.8" /> <option name="gradleJvm" value="1.8" />
<option name="modules"> <option name="modules">
...@@ -11,15 +12,7 @@ ...@@ -11,15 +12,7 @@
<option value="$PROJECT_DIR$" /> <option value="$PROJECT_DIR$" />
</set> </set>
</option> </option>
</GradleProjectSettings> <option name="resolveExternalAnnotations" value="false" />
<GradleProjectSettings>
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="1.8" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
</set>
</option>
</GradleProjectSettings> </GradleProjectSettings>
</option> </option>
</component> </component>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="KotlinJpsPluginSettings"> <component name="KotlinJpsPluginSettings">
<option name="version" value="1.6.21" /> <option name="version" value="1.7.22" />
</component> </component>
</project> </project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectMigrations">
<option name="MigrateToGradleLocalJavaHome">
<set>
<option value="$PROJECT_DIR$" />
</set>
</option>
</component>
</project>
\ No newline at end of file
<project version="4"> <project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" /> <component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK" /> <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="corretto-1.8" project-jdk-type="JavaSDK" />
</project> </project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="com.intellij.execution.junit.AbstractAllInDirectoryConfigurationProducer" />
<option value="com.intellij.execution.junit.AllInPackageConfigurationProducer" />
<option value="com.intellij.execution.junit.PatternConfigurationProducer" />
<option value="com.intellij.execution.junit.TestInClassConfigurationProducer" />
<option value="com.intellij.execution.junit.UniqueIdConfigurationProducer" />
<option value="com.intellij.execution.junit.testDiscovery.JUnitTestDiscoveryConfigurationProducer" />
<option value="org.jetbrains.kotlin.idea.junit.KotlinJUnitRunConfigurationProducer" />
<option value="org.jetbrains.kotlin.idea.junit.KotlinPatternConfigurationProducer" />
</set>
</option>
</component>
</project>
\ No newline at end of file
...@@ -133,6 +133,12 @@ gradlePlugin { ...@@ -133,6 +133,12 @@ gradlePlugin {
implementationClass = 'com.qmai.android.plugin.OssFileUploadPlugin' implementationClass = 'com.qmai.android.plugin.OssFileUploadPlugin'
} }
} }
plugins {
OssAndPyger {
id = 'GradlePlugin.OssAndPyger'
implementationClass = 'com.qmai.android.plugin.OssAndPygerPlugin'
}
}
plugins { plugins {
pygerUpload { pygerUpload {
id = 'GradlePlugin.pygerUpload' id = 'GradlePlugin.pygerUpload'
...@@ -251,7 +257,7 @@ task hot{ ...@@ -251,7 +257,7 @@ task hot{
} }
group 'com.qmai.android.plugin' group 'com.qmai.android.plugin'
version '1.103' version '1.110.17'
gradlePublish { gradlePublish {
......
...@@ -4,5 +4,5 @@ ...@@ -4,5 +4,5 @@
# Location of the SDK. This is only used by Gradle. # Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the # For customization when using a Version Control System, please read the
# header note. # header note.
#Tue Aug 22 12:10:35 CST 2023 #Tue May 30 18:13:00 CST 2023
sdk.dir=/Users/leiwang/Library/Android/sdk sdk.dir=/Users/tongzi/Library/Android/sdk
package com.qmai.android.plugin
/***
* oss 上传需要的参数
*/
class MultiUploadBean {
String ossPath
String appName
String versionCode
String versionName
ArrayList<String> flavors = []
ArrayList<String> buildTypes = []
}
package com.qmai.android.plugin
import org.gradle.api.Plugin
import org.gradle.api.Project
/***
* 编译加上传到oss中
*/
class OssAndPygerPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
MultiUploadBean ossUploadFileBean = project.getExtensions().create("uploadOssAndPyger", MultiUploadBean.class)
PygerBean pygerBean = project.getExtensions().create("BuildAndPygerInfo", PygerBean.class)
project.afterEvaluate {
print("-OssAndPygerPlugin---buildTypes--:$ossUploadFileBean.buildTypes")
print("-OssAndPygerPlugin---flavors--:$ossUploadFileBean.flavors")
if (ossUploadFileBean.buildTypes != null) {
List<List<String>> combinedList = new ArrayList<>()
ossUploadFileBean.buildTypes.forEach { type ->
if (ossUploadFileBean.flavors == null || ossUploadFileBean.flavors.size() == 0) {
List<String> child = new ArrayList<>()
child.add(type)
child.add("")
combinedList.add(child)
} else {
ossUploadFileBean.flavors.forEach { flavor ->
List<String> child = new ArrayList<>()
child.add(type)
child.add(flavor)
combinedList.add(child)
}
}
}
print("-OssAndPygerPlugin---combinedList--:$combinedList")
combinedList.forEach { combinedListItem ->
String type = combinedListItem.get(0)
String flavor = combinedListItem.get(1)
String taskOssName = "uploadOss${firstLetterUpper(type)}${firstLetterUpper(flavor)}"
String taskPygerName = "uploadPyger${firstLetterUpper(type)}${firstLetterUpper(flavor)}"
print("-OssAndPygerPlugin--taskName:$taskOssName")
print("-OssAndPygerPlugin--taskPygerName:$taskPygerName")
String dirName = "${project.layout.buildDirectory.asFile.get()}/outputs/apk/$flavor/$type/"
String apkName = "qmsd_${type}_${flavor}" +
"_${ossUploadFileBean.versionCode}_${ossUploadFileBean.versionName}.apk"
def uploadFile = new File(dirName + apkName)
print("-OssAndPygerPlugin--dirName apkName:${dirName + apkName}")
project.getTasks().register(taskOssName, OssUploadTask.class, uploadFile, ossUploadFileBean.ossPath, type,
flavor, ossUploadFileBean.appName)
project.getTasks().register(taskPygerName,
PygerUploadTask.class, uploadFile,
firstLetterUpper(type), pygerBean.key, flavor, ossUploadFileBean.appName)
}
}
}
};
//首字符大写
String firstLetterUpper(String str) {
char[] cs = str.toCharArray()
cs[0] -= 32
return String.valueOf(cs)
}
}
...@@ -89,7 +89,13 @@ class OssUploadTask extends DefaultTask { ...@@ -89,7 +89,13 @@ class OssUploadTask extends DefaultTask {
//https://cli.im/api/qrcode/code?text //https://cli.im/api/qrcode/code?text
def downloadUrl = "https://files.qmai.cn/$ossPath$fileName" def downloadUrl = "https://files.qmai.cn/$ossPath$fileName"
def qrDownloadUrl = "https://cli.im/api/qrcode/code?text=${downloadUrl}" def qrDownloadUrl = "https://cli.im/api/qrcode/code?text=${downloadUrl}"
def content = "${appName.isEmpty() ? file.name : appName}: 下载地址为: https://files.qmai.cn/$ossPath$fileName\n 二维码地址:$qrDownloadUrl\n 当前环境: $buildType\n目标cpu: $flavor\n当前分支: ${getBranch()}" def content = "${appName.isEmpty() ? file.name : appName}: " +
"下载地址为: https://files.qmai.cn/$ossPath$fileName\n" +
"二维码地址:$qrDownloadUrl\n" +
"当前环境: $buildType\n" +
"目标cpu: $flavor\n" +
"是否加固: ${isLegu{}}\n" +
"当前分支: ${getBranch()}"
def dingDingdetail = new FsDetailInfoModel(content) def dingDingdetail = new FsDetailInfoModel(content)
def dingdingInfo = new FsInfoModel(dingDingdetail) def dingdingInfo = new FsInfoModel(dingDingdetail)
RequestBody requestBody = RequestBody.create(JSON, gson.toJson(dingdingInfo)) RequestBody requestBody = RequestBody.create(JSON, gson.toJson(dingdingInfo))
...@@ -114,6 +120,19 @@ class OssUploadTask extends DefaultTask { ...@@ -114,6 +120,19 @@ class OssUploadTask extends DefaultTask {
} }
} }
@Input
boolean isLegu() {
Map<String, String> map = System.getenv()
if (map == null) {
return false
}
String str = map.get("legu")
if (str == null) {
return false
} else {
return str == "true"
}
}
@Input @Input
boolean isInJenkins() { boolean isInJenkins() {
...@@ -154,9 +173,9 @@ class OssUploadTask extends DefaultTask { ...@@ -154,9 +173,9 @@ class OssUploadTask extends DefaultTask {
} }
@Input @Input
OssParamsBean getOssInfo(){ OssParamsBean getOssInfo() {
OssParamsBean ossParamsBean = new OssParamsBean() OssParamsBean ossParamsBean = new OssParamsBean()
Map<String,String> params = System.getenv() Map<String, String> params = System.getenv()
ossParamsBean.app_oss_endpoint = params.get("app_oss_endpoint") ossParamsBean.app_oss_endpoint = params.get("app_oss_endpoint")
ossParamsBean.app_oss_accessKeyId = params.get("app_oss_accessKeyId") ossParamsBean.app_oss_accessKeyId = params.get("app_oss_accessKeyId")
ossParamsBean.app_oss_accessKeySecret = params.get("app_oss_accessKeySecret") ossParamsBean.app_oss_accessKeySecret = params.get("app_oss_accessKeySecret")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment