- defaults:
    name: torbrowser-launcher_setup
    project-type: freestyle
    triggers:
      - timed: '{my_timed}'
    sb_desc: torbrowser-launcher builds
    properties:
      - sidebar: &sb01
          url: https://jenkins.debian.net/userContent/about.html
          text: About jenkins.debian.net
          icon: /userContent/images/debian-swirl-24x24.png
      - sidebar: &sb10
          url: https://jenkins.debian.net/view/torbrowser/
          text: '{sb_desc} jobs'
          icon: /userContent/images/debian-jenkins-24x24.png
      - sidebar: &sb99
          url: http://www.profitbricks.co.uk
          text: Sponsored by Profitbricks
          icon: /userContent/images/profitbricks-24x24.png
    description: '{my_description}<br>Job  configuration source is <a href="https://anonscm.debian.org/git/qa/jenkins.debian.net.git/tree/job-cfg/torbrowser-launcher.yaml">torbrowser-launcher.yaml</a>.<br>Results are available at <a href="https://torbrowser-launcher.debian.net/">https://torbrowser-launcher.debian.net</a>.'
    logrotate:
      daysToKeep: 90
      numToKeep: 30
      artifactDaysToKeep: -1
      artifactNumToKeep: -1
    builders:
      - shell: '{my_shell}'
    publishers:
      - logparser:
          parse-rules: '/srv/jenkins/logparse/torbrowser-launcher.rules'
          unstable-on-warning: 'true'
          fail-on-error: 'true'
      - email:
          recipients: '{my_recipients}'
    node: '{my_node}'

- defaults:
    name: torbrowser-launcher_git
    project-type: freestyle
    triggers:
      - pollscm:
          cron: '*/6 * * * *'
      - timed: '{my_timed}'
    sb_desc: torbrowser-launcher
    properties:
      - sidebar: *sb01
      - sidebar: *sb10
      - sidebar: *sb99
      - throttle:
          max-total: 3
          max-per-node: 1
          enabled: true
          option: category
          categories:
            - torbrowser-launcher
    description: '{my_description}<br>Job  configuration source is <a href="https://anonscm.debian.org/git/qa/jenkins.debian.net.git/tree/job-cfg/torbrowser-launcher.yaml">torbrowser-launcher.yaml</a>.<br>Results are available at <a href="https://torbrowser-launcher.debian.net/">https://torbrowser-launcher.debian.net</a>.'
    logrotate:
      daysToKeep: 90
      numToKeep: 20
      artifactDaysToKeep: -1
      artifactNumToKeep: -1
    builders:
      - shell: '{my_shell} {my_gitbranch}'
    publishers:
      - logparser:
          parse-rules: '/srv/jenkins/logparse/torbrowser-launcher.rules'
          unstable-on-warning: 'true'
          fail-on-error: 'true'
      - archive:
          artifacts: 'results/*.*'
          latest-only: false
      - image-gallery:
          - title: '{my_description}'
            includes: 'results/screenshot_*.png'
            image-width: 300
      - email:
          recipients: '{my_recipients}'
      - naginator:
          progressive-delay-increment: 5
          progressive-delay-maximum: 15
          max-failed-builds: 5
          regular-expression: 'Caused by: hudson.plugins.git.GitException: Command "git fetch'
    wrappers:
      - live-screenshot
    scm:
      - git:
          url: '{my_gitrepo}'
          branches:
            - '{my_gitbranch}'
    node: '{my_node}'

- defaults:
    name: torbrowser-launcher_packages
    project-type: freestyle
    triggers:
      - timed: '{my_timed}'
    sb_desc: torbrowser-launcher
    properties:
      - sidebar: *sb01
      - sidebar: *sb10
      - sidebar: *sb99
      - throttle:
          max-total: 3
          max-per-node: 1
          enabled: true
          option: category
          categories:
            - torbrowser-launcher
    description: '{my_description}<br>Job  configuration source is <a href="https://anonscm.debian.org/git/qa/jenkins.debian.net.git/tree/job-cfg/torbrowser-launcher.yaml">torbrowser-launcher.yaml</a>.<br>Results are available at <a href="https://torbrowser-launcher.debian.net/">https://torbrowser-launcher.debian.net</a>.'
    logrotate:
      daysToKeep: 90
      numToKeep: 20
      artifactDaysToKeep: -1
      artifactNumToKeep: -1
    builders:
      - shell: '{my_shell}'
    publishers:
      - logparser:
          parse-rules: '/srv/jenkins/logparse/torbrowser-launcher.rules'
          unstable-on-warning: 'true'
          fail-on-error: 'true'
      - archive:
          artifacts: 'results/*.*'
          latest-only: false
      - image-gallery:
          - title: '{my_description}'
            includes: 'results/screenshot_*.png'
            image-width: 300
      - email:
          recipients: '{my_recipients}'
    wrappers:
      - live-screenshot
    node: '{my_node}'

- job-template:
    defaults: torbrowser-launcher_setup
    name: '{name}_setup_schroot_{dist}_amd64'

- job-template:
    defaults: torbrowser-launcher_packages
    name: '{name}_test_on_{dist}_amd64{opt_name}'

- job-template:
    defaults: torbrowser-launcher_git
    name: '{name}_test_on_{dist}_amd64_from_git_branch_{g_i_t_branch}'

- job-template:
    defaults: torbrowser-launcher_git
    name: '{name}_test_on_unstable_amd64_from_git_branch_upstream_master'


