# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
---
generate:
    description: Generate the Sphinx documentation
    use-python: "3.11"
    platform: doc/opt
    treeherder:
        symbol: doc(generate)
        kind: test
        tier: 1
    run-on-projects: ['trunk']
    worker-type: b-linux-medium-gcp
    worker:
        docker-image: {in-tree: "lint"}
        max-run-time: 1800
        env:
            LC_ALL: C
        artifacts:
            - type: file
              name: public/docs.tar.gz
              path: /builds/worker/checkouts/gecko/docs-out/main.tar.gz
            - type: file
              name: public/trees.json
              path: /builds/worker/artifacts/trees.json
    run:
        using: run-task
        cwd: '{checkout}'
        command: >
            cp -r /build/node_modules_eslint node_modules &&
            ln -s ../tools/lint/eslint/eslint-plugin-mozilla node_modules &&
            ln -s ../tools/lint/eslint/eslint-plugin-spidermonkey-js node_modules &&
            ./mach doc --outdir docs-out --no-open --no-serve --archive --fatal-warnings --check-num-warnings --dump-trees=/builds/worker/artifacts/trees.json
        sparse-profile: sphinx-docs
    optimization:
        skip-unless-schedules: [docs]

upload:
    description: Generate and upload the Sphinx documentation
    use-python: "3.11"
    platform: doc/opt
    attributes:
        code-review: true
    treeherder:
        symbol: doc(upload)
        kind: test
        tier: 2
    run-on-projects: [mozilla-central-only]
    worker-type: b-linux-medium-gcp
    worker:
        docker-image: {in-tree: "lint"}
        max-run-time: 1800
        env:
            LC_ALL: C
            MOZ_SOURCE_DOCS_USE_GOOGLE: "1"
        taskcluster-proxy: true
        artifacts:
            - type: file
              name: public/firefox-source-docs-url.txt
              path: /builds/worker/firefox-source-docs-url.txt
            - type: file
              name: public/trees.json
              path: /builds/worker/artifacts/trees.json
    run:
        using: run-task
        cwd: '{checkout}'
        command: >
            cp -r /build/node_modules_eslint node_modules &&
            ln -s ../tools/lint/eslint/eslint-plugin-mozilla node_modules &&
            ln -s ../tools/lint/eslint/eslint-plugin-spidermonkey-js node_modules &&
            ./mach doc --upload --no-open --no-serve --fatal-warnings --write-url /builds/worker/firefox-source-docs-url.txt --dump-trees=/builds/worker/artifacts/trees.json
        sparse-profile: sphinx-docs
    scopes:
        - secrets:get:project/releng/gecko/build/level-{level}/gecko-docs-upload
    optimization:
        skip-unless-schedules: [docs]
