# == Zuul configuration file ==
#
# This file is used to configure this project and its associated jobs in Zuul.
# Zuul is the CI/CD tool which lets us check changes before they are committed,
# and build a canary version of the extension on a regular basis.
#
# More info about Zuul: https://zuul-ci.org/docs/zuul/

- job:
    name: translateselectedtext-lint
    parent: web-ext-lint
    pre-run: playbooks/lint/pre.yaml
    run: playbooks/lint/run.yaml
    irrelevant-files:
      - ".github/.*"
      - "docs/.*"
      - "OWNERS"
      - "README.md"
      - "roles/cws-publish/*"
      - "playbooks/nightly-build/*"

- job:
    name: translateselectedtext-test-nightly-build
    pre-run: playbooks/nightly-build/pre.yaml
    run: playbooks/nightly-build/test.yaml
    roles:
      - zuul: zuul/jobs
    vars:
      credentials:
        clientId: "testClientId"
        refreshToken: "testRefreshToken"
    files:
      - "roles/cws-publish/*"
      - "playbooks/nightly-build/*"

- job:
    name: translateselectedtext-nightly-build
    attempts: 1
    pre-run: playbooks/nightly-build/pre.yaml
    run: playbooks/nightly-build/run.yaml
    post-run: playbooks/nightly-build/post.yaml
    roles:
      - zuul: zuul/jobs
    secrets:
      - name: credentials
        secret: credentials_tst

- project:
    check:
      jobs:
        - translateselectedtext-test-nightly-build
        - translateselectedtext-lint
    nightly-build:
      jobs:
        - translateselectedtext-nightly-build

- secret:
    name: credentials_tst
    data:
      clientId: !encrypted/pkcs1-oaep
        - Ll3agd9RAOdk51TBvYK2aueTqcBofH2Nd9X64+i+nkt89Xv5KZ7r7WTWLhXVEUEj/L3w/
          tQLj03zuJEWMrk9Q/+JM2ajRwJNbYt/as7yMojBVCvHbBwXuXr4L7FM5v15bkLQCYZMwj
          VzwZg3jf1Fscz8WU9UmWDtqZy6KiRJULHZphO/fyaS8zYzdChw8SVlGBzoeFcafSJhVOa
          KW7UEONo7/b3XbLForU91HHiBwNdxzio9183zMF/y6qCALozYhxWi40RcO8/GON7RCFL9
          zoc1ONLtSWWl3l1ZKuIbrtfFoPhTqZyx3jBF41XYSmrV7R/p/HA8wfrlwbUimbodnYNbX
          A/iJ0wZ/AC2rcOrkfbPyopTGoqQ5HDYKevYFORGMx9vpmneXSSY4wcLZjJW4UyQbknEzl
          cBs0jB9BvyvoWeN7v8hly/YiRF+lsfuaRK9by7yoPc51mR5K5gTXlfzSZQoSnwiAB8Xis
          liwB9kGPOm58IBxjThoyFjdrn4dM9aancZ1bNuHDMLW720SKhNS48/jzPpHyjTW/JS9jS
          hVLOhqMXgy+XcvzmGBLSQ9Mokmg4vQXIMTzxlfOVWpDbx2aXd0UeSGjmPzFY5B2O3zo33
          fgcah9oH7/7MTthWM8mitLQLZNWhI6s5NtaCSv7JWPWTqMysFNFeh9Pq/6lDco=
      clientSecret: !encrypted/pkcs1-oaep
        - KKcSN8aqzy5GBGJrSHGn2rEEIIzVz5RlynpkbrMsO/b9Gpnt1kCbhnDbQPxfqyMyymr1W
          1MaZ+5SwkJUsb2IXuP7+uv+pblcfNeS+TGUmSsudh+MRMmK+qcI8NMHMmyqCO0yXD30Ws
          k7Pl4Kkr8xYdKyMMM3XHI6nqWupHgH7xQHRilrpbUMEXJUBriNrYZSjan8MmFeCeAXnaH
          KWMw508GL8lGjiLBycni4HeD/Chf6EuPcSHG4EmfyG6DQdxh6auN2pvwIX+Itrg/MSaXo
          hm5FoOADTflUz8zpZ/e4qPzelx5aFAyz0NVSaLKFbrsd0UssUmTpcjCJ2K1Byk9VbPu3R
          lzBmschuvxPbY8r/J1CQZBJ9dmKTf/gShAwYaWxQ+r+/yQhqnvcJkG5wEU2Q5iglQBSm+
          Ca5M3+UrNz7AwA3IkdqGuVbb0CKz3WIcrwEn5xQSxUWYi89Jmc84ZGWz2PrV2mQUScyQ3
          gqwGe78x4uzQv7w/L2YXiyvEfo+vzT5zTNzwlyxO560vOAyvE8U43LiG/bQrLp0Niw/Ne
          x/mf2NRM+OnZ3EPsPfIkydfU3N8VRPGanmCexZVNx/s+v0T1XwUChH9m+56xuP6pyF+4d
          qlt/4StHJbgF5btAvPoDFcexSGDT9ZSJIrVlevb/jbS3fexF1nvMLi7dsFSgI4=
      refreshToken: !encrypted/pkcs1-oaep
        - HRpPw2+zYUgFOck50oDMYjjMNkYZuW0M2ULmv+LaoWOn1WjruRvnKVSzhmHoz+edxOdPO
          msQd2BfzX2jfBXRyD2xS6snePEPxRT0idPTy/ainA54HUSwIzgIwGgavrF0hFcBbXtxEF
          ZgZRbMuH3LCptQi3xNySUtQ8hCSS0U/d1se3YA4rQGpPJlQ1EvcsC3cDYyi1iEWdqlO14
          hZMrof0ygZlSQYM/yiuZ28fryzRw2C6U0OUsBWNjGUNOHynAlKKeGg/z2LaY+5bgYebda
          /98yqBI32Gw0Oigie2kkigfeCSBp9m9zorxYkDq3GvwT1Xpf3E0MA9NvIn/2J3foRnyLZ
          0IJlCgUa3vnjhqSKQG6V7P1g8ag/t+PTkO9hkOIyRs/a7ZHkgPsPIdkjiQPykfNpy9bSf
          0x/fT54WEG7pe2AUg2H0wUdEENYT/w9eL9jRW8FDjkS1DpgGhNBwAO6kIlTlFZkCW7U7v
          /YJOmAsMRgJmUrLkFldkHiF11ko17TQ4kEEBNxVTbeIp4bOz9jJ6idCn21Ho9b9cAvDG4
          GWbG8exYS3X375uR3MbJRyCHjwNPDoDgvN9OR+QbKXZXS/vZTx4tGM/AJ2jXDrs24Nkh1
          wYxn8Y+jUthWzHh6jaFbRlHtT5uRC3ibah/nuO636PmiDBs1H6cF2t4ZidHzB8=
