목표
React (Vite) 프로젝트를 main 브랜치에 푸시하면 Jenkins가 빌드 후 Alibaba Cloud OSS에 자동 배포
발생한 문제들
1. NoSuchMethodError: No such DSL method 'aliyunOSSUpload'
원인: 플러그인 설치 불량 또는 재시작 미실행
해결:
2. InvalidCredentialsException: Access key id should not be null or empty
잘못된 코드:
environment {
ALIYUN_CREDS_ID = 'LTAI5tCrPDaDWZsjM7GNbigM' // ❌ 실제 Access Key
}
aliyunOSSUpload(credentialsId: env.ALIYUN_CREDS_ID, ...)
원인: credentialsId는 실제 Key 값이 아니라 Jenkins Credential에 등록된 항목 ID를 요구함
해결:
Manage Jenkins > Credentials에서 Alibaba Cloud AK/SK 등록environment { ALIYUN_CREDS_ID = 'aliyun-oss-creds' // ✅ Credential ID }
최종 Jenkinsfile
pipeline { agent any environment { ALIYUN_CREDS_ID = 'aliyun-oss-creds' OSS_BUCKET = 'oss://voidx-ai-add-on' } stages { stage('Install') { steps { sh 'npm install' } } stage('Build') { steps { sh 'npm run build' } } stage('Upload to OSS') { steps { script { def bucketName = env.OSS_BUCKET.replace('oss://', '') dir('dist') { aliyunOSSUpload( credentialsId: env.ALIYUN_CREDS_ID, bucketName: bucketName, filesPath: '**/*', targetPath: '/' ) } } } } } post { always { deleteDir() } } }
핵심 교훈
{
"object": "block",
"id": "2c9ee4ee-251e-803c-bef1-d7e60d926dfc",
"parent": {
"type": "page_id",
"page_id": "2a9ee4ee-251e-80e0-a6b4-c0b93391ae7d"
},
"created_time": "2025-12-14T06:39:00.000Z",
"last_edited_time": "2025-12-14T06:39:00.000Z",
"created_by": {
"object": "user",
"id": "dbb35ea8-dd87-4fd5-a4bd-719d5fa1096e"
},
"last_edited_by": {
"object": "user",
"id": "dbb35ea8-dd87-4fd5-a4bd-719d5fa1096e"
},
"has_children": true,
"archived": false,
"in_trash": false,
"type": "table",
"table": {
"table_width": 3,
"has_column_header": true,
"has_row_header": false
}
}