代码拉取完成,页面将自动刷新
同步操作将从 xuxiaowei-cloud/xuxiaowei-cloud-next 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
# 此流水线为 gitlab.com、jihulab.com、自建 gitlab 使用
stages:
# 极狐GitLab 构建/测试/扫描依赖漏洞等
- package
# 使用 k8s(也可使用 docker、shell 等执行器,需要能使用 docker 相关命令)构建、制作 docker 镜像、推送到 docker 私服
- k8s-package
# 在 k8s 所在的服务器上执行项目滚动发布
- k8s-publish
# 使用 shell 执行器构建
- shell-package
# 使用 shell 执行器发布
- shell-service
# 使用 docker 执行器构建、制作 docker 镜像
- docker-package
# 使用 docker 执行器发布
- docker-service
# 代码同步
- sync
# murphysec
murphysec:
variables:
MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"
stage: package
# Docker 镜像开源地址:https://gitee.com/xuxiaowei-com-cn/murphysec
image: xuxiaoweicomcn/murphysec:v3.1.1-maven-3.6.3-openjdk-17
script:
# murphysec 文档:https://www.murphysec.com/docs/guides/scan-scene/cli.html
- murphysec -v
- murphysec auth login $murphysec_token
- murphysec scan . --log-level info --write-log-to murphysec.log --json
# https://docs.gitlab.cn/jh/ci/yaml/index.html#cache
cache:
key: "${CI_JOB_NAME}"
paths:
- .m2/repository
artifacts:
name: murphysec
paths:
- murphysec.log
# https://docs.gitlab.com/ee/ci/yaml/index.html#rules
# 极狐GitLab中文文档:https://docs.gitlab.cn/jh/ci/yaml/index.html#rules
rules:
# PR 到 main 分支时预执行
- if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main"
# PR 合并到 main 后执行、推送到 main 分支时
- if: $CI_COMMIT_BRANCH == "main"
allow_failure: true
#
# coverage
coverage:
variables:
MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"
stage: package
image: maven:3.6.3-openjdk-17
services:
- name: docker:24.0.6-dind
variables:
# 关闭 TLS
DOCKER_TLS_CERTDIR: ""
script:
- git --version
- echo 常量网址:https://docs.gitlab.com/ee/ci/variables/predefined_variables.html
- echo 常量网址(极狐GitLab中文文档):https://docs.gitlab.cn/jh/ci/variables/predefined_variables.html
- echo 当前分支:$CI_COMMIT_BRANCH
- echo 分支上存在的上一个最新提交:$CI_COMMIT_BEFORE_SHA
- echo 分支上存在的上一个最新提交前八个字符:$CI_COMMIT_SHORT_SHA
- echo ISO8601格式的提交时间戳:$CI_COMMIT_TIMESTAMP
- echo "Name<email>格式提交的作者:$CI_COMMIT_AUTHOR"
- echo 提交标记名称。仅在标签的管道中可用:$CI_COMMIT_TAG
- echo 主分支:$CI_DEFAULT_BRANCH
- echo 项目路径:$CI_PROJECT_DIR
- echo 单个执行器中构建执行的唯一ID:$CI_CONCURRENT_ID
- echo 单个执行器和项目中构建执行的唯一ID:$CI_CONCURRENT_PROJECT_ID
- echo 作业是否手动启动:$CI_JOB_MANUAL
- echo 作业的名称:$CI_JOB_NAME
- echo 作业阶段的名称:$CI_JOB_STAGE
- echo 作业开始时的UTC日期时间,采用ISO8601格式:$CI_JOB_STARTED_AT
- echo 创建管道时的UTC日期时间,采用ISO8601格式:$CI_PIPELINE_CREATED_AT
- echo 当前项目的ID,此ID在GitLab实例上的所有项目中都是唯一的:$CI_PROJECT_ID
- echo 作业的项目命名空间(用户名或组名):$CI_PROJECT_NAMESPACE
- echo 项目目录的名称:$CI_PROJECT_NAME
- echo 包含项目名称的项目命名空间:$CI_PROJECT_PATH
- echo GitLab实例的主要版本:$CI_SERVER_VERSION_MAJOR
- echo GitLab实例的次要版本:$CI_SERVER_VERSION_MINOR
- echo GitLab实例的补丁版本:$CI_SERVER_VERSION_PATCH
- echo GitLab实例的完整版本:$CI_SERVER_VERSION
- echo 开始作业的用户的电子邮件:$GITLAB_USER_EMAIL
- echo 启动作业的用户的ID:$GITLAB_USER_ID
- echo 启动作业的用户的用户名:$GITLAB_USER_LOGIN
- echo 启动作业的用户的名称:$GITLAB_USER_NAME
- echo 合并请求的实例级ID,这是GitLab上所有项目的唯一ID:$CI_MERGE_REQUEST_ID
- echo 合并请求的项目级IID(内部ID),此ID对于当前项目是唯一的:$CI_MERGE_REQUEST_IID
- echo 合并请求的目标分支名称:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME
- echo 作业详细信息URL:$CI_JOB_URL
- echo 作业的内部ID,在GitLab实例中的所有作业中是唯一的:$CI_JOB_ID
- echo 正在使用的Runner的唯一ID:$CI_RUNNER_ID
- echo 运行作业的GitLabRunner的版本:$CI_RUNNER_VERSION
- echo 管道详细信息的URL:$CI_PIPELINE_URL
- echo 当前管道的实例级ID。此ID在GitLab实例上的所有项目中都是唯一的:$CI_PIPELINE_ID
- echo 当前管道的项目级IID(内部ID),此ID仅在当前项目中是唯一的:$CI_PIPELINE_IID
- echo GitLab实例URL的主机,没有协议或端口:$CI_SERVER_HOST
- echo 项目的HTTP(S)地址:$CI_PROJECT_URL
- echo 克隆Git存储库的URL:$CI_REPOSITORY_URL
- echo $DOCKER_PORT
- echo $DOCKER_PORT_2375_TCP
- echo $DOCKER_PORT_2375_TCP_PROTO
- echo $DOCKER_PORT_2375_TCP_PORT
- echo $DOCKER_PORT_2375_TCP_ADDR
- echo $DOCKER_PORT_2376_TCP
- echo $DOCKER_PORT_2376_TCP_PROTO
- echo $DOCKER_PORT_2376_TCP_PORT
- echo $DOCKER_PORT_2376_TCP_ADDR
# 自建 GitLab 实例 URL 的主机(部分域名)
- PRIVATE_SERVER_HOST=xuxiaowei
- if [[ $CI_SERVER_HOST =~ $PRIVATE_SERVER_HOST ]];
then
# 自建 GitLab 使用 Maven 私库(文档:https://gitlab-k8s.xuxiaowei.com.cn/gitlab-k8s/docs/nexus/docker-install-nexus)
- SETTINGS_FILE_NAME=settings-private.xml;
else
# 非自建 GitLab 使用 阿里/腾讯 Maven 镜像
- SETTINGS_FILE_NAME=settings.xml;
fi
- mvn clean -e -U package source:jar javadoc:jar install -DskipTests=true -s $SETTINGS_FILE_NAME && PACKAGE_FLAG=1;
- if [ "$PACKAGE_FLAG" == "1" ]; then echo '打包完成'; else echo '打包失败' && xxxx; fi
- mvn -pl admin-server -s $SETTINGS_FILE_NAME docker:build -Ddocker.host=$DOCKER_PORT -DCI_PIPELINE_ID=$CI_PIPELINE_ID;
- mvn -pl gateway -s $SETTINGS_FILE_NAME docker:build -Ddocker.host=$DOCKER_PORT -DCI_PIPELINE_ID=$CI_PIPELINE_ID;
- mvn -pl passport -s $SETTINGS_FILE_NAME docker:build -Ddocker.host=$DOCKER_PORT -DCI_PIPELINE_ID=$CI_PIPELINE_ID;
- mvn -pl resource-services-parent/canal -s $SETTINGS_FILE_NAME docker:build -Ddocker.host=$DOCKER_PORT -DCI_PIPELINE_ID=$CI_PIPELINE_ID;
- mvn -pl resource-services-parent/file -s $SETTINGS_FILE_NAME docker:build -Ddocker.host=$DOCKER_PORT -DCI_PIPELINE_ID=$CI_PIPELINE_ID;
- mvn -pl resource-services-parent/master-data -s $SETTINGS_FILE_NAME docker:build -Ddocker.host=$DOCKER_PORT -DCI_PIPELINE_ID=$CI_PIPELINE_ID;
- mvn -pl resource-services-parent/user -s $SETTINGS_FILE_NAME docker:build -Ddocker.host=$DOCKER_PORT -DCI_PIPELINE_ID=$CI_PIPELINE_ID;
- mvn -pl resource-services-parent/webservice -s $SETTINGS_FILE_NAME docker:build -Ddocker.host=$DOCKER_PORT -DCI_PIPELINE_ID=$CI_PIPELINE_ID;
- mvn -pl resource-services-parent/websocket -s $SETTINGS_FILE_NAME docker:build -Ddocker.host=$DOCKER_PORT -DCI_PIPELINE_ID=$CI_PIPELINE_ID;
- mvn -pl resource-services-parent/wechat-miniprogram -s $SETTINGS_FILE_NAME docker:build -Ddocker.host=$DOCKER_PORT -DCI_PIPELINE_ID=$CI_PIPELINE_ID;
- mvn -pl resource-services-parent/wechat-offiaccount -s $SETTINGS_FILE_NAME docker:build -Ddocker.host=$DOCKER_PORT -DCI_PIPELINE_ID=$CI_PIPELINE_ID;
- mvn -pl ui -s $SETTINGS_FILE_NAME docker:build -Ddocker.host=$DOCKER_PORT -DCI_PIPELINE_ID=$CI_PIPELINE_ID;
- mvn -pl xxl-job-admin -s $SETTINGS_FILE_NAME docker:build -Ddocker.host=$DOCKER_PORT -DCI_PIPELINE_ID=$CI_PIPELINE_ID;
- rm -rf .m2/repository/cloud/xuxiaowei
cache:
key: "${CI_JOB_NAME}"
paths:
- .m2/repository
- passport-ui/node/
- passport-ui/node_modules/
- ui/node/
- ui/node_modules/
# https://docs.gitlab.com/ee/ci/yaml/index.html#rules
# 极狐GitLab中文文档:https://docs.gitlab.cn/jh/ci/yaml/index.html#rules
rules:
# PR 到 main 分支时预执行
- if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main"
# PR 合并到 main 后执行、推送到 main 分支时
- if: $CI_COMMIT_BRANCH == "main"
# 嵌入
include:
# 对象储存
# 已禁用,有需要时才开放此内容
# - /upload.yml
# 使用 k8s 执行器 打包、部署服务
- /k8s.yml
# 使用 shell 执行器 打包、部署服务
- /shell.yml
# 使用 docker 执行器 打包、部署服务
- /docker.yml
# 同步代码
- /sync.yml
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。