Как прервать задание Google Cloud build, если проверка качества SonarQube 7.8 не удалась - PullRequest
1 голос
/ 14 июля 2020

Я использую приведенный ниже код в файле cloudbuild.yaml. Но это дает синтаксическую ошибку и дает сбой. Пожалуйста, предложите.

steps:
 
#build jar file 
- name: maven:3.6.1-jdk-8
  entrypoint : mvn
  args: ['package', '-q']
  dir: 'dataflows/generic/pubsub-sftp/src'
  id: 'build-jar'
  
#static code analysis by sonarqube
- name: maven:3.6.1-jdk-8
  entrypoint: bash
  args:
    - -c
    - |
      unset MAVEN_CONFIG \
      && echo "104.199.71.165 sonarqube.ct.blue.cdtapps.com" > /etc/hosts \
      && mvn sonar:sonar -q -Dsonar.login=5531b1a2d571c0482a3d89f605830e08ccf5f850 \
      '-Dsonar.projectKey=odp.df.pubsub-sftp' \
      '-Dsonar.projectName=ODP-DF-PUBSUB-SFTP' \
      '-Dsonar.host.url=https://sonarqube.ct.blue.cdtapps.com' \
      '-Dsonar.qualitygate.wait=true' \
  allow_failure: true
  dir: 'dataflows/generic/pubsub-sftp/src'
  id: 'sonarqube-analysis'
  
#Move jar to artifactory
- name: gcr.io/cloud-builders/gcloud
  entrypoint: 'bash'
  args: ['-c', 'curl -u $$ARTIFACTORY_CREDENTIALS -X PUT "https://artifactory.build.ingka.ikea.com/artifactory/$_ARTIFACTORY_REPO/$_PACKAGE_NAME/pubsub-sftp-$BRANCH_NAME.jar" -T pipeline-bundled-0.1.jar']
  dir: 'dataflows/generic/pubsub-sftp/src/pipeline/target'  
  secretEnv: ['ARTIFACTORY_CREDENTIALS']

1 Ответ

1 голос
/ 14 июля 2020

На вашем cloudbuild.yaml есть некоторые проблемы с синтаксисом. Найдите время, чтобы взглянуть на соответствующий раздел документации относительно синтаксиса. Обратите особое внимание на то, как вы обрабатываете замены и вашу переменную secretEnv . Обратите внимание, что для секретов вам потребуется использовать Cloud KMS или Secret Manager .

Следующая модификация вашего файла cloudbuild.yaml предполагает, что вы выполнили соответствующие инструкции , чтобы используйте Cloud KMS (используйте его в качестве основы для внесения соответствующих изменений, необходимых в соответствии с вашей конкретной c средой):

steps:
 
#build jar file 
- name: 'maven:3.6.1-jdk-8'
  entrypoint : 'mvn'
  args: ['package', '-q']
  dir: 'dataflows/generic/pubsub-sftp/src'
  id: 'build-jar'
  
#static code analysis by sonarqube
- name: 'maven:3.6.1-jdk-8'
  entrypoint: 'bash'
  args:
    - -c
    - |
      unset MAVEN_CONFIG \
      && echo "104.199.71.165 sonarqube.ct.blue.cdtapps.com" > /etc/hosts \
      && mvn sonar:sonar -q -Dsonar.login=5531b1a2d571c0482a3d89f605830e08ccf5f850 \
      '-Dsonar.projectKey=odp.df.pubsub-sftp' \
      '-Dsonar.projectName=ODP-DF-PUBSUB-SFTP' \
      '-Dsonar.host.url=https://sonarqube.ct.blue.cdtapps.com' \
      '-Dsonar.qualitygate.wait=true' \
      'allow_failure: true'
  dir: 'dataflows/generic/pubsub-sftp/src'
  id: 'sonarqube-analysis'
  
#Move jar to artifactory
- name: 'gcr.io/cloud-builders/gcloud'
  entrypoint: 'bash'
  args: ['-c', 'curl -u $$ARTIFACTORY_CREDENTIALS -X PUT "https://artifactory.build.ingka.ikea.com/artifactory/$_ARTIFACTORY_REPO/$_PACKAGE_NAME/pubsub-sftp-$BRANCH_NAME.jar" -T pipeline-bundled-0.1.jar']
  dir: 'dataflows/generic/pubsub-sftp/src/pipeline/target'  
  secretEnv: ['ARTIFACTORY_CREDENTIALS']
#Change these fields according to your configuration
substitutions:
    _ARTIFACTORY_REPO: 'your-example-value-1'
    _PACKAGE_NAME: 'your-example-value-2'
options:
    substitution_option: 'ALLOW_LOOSE'
 #Change these fields according to your configuration
secrets:
 - kmsKeyName: projects/project-id/locations/global/keyRings/keyring-name/cryptoKeys/key-name
   secretEnv:
     ARTIFACTORY_CREDENTIALS: 'encrypted-password'
...