# == 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:
      - "roles/cws-publish/*"
      - "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=
      clientSecret: !encrypted/pkcs1-oaep
        - aPpesCDB64NuY4DSECdZLmytEOEsN4RFaWB9O/ClZt/+NXvMSAJceeamCgDdpIf/S0tAK
          oiEtVN5v4XVlRjuH2aPdr3/pg6ZCo7zYyNXZzz1zUv9QBQk5C9vTZAixHpXel+kU45swA
          GQV0oTrVGHBvdqDD4Y8Bajd7kNwdwOaLyCoUg/SG/mOQS3gXq2gwugOL8rFhB34t/X9S4
          hOv7oNyk8xA7SnJZeIxBShnFvJ6/YC6oP0vcPhgS5LMfgYneROapyY68kelh+U9zfYPal
          XuWuxAaSZwYb5hs4dJlv4JFZaJRvL/ru4jHth4x7CZO5XaJH50vWCzj+7ir2cxNm819G1
          LsqCRDn3ilru+BjihMay95L7Zl+RhcCqPc6oJeb0ZmJKyReigwoz4W3yayVo1bBwLwoWc
          +5GvIi3kAw9KsE7G4UG8EkruqdSWNz5hpl6Qr+OKG4Po0+U17jMRT64DyC4OS/D+h6KDI
          UMFJD0yzTk7CDPOxNHJDMUsmT1QtFy9+ALktA72C8rga0eFzVe/d6LTnYd1C28r77XeZ7
          JJbGFETuDc0tyfSRWVMFKmI7XPMBN90jXqCrQnTva7+e4P3OD6XzysgVFQx44EO7Cs+/U
          lWmUalaK8OCYApALMtwvDd+GRVn0/SQcfnImYj/CPPFS26V/1VzE0ajF6FDhfg=
      refreshToken: !encrypted/pkcs1-oaep
        - m4a6xAWD6nrAXcnOChTKO5Z2hewyKmS/h0tWTe6b7Bpe3YGX3sCzdjg4t5noXGiA4cA1e
          5dRtM8xeki8H1QEOFkkTV567GKog+v2JH9phH9qn/I0IT627T8KC9bTdwhUPgOne4Qnwt
          c6RgleHH23uyxgKbhmCjb1BJgQvd8zl3MEFybBAz91S/+Q8YGY/XEkoYN/YuPHQA0Qm8w
          1S+fv2Rr9d8J1KZW9lSKgbGDHMK1/K/tSqGVFUW42jtrhTpdAvo3I6BYAa1IDaQcUDnBm
          cqZSFGTwK6nvhuh48L0/RHeOcOhkkp/+l9iXIBXkPCkfBbjKNiebP+My3isnaNr88dYbD
          ydRIqs9JfcnNtXhqos+4Oe3zTLE78dlJhY5mpHPYYZRZsgh2tF0f80830Gcg4dSGpf7ma
          dB5jPl1Ou16PHyRvf/+XfhykoazvUPLa8K29Nyz+1J01zrdIV55b5NVVy10WkUSdxlgq7
          kUYBmSS9vn9U1Y7BHcLBsj0uXma7HZsajs7iy3cCCtPSDluO8bllajxD21ZZBZ7a7n+Rj
          qzn0S9+j5c4YG+QasOUjyq+2/+TGFE/IGfaB70FGNrpiJ/HJRsFt145dCJzH9RPNfNEhu
          7NpNCNwJvTmpXS2pcEofs73Z7l1u4h1/VpZog/cVsMOYfm7DSho0hSX/WAQR7o=