- project:
    name: torbrowser-launcher
    my_weekday: '*'
    my_prefix: ' torbrowser-launcher'
    my_postfix: ''
    my_recipients: 'u@451f.org'
    my_node: ''
    jobs:
        - '{name}_setup_schroot_{dist}_amd64':
            dist:
              - unstable:   { my_hour: 1 }
              - stretch:    { my_hour: 2 }
              - jessie:     { my_hour: 3 }
              - wheezy:     { my_hour: 4, my_weekday: 2,
                              my_prefix: '',
                              my_postfix:  ' python python-gtk2 python-psutil python-twisted python-lzma gnupg wmctrl' }
            my_description: 'Setup {dist}/amd64 schroot for testing torbrowser-launcher.'
            my_timed: '42 {my_hour} * * {my_weekday}'
            my_shell: '/srv/jenkins/bin/schroot-create.sh torbrowser-launcher torbrowser-launcher-{dist} {dist}{my_prefix} awesome dbus xterm x11-utils x11-xserver-utils feh libnotify-bin figlet build-essential fakeroot devscripts git-buildpackage lintian python-all debhelper dh-apparmor lsb-release iceweasel ca-certificates{my_postfix}'
        - '{name}_test_on_{dist}_amd64{opt_name}':
            opt_name: ''
            opt_arg: ''
            opt_desc: 'and'
            my_wday: '*'
            dist:
              #- experimental:   { my_hour: 1 }
              - unstable:   { my_hour: 2 }
              - unstable:   { my_hour: 2, opt_name: 'via_tor', my_opt_desc: ' (download via tor)', opt_arg: ' via_tor' }
              #- stretch:    { my_hour: 3 }
              #- stretch:    { my_hour: 3, opt_name: '_via_tor', my_opt_desc: ' (download via tor)', opt_arg: ' via_tor' }
              - jessie:     { my_hour: 4 }
              - jessie:     { my_hour: 4, opt_name: '_via_tor', my_opt_desc: ' (download via tor)', opt_arg: ' via_tor' }
              - jessie:     { my_hour: 4, my_wday: 2, opt_name: '_from_backports', opt_desc: 'backports', opt_arg: ' backports' }
              - wheezy:     { my_hour: 5, my_wday: 2, opt_name: '_from_backports', opt_desc: 'backports', opt_arg: ' backports' }
              - stretch:    { my_hour: 3, my_wday: 2, opt_name: '_from_unstable',  opt_desc: 'unstable',  opt_arg: ' unstable'  }
              #- jessie:     { my_hour: 4, my_wday: 2, opt_name: '_from_experimental',  opt_desc: 'experimental',  opt_arg: ' experimental'  }
              - jessie:     { my_hour: 4, my_wday: 2, opt_name: '_from_unstable',  opt_desc: 'unstable',  opt_arg: ' unstable'  }
              #- jessie:     { my_hour: 4, my_wday: 2, opt_name: '_from_stretch',   opt_desc: 'stretch',   opt_arg: ' stretch'   }
            my_description: 'Test torbrowser-launcher from {opt_desc} on {dist}/amd64.'
            my_timed: '23 {my_hour} * * {my_wday}'
            my_shell: '/srv/jenkins/bin/test_torbrowser-launcher.sh {dist}{opt_arg}'
        - '{name}_test_on_{dist}_amd64_from_git_branch_{g_i_t_branch}':
            my_description: 'Test torbrowser-launcher{my_opt_desc} on {dist}/amd64 using the branch {my_gitbranch}.'
            my_timed: '23 {my_hour} 1 * *'
            my_gitrepo: 'git://git.debian.org/pkg-privacy/packages/torbrowser-launcher.git'
            my_opt_arg: ''
            my_opt_desc: ''
            g_i_t_branch:
              #- 'debian_experimental': { my_gitbranch: 'debian/experimental',
              #                           dist: unstable, my_hour: 2 }
              #- 'debian_experimental': { my_gitbranch: 'debian/experimental',
              #                          dist: jessie,   my_hour: 4 }
              - 'debian_sid':          { my_gitbranch: 'debian/sid',
                                        dist: unstable, my_hour: 2 }
              - 'debian_sid':          { my_gitbranch: 'debian/sid',
                                        dist: stretch,  my_hour: 3 }
              - 'debian_sid':          { my_gitbranch: 'debian/sid',
                                        dist: jessie,   my_hour: 4 }
              - 'debian_jessie':       { my_gitbranch: 'debian/jessie',
                                        dist: jessie,   my_hour: 4 }
              #- 'debian_jessie_proposed':          { my_gitbranch: 'debian/jessie-proposed',
              #                          dist: jessie, my_hour: 2 }
              - 'debian_jessie_download_via_tor':  { my_gitbranch: 'debian/jessie',
                                        my_opt_arg: ' via_tor', my_opt_desc: ' (download via tor)',
                                        dist: jessie,   my_hour: 4 }
              - 'debian_sid_download_via_tor':  { my_gitbranch: 'debian/sid',
                                        my_opt_arg: ' via_tor', my_opt_desc: ' (download via tor)',
                                        dist: jessie,   my_hour: 4 }
              - 'debian_jessie_with_broken_settings': { my_gitbranch: 'debian/jessie',
                                        my_opt_arg: ' broken_settings', my_opt_desc: ' with a broken user configuration',
                                        dist: jessie,   my_hour: 4 }
            my_shell: '/srv/jenkins/bin/test_torbrowser-launcher.sh{my_opt_arg} {dist} git'


        - '{name}_test_on_unstable_amd64_from_git_branch_upstream_master':
            my_description: 'Test torbrowser-launcher on unstable/amd64 using the upstream master branch, in which the debian/sid branch is merged into.'
            my_timed: '23 2 * * *'
            my_gitrepo: 'git://github.com/micahflee/torbrowser-launcher'
            my_gitbranch: 'master'
            my_shell: '/srv/jenkins/bin/test_torbrowser-launcher.sh unstable git merge debian/sid'