2026-02-07 14:57:52 -05:00
|
|
|
pipeline {
|
|
|
|
|
agent any
|
|
|
|
|
|
|
|
|
|
options {
|
|
|
|
|
ansiColor('xterm')
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tools {
|
|
|
|
|
jdk 'TemurinJDK-17'
|
|
|
|
|
maven 'Maven 3.8.7'
|
|
|
|
|
nodejs 'NodeJS 22.14.0'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
environment {
|
|
|
|
|
|
|
|
|
|
PRJ_NAME = 'docs-isharkfly-com'
|
|
|
|
|
PRJ_VERSION = '0.0.1-SNAPSHOT'
|
|
|
|
|
REPO_USERNAME = credentials('86617b35-b114-4604-b054-082c8638bf8e')
|
|
|
|
|
REPO_PASSWORD = credentials('c96b3079-b141-43f0-b43a-c9c2adfb14ea')
|
|
|
|
|
NODE_OPTIONS = '--openssl-legacy-provider'
|
|
|
|
|
|
|
|
|
|
// AWS
|
|
|
|
|
AWS_ACCOUNT_ID = credentials('stonex_aws_account_id')
|
|
|
|
|
AWS_REGION = 'us-east-1'
|
|
|
|
|
AWS_ACCESS_KEY_ID = credentials('stonex_aws_access_key_id')
|
|
|
|
|
AWS_SECRET_ACCESS_KEY = credentials('stonex_secret_access_key')
|
|
|
|
|
|
|
|
|
|
// AWS - ECR
|
|
|
|
|
IMAGE_REPO_NAME = 'stonex/app-service'
|
|
|
|
|
IMAGE_TAG = 'latest'
|
|
|
|
|
REPOSITORY_URI = "${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/${IMAGE_REPO_NAME}"
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
stages {
|
2026-04-22 14:13:19 -04:00
|
|
|
stage("Configure"){
|
|
|
|
|
steps {
|
|
|
|
|
script {
|
|
|
|
|
// This command should run on the agent to configure the git environment
|
|
|
|
|
sh 'git config --global url."https://github.com/".insteadOf git://github.com/'
|
|
|
|
|
|
|
|
|
|
sh 'corepack enable'
|
|
|
|
|
|
|
|
|
|
sh 'corepack prepare pnpm@latest --activate'
|
|
|
|
|
}
|
2026-02-07 14:57:52 -05:00
|
|
|
// git branch: 'main',
|
|
|
|
|
// credentialsId: 'c9d0ec7c-0749-4588-8960-e96cab84d462',
|
2026-04-22 14:13:19 -04:00
|
|
|
// url: 'https://src.isharkfly.com/USVisaTrack/Usvisatrack-Ui.git'
|
|
|
|
|
}
|
|
|
|
|
}
|
2026-02-07 14:57:52 -05:00
|
|
|
|
|
|
|
|
stage('Build / Package') {
|
|
|
|
|
steps {
|
2026-04-22 14:13:19 -04:00
|
|
|
sh 'pnpm install --frozen-lockfile'
|
|
|
|
|
sh 'npx browserslist@latest --update-db'
|
|
|
|
|
sh 'pnpm run docs:build'
|
2026-02-07 14:57:52 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
stage('Deploy to Cloudflare') {
|
|
|
|
|
steps {
|
|
|
|
|
// Install Wrangler locally for the project
|
2026-04-22 14:13:19 -04:00
|
|
|
sh 'pnpm add -D wrangler@latest'
|
2026-02-07 14:57:52 -05:00
|
|
|
// Deploy
|
2026-04-22 14:13:19 -04:00
|
|
|
sh "pnpm wrangler pages deploy ./.vitepress/dist --project-name=${PRJ_NAME} --branch=main"
|
2026-02-07 14:57:52 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// stage('Build Docker') {
|
|
|
|
|
// steps {
|
|
|
|
|
// echo 'Build Docker ...'
|
|
|
|
|
// sh 'docker image prune -f'
|
|
|
|
|
// // sh 'docker build -f Dockerfile -t ${PRJ_NAME}:${PRJ_VERSION} --label ${PRJ_NAME} .'
|
|
|
|
|
// sh 'docker build -f Dockerfile -t ${REPOSITORY_URI}:${IMAGE_TAG} --label ${PRJ_NAME} .'
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// stage('Docker Deploy - ECR') {
|
|
|
|
|
// steps {
|
|
|
|
|
// echo 'Deploying To Docker Repo....'
|
|
|
|
|
// withCredentials([
|
|
|
|
|
// [$class: 'AmazonWebServicesCredentialsBinding',
|
|
|
|
|
// credentialsId: 'stonex-creds', // The ID from Step 2
|
|
|
|
|
// accessKeyVariable: 'AWS_ACCESS_KEY_ID',
|
|
|
|
|
// secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']
|
|
|
|
|
// ]) {
|
|
|
|
|
// // Authenticate Docker with ECR
|
|
|
|
|
// sh "aws ecr get-login-password --region ${AWS_REGION} | docker login --username AWS --password-stdin ${REPOSITORY_URI}"
|
|
|
|
|
//
|
|
|
|
|
// // Push the built image
|
|
|
|
|
// sh "docker push ${REPOSITORY_URI}:${IMAGE_TAG}"
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// // }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// stage('Deploy Docker') {
|
|
|
|
|
// steps {
|
|
|
|
|
// echo 'Deploying To Docker Repo....'
|
|
|
|
|
// sh 'docker tag ${PRJ_NAME}:${PRJ_VERSION} repo-docker.isharkfly.com/docker-hub/${PRJ_NAME}:${PRJ_VERSION}'
|
|
|
|
|
// sh 'docker tag ${PRJ_NAME}:${PRJ_VERSION} repo-docker.isharkfly.com/docker-hub/${PRJ_NAME}:latest'
|
|
|
|
|
//
|
|
|
|
|
// sh 'docker login repo-docker.isharkfly.com --username ${REPO_USERNAME} --password ${REPO_PASSWORD}'
|
|
|
|
|
// sh 'docker push repo-docker.isharkfly.com/docker-hub/${PRJ_NAME}:${PRJ_VERSION}'
|
|
|
|
|
// sh 'docker push repo-docker.isharkfly.com/docker-hub/${PRJ_NAME}:latest'
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// stage('Deploy Server') {
|
|
|
|
|
// steps {
|
|
|
|
|
// echo 'Deploying To Server ....'
|
|
|
|
|
// dir('deploy') {
|
|
|
|
|
// sh 'ansible-playbook site.yml'
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
}
|