format_version: 3
pipelines:
  SLE15.SP4.RelPkgs:
    group: SLE15.SP4.Target
    lock_behavior: unlockWhenFinished
    timer:
      spec: 0 10 * ? * *
      only_on_changes: false
    materials:
      git:
        git: https://github.com/openSUSE/openSUSE-release-tools.git
    environment_variables:
      OSC_CONFIG: /home/go/config/oscrc-staging-bot
    stages:
    - Create.Release.Packages:
        approval: manual
        resources:
        - repo-checker
        tasks:
        - script: ./pkglistgen.py -A https://api.suse.de update_and_solve -p SUSE:SLE-15-SP4:GA -s target --only-release-packages --force

  SLE15.SP4.Package.Lists:
    group: SLE15.SP4.Target
    lock_behavior: unlockWhenFinished
    materials:
      repos:
        git: git://botmaster.suse.de/suse-repos.git
        auto_update: true
        destination: repos
        whitelist:
          - SUSE:SLE-15-SP4:GA_-_standard.yaml
      scripts:
        git: https://github.com/openSUSE/openSUSE-release-tools.git
        auto_update: true
        destination: scripts
        whitelist:
          - DO_NOT_TRIGGER
    environment_variables:
      OSC_CONFIG: /home/go/config/oscrc-staging-bot
    stages:
    - Update.000product:
        resources:
        - repo-checker
        tasks:
        - script: ./scripts/pkglistgen.py -A https://api.suse.de --debug update_and_solve -p SUSE:SLE-15-SP4:GA -s target --force

  SLE15.SP4.Images:
    group: SLE15.SP4.Target
    lock_behavior: unlockWhenFinished
    materials:
      repos:
        git: git://botmaster.suse.de/suse-repos.git
        auto_update: true
        whitelist:
          - SUSE:SLE-15-SP4:GA_-_images.yaml
        destination: repos
      scripts:
        auto_update: true
        git: https://github.com/openSUSE/openSUSE-release-tools.git
        whitelist:
          - DO_NOT_TRIGGER
        destination: scripts
    environment_variables:
      OSC_CONFIG: /home/go/config/oscrc-staging-bot
    stages:
    - Expect.Images.To.Finish:
        resources:
        - staging-bot
        tasks:
        - script: |
            export PYTHONPATH=scripts
            ./scripts/gocd/verify-repo-built-successful.py -A https://api.suse.de -p SUSE:SLE-15-SP4:GA -r images

    - Release.Images.To.Test:
        approval: manual
        roles:
        - SLE
        environment_variables:
          OSC_CONFIG: /home/go/config/oscrc-totest-manager
        resources:
        - staging-bot
        tasks:
        - script: |-
            set -e
            PRODUCTS=$(osc -A https://api.suse.de ls SUSE:SLE-15-SP4:GA | grep "^SLES15-SP4" | grep -v release)
            for product in kiwi-templates-Minimal sles15-image 000product $PRODUCTS; do
              osc -A https://api.suse.de release SUSE:SLE-15-SP4:GA $product
            done
            sleep 600
            while (osc -A https://api.suse.de/ api "/build/SUSE:SLE-15-SP4:GA:TEST/_result?view=summary&repository=images" | grep "result project" | grep -v 'code="published" state="published">'); do
                echo PENDING
                sleep 600
            done
            osc -A https://api.suse.de/ api "/build/SUSE:SLE-15-SP4:GA:TEST/_result?view=summary&repository=images" | grep "result project" | grep 'code="published" state="published">' && echo PUBLISHED

    - Release.Images.To.Publish:
        approval: manual
        roles:
        - SLE
        environment_variables:
          OSC_CONFIG: /home/go/config/oscrc-totest-manager
        resources:
        - staging-bot
        tasks:
        - script: |-
            osc -A https://api.suse.de release SUSE:SLE-15-SP4:GA:TEST
            sleep 600
            while (osc -A https://api.suse.de/ api "/build/SUSE:SLE-15-SP4:GA:PUBLISH/_result?view=summary&repository=images" | grep "result project" | grep -v 'code="published" state="published">'); do
                echo PENDING
                sleep 600
            done
            osc -A https://api.suse.de/ api "/build/SUSE:SLE-15-SP4:GA:PUBLISH/_result?view=summary&repository=images" | grep "result project" | grep 'code="published" state="published">' && echo PUBLISHED

  SLE15.SP4.ImagesManual:
    group: SLE15.SP4.Target
    lock_behavior: unlockWhenFinished
    materials:
      repos:
        git: git://botmaster.suse.de/suse-repos.git
        auto_update: true
        whitelist:
          - SUSE:SLE-15-SP4:GA_-_images.yaml
        destination: repos
      scripts:
        auto_update: true
        git: https://github.com/openSUSE/openSUSE-release-tools.git
        whitelist:
          - DO_NOT_TRIGGER
        destination: scripts
    environment_variables:
      OSC_CONFIG: /home/go/config/oscrc-staging-bot
    stages:
    - Relase.Images.To.Test:
        approval: manual
        roles:
          - SLE
        jobs:
          Check.Images.Finish:
            resources:
              - staging-bot
            tasks:
              - script: |
                  export PYTHONPATH=scripts
                  while (! ./scripts/gocd/verify-repo-built-successful.py -A https://api.suse.de -p SUSE:SLE-15-SP4:GA -r images); do
                    sleep 300
                  done
          Release.To.Test:
            environment_variables:
              OSC_CONFIG: /home/go/config/oscrc-totest-manager
            resources:
              - staging-bot
            tasks:
              - script: |-
                  set -e
                  PRODUCTS=$(osc -A https://api.suse.de ls SUSE:SLE-15-SP4:GA | grep "^SLES15-SP4" | grep -v release)
                  for product in kiwi-templates-Minimal sles15-image 000product $PRODUCTS; do
                    osc -A https://api.suse.de release SUSE:SLE-15-SP4:GA $product
                  done

    - Release.Images.To.Publish:
        approval: manual
        roles:
          - SLE
        environment_variables:
          OSC_CONFIG: /home/go/config/oscrc-totest-manager
        resources:
          - staging-bot
        tasks:
          - script: osc -A https://api.suse.de release SUSE:SLE-15-SP4:GA:TEST
