- builder:
    name: merge-target-branch
    builders:
      - shell: |
          #!/bin/bash -e
          cd gerrit
          git fetch origin $TARGET_BRANCH
          git config user.name "Jenkins Build"
          git config user.email "jenkins@gerritforge.com"
          git merge --no-commit --no-edit --no-ff FETCH_HEAD

- builder:
    name: fetch-all-submodules
    builders:
      - shell: |
          #!/bin/bash -e
          set +x
          cd gerrit
          function fetch_submodules {
            # We do need to call update even if we know it will fail: the submodules git needs
            # to be initialised and made it pointing to the correct remote submodule URL
            git submodule update > /dev/null 2> /dev/null || true
            export SUBMODULES=$(git submodule status | awk '{print $2}')
            for module in $SUBMODULES
            do
              echo "Fetching all changes refs for $module ..."
              pushd $module > /dev/null
              git fetch -q origin +refs/changes/*:refs/changes/*
              popd > /dev/null
            done
          }
          git submodule init
          # Fetch submodules refs/changes as fallback action of a submodule update failure
          echo "Updating all submodules ..."
          git submodule update || ( fetch_submodules && git submodule update )

- defaults:
    name: verifier-defaults
    concurrent: true
    parameters:
      - string:
          name: CHANGE_URL
          description: "Gerrit Change URL to build"
      - string:
          name: REFSPEC
          description: "Git refspec to use for fetching changes"
      - string:
          name: BRANCH
          description: "Git SHA1 of the path-set to verify"
      - string:
          name: TARGET_BRANCH
          description: "Git target branch of the change"
      - choice:
          name: MODE
          choices:
            - reviewdb
            - disableChangeReviewDb
            - fused
            - polygerrit
          description: "Type of verification to execute"
    properties:
       - authorization:
           anonymous:
             - job-discover
             - job-read
             - job-extended-read
       - build-discarder:
           days-to-keep: 7

    scm:
      - git:
         url: https://gerrit.googlesource.com/gerrit
         refspec: $REFSPEC
         branches:
           - $BRANCH
         submodule:
           disable: true
         skip-tag: true
         basedir: gerrit
    wrappers:
      - xvfb:
          installation-name: Xvfb
          display-name: 1
          parallel-build: false
          timeout: 60
          screen: 1024x768x16
          additional-options: -fbdir /tmp
          debug: true
          shutdown-with-build: false
      - raw:
          xml: |
            <hudson.plugins.build__timeout.BuildTimeoutWrapper plugin="build-timeout@1.16">
              <strategy class="hudson.plugins.build_timeout.impl.NoActivityTimeOutStrategy">
                 <timeoutSecondsString>750</timeoutSecondsString>
              </strategy>
              <operationList>
                 <hudson.plugins.build__timeout.operations.AbortOperation/>
              </operationList>
            </hudson.plugins.build__timeout.BuildTimeoutWrapper>
      - raw:
          xml: <jenkins.plugins.logstash.LogstashBuildWrapper plugin="logstash@1.2.0"/>
    publishers:
      - groovy-postbuild:
          script: "(manager.logContains('timed out') || manager.logContains('TIMEOUT in ')) ? manager.buildAborted() : false"


- job:
    name: Gerrit-verifier-buck
    description: "Gerrit build of open change with BUCK\n"
    defaults: verifier-defaults

    builders:
      - merge-target-branch
      - fetch-all-submodules
      - shell:
         !include-raw-escape: gerrit-buck-build.sh
      - shell:
         !include-raw-escape: gerrit-buck-verifier-test.sh

    publishers:
      - archive:
          artifacts: >
            gerrit/buck-out/gen/*.war,gerrit/buck-out/gen/plugins/*/*.jar,gerrit/buck-out/gen/*api/*api.jar,
            gerrit/buck-out/gen/gerrit-acceptance-framework/*.jar

          excludes: 'gerrit/buck-out/gen/plugins/core*/**/*.jar'

- job:
    name: Gerrit-verifier-bazel
    description: "Gerrit build of open change with BUCK\n"
    defaults: verifier-defaults

    builders:
      - merge-target-branch
      - fetch-all-submodules
      - shell:
         !include-raw-escape: gerrit-bazel-build.sh
      - shell:
         !include-raw-escape: gerrit-bazel-verifier-test.sh
      - shell:
         !include-raw-escape: gerrit-bazel-cat-test-log.sh

    publishers:
      - archive:
         artifacts: >
           gerrit/bazel-bin/*.war,gerrit/bazel-genfiles/plugins/*/*.jar,
           gerrit/bazel-genfiles/*api/*api.jar,
           gerrit/bazel-genfiles/gerrit-acceptance-framework/*.jar

         excludes: 'gerrit/bazel-genfiles/plugins/core*/**/*.jar'

- job:
    name: Gerrit-codestyle
    description: "Gerrit code-style checker for an open change\n"
    defaults: verifier-defaults

    builders:
      - merge-target-branch
      - fetch-all-submodules
      - shell: |
         #!/bin/bash -xe
         cd gerrit
         echo 'Running google-java-format check...'
         git show --diff-filter=AM --name-only HEAD | grep java$ | xargs -r ~/format/google-java-format --dry-run
      - shell: |
         #!/bin/bash -xe
         cd gerrit
         if [ "$TARGET_BRANCH" == "master" ] && git show --diff-filter=AM --name-only HEAD | grep polygerrit-ui
         then
           echo 'Running PolyGerrit lint check...'
           bazel test //polygerrit-ui/app:lint_test --test_output errors
           bazel test //polygerrit-ui/app:polylint_test --test_output errors
         fi
      - shell: |
         #!/bin/bash -xe
         cd gerrit
         if [ "$TARGET_BRANCH" == "master" ] && git show --diff-filter=AM --name-only HEAD | grep polygerrit-ui
         then
           echo 'Running PolyGerrit template test...'
           bazel test //polygerrit-ui/app:all --test_tag_filters=template --test_output errors
         fi
      - shell: |
         #!/bin/bash -e
         cd gerrit
         EXITCODE=0
         for buildfile in $((git show --diff-filter=AM --name-only --pretty="" HEAD | grep --regex "WORKSPACE\|BUILD") || true)
         do
             BUILDIFIER_OUTPUT_FILE="$(mktemp)_buildifier_output.log"
             buildifier -showlog -v -mode=check $buildfile 2>&1 | tee ${BUILDIFIER_OUTPUT_FILE}
             if [[ -s ${BUILDIFIER_OUTPUT_FILE} ]]; then
                 echo "Need Formatting:"
                 echo "[$buildfile]"
                 echo "Please fix manually or run buildifier $buildfile to auto-fix."
                 buildifier -showlog -v -mode=diff $buildfile
                 rm -rf ${BUILDIFIER_OUTPUT_FILE}
                 EXITCODE=1
             fi
         done
         exit $EXITCODE

- job:
    name: 'Gerrit-verifier-change'
    project-type: flow
    concurrent: true
    needs-workspace: true
    parameters:
      - string:
          name: CHANGE_ID
          description: Gerrit Change-ID to build and verify
    scm:
      - git:
         url: https://gerrit.googlesource.com/gerrit
         branches:
           - "*/master"
         submodule:
           disable: true
         skip-tag: true
    dsl:
       !include-raw: gerrit-verifier-change.groovy
    properties:
      - build-discarder:
           days-to-keep: 7
      - inject:
           keep-build-variables: true
           keep-system-variables: true

- job:
    name: 'Gerrit-verifier-flow'
    concurrent: true
    project-type: flow
    triggers:
      - timed: 'H/5 * * * *'
    dsl:
       !include-raw: gerrit-verifier-flow.groovy
    properties:
      - build-discarder:
           days-to-keep: 1
