add jenkinsfile
This commit is contained in:
Vendored
+132
@@ -0,0 +1,132 @@
|
|||||||
|
def label = "slave-${UUID.randomUUID().toString()}"
|
||||||
|
|
||||||
|
podTemplate(
|
||||||
|
label: label,
|
||||||
|
yaml: """
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Pod
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
jenkins-cicd: cicd-jenkins
|
||||||
|
spec:
|
||||||
|
securityContext:
|
||||||
|
runAsUser: 0
|
||||||
|
privileged: true
|
||||||
|
containers:
|
||||||
|
- name: nodejs
|
||||||
|
image: node:16.16-alpine3.15
|
||||||
|
imagePullPolicy: "IfNotPresent"
|
||||||
|
command:
|
||||||
|
- cat
|
||||||
|
tty: true
|
||||||
|
volumeMounts:
|
||||||
|
- name: "workspace-volume"
|
||||||
|
mountPath: "/home/jenkins/agent"
|
||||||
|
readOnly: false
|
||||||
|
- name: "docker"
|
||||||
|
image: "docker:20.10.17-git"
|
||||||
|
imagePullPolicy: "IfNotPresent"
|
||||||
|
command:
|
||||||
|
- cat
|
||||||
|
tty: true
|
||||||
|
volumeMounts:
|
||||||
|
- name: "volume-docker"
|
||||||
|
mountPath: "/var/run/docker.sock"
|
||||||
|
readOnly: false
|
||||||
|
- name: "workspace-volume"
|
||||||
|
mountPath: "/home/jenkins/agent"
|
||||||
|
readOnly: false
|
||||||
|
- name: kubectl
|
||||||
|
image: bitnami/kubectl:1.23.7
|
||||||
|
imagePullPolicy: "IfNotPresent"
|
||||||
|
command:
|
||||||
|
- cat
|
||||||
|
tty: true
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: true
|
||||||
|
volumeMounts:
|
||||||
|
- name: "volume-kube"
|
||||||
|
mountPath: "/home/jenkins/.kube"
|
||||||
|
readOnly: false
|
||||||
|
- name: "workspace-volume"
|
||||||
|
mountPath: "/home/jenkins/agent"
|
||||||
|
readOnly: false
|
||||||
|
volumes:
|
||||||
|
- name: "volume-m2"
|
||||||
|
hostPath:
|
||||||
|
path: "/root/.m2/repository"
|
||||||
|
- name: "maven-config"
|
||||||
|
configMap:
|
||||||
|
name: maven-config
|
||||||
|
- name: "volume-docker"
|
||||||
|
hostPath:
|
||||||
|
path: "/var/run/docker.sock"
|
||||||
|
- name: "volume-kube"
|
||||||
|
hostPath:
|
||||||
|
path: "/root/.kube"
|
||||||
|
- name: "workspace-volume"
|
||||||
|
emptyDir:
|
||||||
|
medium: ""
|
||||||
|
""",
|
||||||
|
serviceAccount: 'jenkins-admin'
|
||||||
|
) {
|
||||||
|
node(label) {
|
||||||
|
def myRepo = checkout([
|
||||||
|
$class: 'GitSCM',
|
||||||
|
branches: [[name: "*/dev"]],
|
||||||
|
doGenerateSubmoduleConfigurations: false,
|
||||||
|
extensions: [[$class: 'CloneOption', noTags: false, reference: '', shallow: true, timeout: 1000]]+[[$class: 'CheckoutOption', timeout: 1000]],
|
||||||
|
submoduleCfg: [],
|
||||||
|
userRemoteConfigs: [[
|
||||||
|
credentialsId: '2448e943-479f-4796-b5a0-fd3bf22a5d30',
|
||||||
|
url: 'https://gitee.com/guan-xiangwei/violin-home-manage.git'
|
||||||
|
]]
|
||||||
|
])
|
||||||
|
|
||||||
|
def gitCommit = myRepo.GIT_COMMIT
|
||||||
|
def gitBranch = myRepo.GIT_BRANCH
|
||||||
|
|
||||||
|
def imageTag = "v1.00"
|
||||||
|
def registryUrl = "ccr.ccs.tencentyun.com"
|
||||||
|
def imageEndpoint = "violin/violin-home"
|
||||||
|
def image = "${registryUrl}/${imageEndpoint}:${imageTag}"
|
||||||
|
|
||||||
|
stage('单元测试') {
|
||||||
|
echo "测试阶段"
|
||||||
|
}
|
||||||
|
stage('npm打包') {
|
||||||
|
container('nodejs') {
|
||||||
|
sh '''
|
||||||
|
npm install
|
||||||
|
npm run build
|
||||||
|
'''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('镜像构建') {
|
||||||
|
withCredentials([[$class: 'UsernamePasswordMultiBinding',
|
||||||
|
credentialsId: '8eb5126b-6a2f-4644-add0-bc2a669e663d',
|
||||||
|
usernameVariable: 'DOCKER_USER',
|
||||||
|
passwordVariable: 'DOCKER_PASSWORD']]) {
|
||||||
|
container('docker') {
|
||||||
|
echo "3. 构建 Docker 镜像阶段"
|
||||||
|
sh """
|
||||||
|
docker login ${registryUrl} --username=${DOCKER_USER} -p ${DOCKER_PASSWORD}
|
||||||
|
docker build -t ${image} .
|
||||||
|
docker push ${image}
|
||||||
|
"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('预发布') {
|
||||||
|
withKubeConfig([
|
||||||
|
credentialsId: 'kubeconfig',
|
||||||
|
serverUrl: 'https://49.233.4.79:6443'
|
||||||
|
]) {
|
||||||
|
container('kubectl') {
|
||||||
|
echo "查看 K8S 集群 Pod 列表"
|
||||||
|
sh 'kubectl get pods -A'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -115,7 +115,7 @@ const openBlog = (bid: string) => {
|
|||||||
|
|
||||||
const openBlogEditer = () => {
|
const openBlogEditer = () => {
|
||||||
const { href } = router.resolve({
|
const { href } = router.resolve({
|
||||||
path: '/write'
|
path: '/write/'
|
||||||
});
|
});
|
||||||
window.open(href, '_blank');
|
window.open(href, '_blank');
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user