Files
goldenChart/scripts/server-install-mobile-jenkins.sh
Macbook 7c4fc00b37 fix: server mobile CI — Java paths, monorepo Podfile
Jenkins/서버에서 brew OpenJDK·Android SDK 경로를 사용하고, npm workspace
루트의 Capacitor iOS 의존성을 Podfile이 참조하도록 수정한다.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-14 16:40:58 +09:00

82 lines
3.0 KiB
Bash
Executable File

#!/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:-/Users/aidev/Library/Android/sdk}"
export JAVA_HOME="\${JAVA_HOME:-/opt/homebrew/opt/openjdk@21/libexec/openjdk.jdk/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)"