feat: Phase 1 mobile tablet — Jenkins APK, PC tab, in-app update
Capacitor 확장으로 git push 시 Mobile Jenkins 빌드, PC 탭 Android/iPad 다운로드, 앱 내 APK 업데이트, iOS TestFlight API 및 Capacitor ios 프로젝트를 추가한다. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Executable
+81
@@ -0,0 +1,81 @@
|
||||
#!/usr/bin/env bash
|
||||
# exdev Jenkins — goldenChart-Mobile-Pipeline Job 생성
|
||||
set -euo pipefail
|
||||
|
||||
export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:${PATH:-/usr/bin:/bin}"
|
||||
|
||||
JENKINS_HOME="${JENKINS_HOME:-$HOME/.jenkins}"
|
||||
JENKINS_JOB="goldenChart-Mobile-Pipeline"
|
||||
JENKINS_TRIGGER_TOKEN="${JENKINS_MOBILE_TRIGGER_TOKEN:-${GC_MOBILE_JENKINS_TRIGGER_TOKEN:-goldenchart-mobile-build}}"
|
||||
GIT_DIR="${GIT_DIR:-/Volumes/ADATA/git/goldenChart.git}"
|
||||
WORK_TREE="${WORK_TREE:-/Users/aidev/apps/goldenChart}"
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
log() { echo "[install-mobile-jenkins] $*"; }
|
||||
|
||||
log "Jenkins job 생성: $JENKINS_JOB"
|
||||
mkdir -p "${JENKINS_HOME}/jobs/${JENKINS_JOB}"
|
||||
|
||||
cat > "${JENKINS_HOME}/jobs/${JENKINS_JOB}/config.xml" << JENKINS_XML
|
||||
<?xml version='1.1' encoding='UTF-8'?>
|
||||
<project>
|
||||
<description>GoldenChart Mobile — Capacitor Android APK</description>
|
||||
<keepDependencies>false</keepDependencies>
|
||||
<properties/>
|
||||
<scm class="hudson.plugins.git.GitSCM" plugin="git@5.0.0">
|
||||
<configVersion>2</configVersion>
|
||||
<userRemoteConfigs>
|
||||
<hudson.plugins.git.UserRemoteConfig>
|
||||
<url>file://${GIT_DIR}</url>
|
||||
</hudson.plugins.git.UserRemoteConfig>
|
||||
</userRemoteConfigs>
|
||||
<branches>
|
||||
<hudson.plugins.git.BranchSpec>
|
||||
<name>*/main</name>
|
||||
</hudson.plugins.git.BranchSpec>
|
||||
</branches>
|
||||
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
|
||||
<submoduleCfg class="empty-list"/>
|
||||
<extensions/>
|
||||
</scm>
|
||||
<canRoam>true</canRoam>
|
||||
<disabled>false</disabled>
|
||||
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
|
||||
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
|
||||
<authToken>${JENKINS_TRIGGER_TOKEN}</authToken>
|
||||
<triggers/>
|
||||
<concurrentBuild>false</concurrentBuild>
|
||||
<builders>
|
||||
<hudson.tasks.Shell>
|
||||
<command>#!/bin/bash
|
||||
set -euo pipefail
|
||||
export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:\$PATH"
|
||||
export WORK_TREE="${WORK_TREE}"
|
||||
export GIT_DIR="${GIT_DIR}"
|
||||
export BUILD_NUMBER="\${BUILD_NUMBER}"
|
||||
export ANDROID_HOME="\${ANDROID_HOME:-\$HOME/Library/Android/sdk}"
|
||||
export JAVA_HOME="\${JAVA_HOME:-\$HOME/.local/jdk-21.0.11+10/Contents/Home}"
|
||||
"${WORK_TREE}/scripts/jenkins-mobile-pipeline.sh"
|
||||
</command>
|
||||
</hudson.tasks.Shell>
|
||||
</builders>
|
||||
<publishers>
|
||||
<hudson.tasks.ArtifactArchiver>
|
||||
<artifacts>data/mobile-releases/**</artifacts>
|
||||
<allowEmptyArchive>true</allowEmptyArchive>
|
||||
<onlyIfSuccessful>false</onlyIfSuccessful>
|
||||
<fingerprint>false</fingerprint>
|
||||
<defaultExcludes>true</defaultExcludes>
|
||||
</hudson.tasks.ArtifactArchiver>
|
||||
</publishers>
|
||||
<buildWrappers/>
|
||||
</project>
|
||||
JENKINS_XML
|
||||
|
||||
if curl -sf -o /dev/null "http://127.0.0.1:8090/login" 2>/dev/null; then
|
||||
curl -sf -X POST "http://127.0.0.1:8090/reload" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
log "완료: http://127.0.0.1:8090/job/${JENKINS_JOB}/"
|
||||
log "원격 트리거 토큰: $JENKINS_TRIGGER_TOKEN"
|
||||
log "post-receive: trigger-mobile-jenkins-build.sh (git push main)"
|
||||
Reference in New Issue
Block a user