相关文章推荐
怕考试的日记本  ·  openlayers ...·  1 年前    · 
绅士的啤酒  ·  Nestjs Fastify ...·  1 年前    · 
正直的芹菜  ·  datetime - How to ...·  1 年前    · 

GitLab CI/CD maven项目加速

GitLab CI/CD 在构建 maven项目的时候发现很慢,经过查询大量资料和尝试,终于发现了镜像加速的方法,记录一下

参考资料:
https://oomake.com/question/10042383
https://gitlab.com/gitlab-org/gitlab-foss/-/issues/15167

image: docker:latest
variables:
  IMAGE_NAME_HZ: "${REGISTRY_HZ}/${CI_PROJECT_NAMESPACE}-${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}"
  IMAGE_NAME_ZJK: "${REGISTRY_ZJK}/${CI_PROJECT_NAMESPACE}-${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}"
  BIN_NAME: "fdd"
cache:
  paths:
    - .m2/
stages:
  - package
  - build
package:
  image: maven:3.6-jdk-8-alpine
  tags:
    - public-runner001
  stage: package
  script:
    - echo '<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
            <localRepository>/cache/.m2</localRepository>
            <mirrors>
              <mirror>
                <id>nexus-aliyun</id>
                <mirrorOf>*</mirrorOf>
                <name>Nexus aliyun</name>
                <url>http://maven.aliyun.com/nexus/content/groups/public</url>
              </mirror>
            </mirrors>
            </settings>' > $HOME/.m2/settings.xml
    - mvn clean install -Dmaven.test.skip=true
  artifacts:
    paths:
      - target/*.jar    # 将maven构建成功的jar包作为构建产出导出,可在下一个stage的任务中使用
build:
  stage: build
  tags:
    - public-runner001
  image: docker:stable
  services:
    - docker:dind
  only:
    - master
    - tags
    - merge_requests
  dependencies:
    - package
  script:
    - docker login -u ${CI_USER} -p ${CI_PASSWD} ${REGISTRY_HZ}
    - docker build . -t ${IMAGE_NAME_HZ}
    - docker push ${IMAGE_NAME_HZ}
    # 张家口
    - docker login -u ${XD_CI_USER} -p ${CI_PASSWD} ${REGISTRY_ZJK}
    - docker build . -t ${IMAGE_NAME_ZJK}
    - docker push ${IMAGE_NAME_ZJK}
在GitLab管道中的推荐用法
将这一行直接放在SonarQube分析之后:
 mvn --batch-mode --update-snapshots --non-recursive de.qaware.tools.sonarqube-build-breaker:sqbb-maven-plugin:sqbb -Dsqbb.sonarQubeUrl=$SONAR_URL -Dsqbb.sonarQubeToken=$SONAR_TOKEN -Dsqbb.branch=$CI_BUILD_REF_NAME
该行将自动下载并运行最新的SonarQube构建断路器。
 构建破坏者需要设置两个环境变量:
 SONAR_TOKEN
 SONAR_URL
 这些可以在GitLab项目配置的CI / CD设置中进行配
                                    因为目前工作中有用到这种推送自动打包发布的模式,所以顺便就学习了。当然目前对于gitlab-ci/cd也只是了解会用的阶段,因为不太了解docker,那些dcoker的自动发布构建镜像脚本不太会写,所以这次我没有用docker,等我系统学习了docker以后再说。
                                    连续gitlab
 使用docker-compose up在一个网络中启动本地GitLab实例和GitLab-runner。
 获取注册令牌(适用于团体跑步者)。 将其粘贴到.register-gitlab-runner.sh并在启动完成后运行它以在GitLab上注册GitLab-runner。
 在GitLab > $group_name > Settings > CI/CD: Variables定义:
 Nexus_REPO_URL: http://nexus:8081
 Nexus_REPO_USER: admin
 Nexus_REPO_PASS: nfa
 另请参见continuous-gitlab-repos/simple-maven-dep存储库克隆GitLab_pwd:rettnera
                                    我目前使用的gitlab版本是15.7.1-jh我看了有关于gitlab maven私服的很多文章大家偏主流一点的 是使用 nexus3+gitlab 可能还加个Jenkins而我是要独立使用gitlab作为maven私服这里我要说说我对两种方式的理解nexus3是所有的包都会缓存一份到这里,找不到再去maven中央服务器找。这里所有的包不仅仅包含公司项目依赖的内部项目,还包含你pom中的一切,其实跟maven本地仓库一样而我为什么要独立使用gitlab呢?
这里可以一台服务器管理gitlab代码,一台服务器搞CI/CD持续集成.
我们首先搞一台linux去进行安装GitLabRunner和GitLabRunner的register
docker run --rm -it -v /$HOME/var/gitlab-runner/config:/etc/gitlab-runner --name gitlab-runner gitlab/gitlab-runner reg
                                    如何加快CI(maven编译和单元测试)速度
文章目录如何加快CI(maven编译和单元测试)速度CI速度慢到什么程度会无法接受加快编译速度增量编译模块并行编译加快单元测试速度单元测试并行优化单元测试如何找到执行时间较长的单元测试
CI速度慢到什么程度会无法接受
CI速度或者单元测试速度一般不会在某一次特定的提交后突然变慢,如果真的是突然变慢,一般来说可以立刻定位到这次提交,问题一般也能解决了,但是就怕没有发现变慢,或者问题不是某一次提交暴露出来的,而是慢慢堆积起来的。
根据Jenkins构建历史,可以看到
                                    自己用阿里云服务器搭建了 gitlab 服务器,使用起来确相当的卡顿,在代码 pull,push 过程中都会有延迟。阿里云服务器配置(2核,4G,centos7)。注意:创建swap大小为bs*count=4294971392(4G),/mnt/swap目录若无则找/data/swap。Swap的调整对Linux服务器,特别是Web服务器的性能至关重要,通过调整Swap,有时可以越过系统性能瓶颈。3、查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成60。
                                    在IDEA安装目录下找到setting.xml 
路径:IntelliJ IDEA 2016.3.2\plugins\maven\lib\maven2\conf添加以下内容<mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repos
                                    gitee 提供了一个每日同步一次的 Github 镜像仓库 — 码云极速下载.
这个镜像站涵盖了github上大多数热门的仓库,对于没有镜像的仓库可以利用gitee自建镜像,迂回加速.
自建镜像仓库
1. 新建仓库
仓库名称建议保持与github仓库名一致,
选择导入已有仓库,填入github仓库克隆地址
点击创建,gitee会在后台自行下载此github仓库
2.可随时同步更新 github 仓库
在github上下载clone源码过慢的问题,甚至失败问题。加速解决方案如下:
方法一、使用"码云"中转下载。
使用’码云’平台做中转,先将项目导入’码云’,再从’码云’平台clone,很快。
注册登录"码云",码云。
点击右上角新建仓库的加号+,选择“从GitHub/GitLab导入仓库”菜单。
填写想clone的仓库地址。
码云clone项目非常快,等待导入完成。
导入完成后,使用码云生成的地址clone项目。
重新关联远程地址。
文本编辑器打开项目.g
                                    (点击上方蓝字,快速关注我们)转自:开源中国、solidot、cnBeta、腾讯科技等0、GNOME 迁移到 GitLabGNOME 基金会宣布它完成了到 GitLab ...