# disabled until pipline is supported by LF
# FIXME this job uses pipeline, which depends on jenkins-job-builder==2.0.0.0b2

#---
# ONOS Buck Pipeline jobs

#- job:
#    branch: master
#    git-url: '$GIT_URL/$GERRIT_PROJECT'
#    stream: master
#    name: onos-buck-gerrit
#    project-type: pipeline
#    sandbox: false

#    parameters:
#      - lf-infra-parameters:
#          # TODO - this is a hack, figure out how to get these from defaults.yaml
#          project: 'onos'
#          stream: 'master'
#          branch: 'master'
#          lftools-version: '<1.0.0'

#    #TODO(BOC): use the build node from the project
#    #FIXME figure out how to run this on a slave
#    #node: 'ubuntu16.04-basebuild-8c-15g'
#    #TODO(BOC) Need build discarding
#    concurrent: true

#    pipeline-scm:
#      script-path: tools/build/jenkins/onos-buck-gerrit
#      scm:
#        - lf-infra-gerrit-scm:
#            git-url: '{git-url}'
#            refspec: '$GERRIT_REFSPEC'
#            branch: '$GERRIT_BRANCH'
#            #submodule-recursive: '{submodule-recursive}'
#            submodule-recursive: false
#            choosing-strategy: gerrit
#            #jenkins-ssh-credential: '{jenkins-ssh-credential}'
#            jenkins-ssh-credential: 'jenkins'
#            shallow-clone: true
#
#    triggers:
#      - gerrit:
#          #server-name: '{gerrit-server-name}'
#          server-name: 'ONOS Project Gerrit'
#          #trigger-on: '{obj:gerrit_verify_triggers}'
#          trigger-on:
#            - patchset-created-event:
#                exclude-drafts: true
#                exclude-trivial-rebase: false
#                exclude-no-code-change: true
#            - draft-published-event
#          projects:
#            - project-compare-type: PLAIN
#              #project-pattern: '{project}'
#              project-pattern: 'onos'
#              branches:
#                - branch-compare-type: ANT
#                  #branch-pattern: '**/{branch}'
#                  branch-pattern: '**/master'
#              #file-paths: '{obj:gerrit_trigger_file_paths}'
#
#- project:
#    name: onos-buck-gerrit
#    build-timeout: '1800'
#    build-node: 'ubuntu16.04-basebuild-8c-15g'
#    project: 'onos'
#    project-name: 'onos'
#
#    jobs:
#    - 'onos-buck-gerrit'


