Salesforce의 CI를 Jenkins로 구축

6638 단어 JenkinsSalesforceSFDX
이 문서는 Salesforce Platform Advent Calendar 2019의 14 일째입니다.

상장으로부터 Jenkins를 사용하면 Salesfoce의 CI/CD를 할 수 있다고 들었으므로 환경을 구축했습니다.
처음이므로 처음에는 CI로부터 작성해, 순서를 기사로 했습니다.
CD로 진화하면 그 중 기사로 합니다.

했던 일



Jenkins를 설치한 서버에서 Salesforce 환경에 연결하고 테스트를 수행하는 작업을 만들었습니다.
평상시의 개발 환경에서는 브라우저로부터 로그인하면 좋기 때문에 편했습니다만 CUI에서는 순서가 두드러지게 되는 경우가 많은 이미지였습니다.

Jenkins 환경 구축



Docker 환경 구축



자바와 전제 패키지의 설치는 어려운 주제가 아니므로 Docker에서 Jenkins 컨테이너를 세웁니다.
또한 컨테이너 빌드 시 SFDX CLI도 함께 설치합니다.
※Dockerfile은 할애
참고 : Salesforce CLI 설치 - Linux에서 CLI 설치

Jenkins에 연결 확인



http://[IP 주소 or localhost]:8080으로 이동하여 Jenkins 설정 화면이 표시되면 Jenkins 환경 구축 완료

Salesforce에 연결



참고 : 연결 앱 만들기 단원 | Salesforce Trailhead

자체 인증서 만들기



참고 : 비공개 키 및 자체 서명 디지털 인증서 작성
참고 원을 보면서 서버의 비밀 키와 자기 증명서를 임의의 디렉토리에 작성
$ cd ./certificates
$ ls -l
-rw-rw-r-- 1 ec2-user ec2-user 1103 12月  2 14:49 server.crt
-rw-rw-r-- 1 ec2-user ec2-user  993 12月  2 14:49 server.csr
-rw-rw-r-- 1 ec2-user ec2-user 1675 12月  2 14:46 server.key

연결 애플리케이션 만들기



참고 : 연결 애플리케이션 만들기
※참고원의 12~16도 실시한다
다음 공정의 JWT 베이스 플로우를 사용한 인증으로 사용하기 때문에 표시된 「컨슈머 키」를 메모장 등에 카피해 둔다


JWT 기반 흐름을 사용하여 조직 인증



참고:
JWT 기반 흐름을 사용하여 조직 인증
[Salesforce DX] Salesforce CLI를 사용하여 JWT 베어러 토큰 흐름을 사용해보십시오 | Developers.IO

환경 변수에 소비자 키, 자체 인증서에 대한 절대 경로 및 사용자 이름을 설정합니다.
(GUI 브라우저가 없기 때문에 일반적인 브라우저로부터의 로그인이 불가능하기 때문에) 설정한 환경 변수를 이용하여 JWT 베이스 플로우 인증을 실시한다
# 環境変数の設定
export SFDX_USE_GENERIC_UNIX_KEYCHAIN=true
export CONSUMER_KEY=[コピーしたコンシューマ鍵]
export JWT_KEY_FILE=/path/to/certificates/server.key
export HUB_USERNAME=[ユーザ名]

# JWTベースフローを使用した組織の認証
$ sfdx force:auth:jwt:grant -i ${CONSUMER_KEY} -u ${HUB_USERNAME} -f ${JWT_KEY_FILE} -a jwt
Successfully authorized [email protected] with org ID 00D0o000000RtMIEA0

# 認証情報の確認
$ sfdx force:auth:list
=== authenticated orgs
ALIAS  USERNAME   ORG ID   INSTANCE URL                OAUTH METHOD
─────  ────────  ────────  ──────────────────────────  ────────────
jwt    [ユーザ名]  [組織ID]  https://ap8.salesforce.com  jwt

Jenkins 설정



Jenkins에 Salesforce 자격 증명 등록



Jenkins 관리> 시스템 설정에서 전역 속성으로 환경 변수 설정


자체 인증서 등록



Jenkins Admin Credentials 인터페이스를 사용하여 생성된 server.key 파일을 Jenkins 비밀 파일로 저장
이전에 설정한 환경 변수 "SERVER_KEY_CREDENTIALS_ID"의 값 (이 기사에서는 SF_Develop)을 ID로 설정


Custom Tools Plugin 설치



Jenkins 관리> 플러그인 관리> 사용 가능으로 차례로 누르고 필터에 Custom Tools를 입력하여 Custom Tools Plugin을 설치합니다.

Custom Tools 설정



Jenkins 관리>Global Tool Configuration에서 Custom tool 설정하기


Jenkins에서 테스트 수행



아래 URL의 Jenkins 파일을 복사하여 작업 만들기
htps : // 기주 b. 코 m / 훗 r 하지만 t 코 m / sfdx

그런 다음 작업을 수행하고 테스트 삼매의 매일을 보내십시오

CI에서 CD로



SFDX CLI를 사용하면 프로덕션 환경에 배포도 가능하기 때문에 조만간 해보고 싶습니다만, 안전한 환경에서 배포 테스트는 어떻게 할까요?
아시는 분이 계시면 코멘트 기다리고 있습니다.

추천 소스



Salesforce DX 개발자 가이드에서 소개된 조직 개발 모델에서 CI를 수행하는 Jenkins의 리포지토리입니다.
솔직히 이 리포지토리의 Readme에 모두 써 있습니다.
GitHub - forcedotcom/sfdx-jenkins-org: Jenkins example with org development

면책사항



본 기사의 콘텐츠와 정보에 대해 가능한 한 정확한 정보를 게재하기 위해 노력하고 있습니다. 그러나 잘못된 정보가 들어가거나 정보가 오래되었을 수도 있습니다. 반드시 정확성을 보장하는 것은 아닙니다. 또한 합법성이나 안전성 등도 보증하지 않습니다.

좋은 웹페이지 즐겨찾기