# Azure DevOps CD 配置备忘
## agent 说明
* 需要安装 JDK11 & Maven 3.6.x
* 需要配置 Maven 国内 镜像
~/.m2/settings.xml
    </mirrors>
     <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
    ....
  </mirrors>
* 需要配置 nexus 账号密码
~/.m2/settings.xml 配置下 nexus 账号密码
<servers>
....
                <server>
                        <id>t-nexus</id>
                        <username>dev</username>
                        <password>111</password>
                </server>
                <server>
                        <id>t-nexus-snapshots</id>
                        <username>dev</username>
                        <password>111</password>
                </server>
...
</servers>
## 配置特殊说明
由于 一个存储库下我们存放了多个项目,各自有不同的 pipeline ,所以貌似不能使用 存储库下的 yaml 文件来配置
使用经典模式配置,可以设置触发目录能达到我们的目的
## nexus docker 仓库测试
需要允许 http 镜像仓库
  "insecure-registries": [
    "http://nexus:8082"
  ],
docker tag basic-user-provider:20201208a nexus:8082/basic-user-provider:20201208a
docker push nexus:8082/basic-user-provider:20201208a
kubectl create secret docker-registry t-nexus \
  –docker-server=’http://nexus:8082/’ \
  –docker-username=dev \
  –docker-password=111\
  –docker-email=aa@aa.com
kubectl run aa –image=nexus:8082/basic-user-provider:20201208a
## 参考配置
pool:
  name: javaagent
  demands: maven
  timeoutInMinutes: 5
steps:
- task: Maven@3
  displayName: '单元测试'
  inputs:
    mavenPomFile: 'src/common-auth-provider/pom.xml'
    goals: test
- task: Maven@3
  displayName: '打包JAR'
  inputs:
    mavenPomFile: 'src/common-auth-provider/pom.xml'
    options: '-DskipTests=true'
    publishJUnitResults: false
- task: Docker@2
  displayName: buildAndPush
  inputs:
    containerRegistry: docker2
    repository: 'common-auth-provider'
    Dockerfile: 'src/common-auth-provider/devops/Dockerfile'
    buildContext: 'src/common-auth-provider/target/'
- task: KubernetesManifest@0
  displayName: deploy
  inputs:
    kubernetesServiceConnection: 10.0.4.56
    namespace: default
    manifests: 'src/common-auth-provider/devops/k8s.yaml'
    containers: 'nexus:8082/common-auth-provider:$(Build.BuildId)'
    imagePullSecrets: 't-nexus'
    rolloutStatusTimeout: 120

发表评论

电子邮件地址不会被公开。