2022년 초반 설치해서 잘 사용하던 jenkins가 3달만에 켰더니 동작하지 않았다.
별 생각없이 최신버전을 설치했더니 아예 실행조차 되지 않았다.
https://www.jenkins.io/blog/2021/12/22/deprecated-ruby-runtime/
ruby-runtime 으로 fastlane 자동빌드를 했었는데, 더이상 지원하지 않는다고 한다.
======
lts를 설치 했다면
$ brew remove jenkins-lts
$ brew cleanup
$ brew uninstall jenkins-lts --force
$ brew cleanup
$ sudo rm -rf /var/root/.jenkins-lts ~/.jenkins-lts
====== 재설치
홈브루 업데이트
$ brew update
젠킨스 설치, 버전 업데이트가 별로 없는 lts로 설치 하자.
$ brew install jenkins-lts
설치 후 명령어
$ brew services start jenkins-lts // 젠킨스 시작
$ brew services stop jenkins-lts // 젠킨스 종료
$ brew services restart jenkins-lts //젠킨스 재시작
http://localhost:8080 접속.
시작 화면이 뜨면 붉은색 위치로 가서 초기 비밀 번호를 적어준다.
$ vi /Users/jaehwanchoo/.jenkins/secrets/initialAdminPassword
플러그인 선택이 나오면, 잘 모르니, 왠만하면 install suggested plugin 설치
사용자를 만들고, 시작
jhchoo/jhchoo/jhchoo/jhchoo@gmail.com
lts 버전 설정변경
$ vi /usr/local/opt/jenkins-lts/homebrew.mxcl.jenkins-lts.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>homebrew.mxcl.jenkins</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/opt/openjdk@17/bin/java</string>
<string>-Dmail.smtp.starttls.enable=true</string>
<string>-jar</string>
<string>/usr/local/opt/jenkins/libexec/jenkins.war</string>
<string>--httpListenAddress=0.0.0.0</string>
<string>--httpPort=9999</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
이제 젠킨스를 재시작 하자.
$ brew services start jenkins-lts // 젠킨스 시작
$ brew services stop jenkins-lts // 젠킨스 종료
$ brew services restart jenkins-lts //젠킨스 재시작
=======
새로 아이템을 만들고, gitlab 소스를 가져오고, fastlane을 실행 하려고하면,
fastlane: command not found.
찾을 수 없다고 한다. 이제 중요함.
맥북 환경설정을 가져다 사용할 수 있도록 해야 한다.
1. 맥북의 환경설정에 fastlane을 추가한다.
$ sudo vi ~/.zshrc
# JAVA
export JAVA_HOME=$(/usr/libexec/java_home -v 11)
export PATH=${PATH}:$JAVA_HOME/bin
# Add RVM to PATH for scripting. Make sure this is the last PATH variable change.
export PATH="$PATH:$HOME/.rvm/bin"
# fastlane
export PATH="$PATH:$HOME/.fastlane/bin"
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
글로벌 환경설정 추가.
Dashboard > Manage Jenkins > Configure System
PATH=$PATH:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin
fastlane 명령어 전에 bundle update를 해보라고 한다.
https://docs.fastlane.tools/best-practices/continuous-integration/jenkins/
참고
https://medium.com/tech-tajawal/continuous-integration-in-ios-for-fun-and-profit-6c27964d663b
아래의 명령어로 변경
bundle update
bundle exec fastlane dev
sudo 권한이 없을 때, NOPASSWD 권한을 준다.
https://apple.stackexchange.com/questions/257813/enable-sudo-without-a-password-on-macos
sudo visudo
root ALL=(ALL) ALL
%admin ALL=(ALL) NOPASSWD: ALL
stens ALL = (ALL) NOPASSWD: ALL # my userid is stens
fastlane은 넘어갔는데, UTF-8 에러 발생
fastlane requires your locale to be set to UTF-8
에러 메세지: fastlane: command not found
환경설정 추가.
Name: Path
/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
에러 메세지: fastlane requires your locale to be set to UTF-8
젠킨스 환경설정 또 추가.
Name: LC_ALL
en_US.UTF-8
Name: LANG
en_US.UTF-8
Name: LANGUAGE
en_US.UTF-8
Name: LC_CTYPE
en_US.UTF-8
Name: ANDROID_HOME
/Users/jaehwanchoo/Library/Android
안드로이드 빌드. 환경설정 넣어주고 완료.
PS. 안드로이드 린트 에러가 나서, 무시 옵션 추가
android {
...
lintOptions {
disable "Instantiatable"
}
...
}
업데이트 완료.