# == 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: infinitegforums-lint
    parent: web-ext-lint
    pre-run: playbooks/lint/pre.yaml
    run: playbooks/lint/run.yaml
    irrelevant-files:
      - ".github/.*"
      - "docs/.*"
      - "OWNERS"
      - "README.md"
      - "i18n-config.toml"
      - "cws/.*"
      - "roles/cws-publish/*"
      - "roles/fetch-cws-log/*"
      - "playbooks/nightly-build/*"

- job:
    name: infinitegforums-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:
      - ".zuul.yaml"
      - "roles/cws-publish/*"
      - "roles/fetch-cws-log/*"
      - "playbooks/nightly-build/*"

- job:
    name: infinitegforums-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_twpt

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

- secret:
    name: credentials_twpt
    data:
      clientId: !encrypted/pkcs1-oaep
        - IwVBqQ6KQ5mnoc3vS5Ksip3s0RyrQob5gU8oMNIO7vh7wWQiR0LZiiHEkiZ/LKRAzw5CG
          fI63YpqEtX5n2UWQ3b4H340g+r0rgNcyCGs9vG3AUlIj3977NysQFkJL1Vz+O9yuyhIr4
          inDDjzQvlNyUBLL1BNk+uWgwJFI8D821couOtHy0Ky4S3EyvVFYys1IhLQIp3eBW5fX5G
          /glIddp+2wDNxShPfrJkI3O8v3mxjHBQn6WtzYXKNPZo41KnHGo/RSjONGA4RkW70su+L
          xbm6dgOBqWa3puWkcJhoUPeqbBf/ImnNSfEfq5m3cSHWZ4VDCMi0oDJJQYQlYkJqH1nFK
          xz4i+L02GuVWFRozzS84wii8wG1PDs1MzpGSIYtSrcfVgoBtGZpbo9gSrYQ7PQCKS/a/r
          CUMweQ+udTinjrXPDfmCMsMq7GrwoDqxD+PEx76Cf9mx3Z/iPEw8HR+RSEEYQCKg+cLfl
          DoetOmLny3wm2mJrNY2Nl9wYLI9EYX9VQXB0bfJQ2fns77yQdAGezNsxKLol9NfiPfBF6
          K4gKcLW7rK+IdXKxta9lTVoljiwGfi9nC7I5qXstuxkZuLQk+zhfBpCm8cuUIkiO/ugjw
          bxGdisI2hFqhvwoCPxKx4LlJgL15yDmna1eCvkiTBfGdUXHNUm2zad/C2P/c7w=
      refreshToken: !encrypted/pkcs1-oaep
        - LYjGAWkAoUz/r/w44yWrpxnl3boCZg+XFEVFnHTOkRqhzxH/eg6MHIRo4DsR5rwJrrVKe
          02/i/PiLM96W8JtFzMii0WGwsyuhbkd5Jz2GhxjM9Sl6AJ+EL+lAg1CGwXeleNlNyZma8
          Ptwwd+4gF6IVYS4qf2Hjh/S9JgSTeKlenZzFYBb/uNApcRiqUW5isTlzvD3R47DEdFBGV
          iOIS6lO4uujw3ioTbL278xZetq0MX3fIhnvSZgjk3gqBta/Rwj+PdC9i+6EhSf7gjqGGL
          phmq4BnuunGqeH3KL2R9jp26v9YVNKABliPNb+HUm1TgkztKoWVVbKorZaxmMjQ/Hy/lK
          HCGVnER2D0XpZeItZa7f30UBVd7arATvKzRkbfkoLOWESfrEMpW2/dt8OQjlCNVZB+om+
          R5WAtMpjshXTzLJ0aP2GgHzw52eLHBHmMq6XRJ7tpF9dkl8f/WRfpWKq3/aHEoTJTZRYt
          CBAkAq6PLMILsYe/dSuF/OpsQ3GV7O7g75n6lqgkVMAazeKZD68PpOnhMY6bOnMoKpjZi
          dQsynUpRVGqRipigZc0McdnT7YtVPcINqDEEa357tqIpP7RoJlJA/z7gIaFjs7X9czh1R
          DFBPud6vdkZ4QlyqSFxqpWToMi0e/24RwuGvSGvLx2Vxt4gl//SCW5KdI4AtRg=
