zuul-jobs/zuul.d/js-jobs.yaml
Monty Taylor 9858cb5848 Add a job for publishing a site to netlify
Netlify has support for publishing built sites via a CLI tool. Add
support for using that.

Change-Id: Ib47ac48a386e5e93f93455ef1202fc2af970b1c9
2024-06-03 11:58:34 -07:00

459 lines
11 KiB
YAML

# Jobs listed in js-jobs.rst.
- job:
name: js-build
parent: unittests
description: |
Base job for javascript operations
Responds to these variables:
.. zuul:jobvar:: js_build_command
:default: build
Command to pass to the javascript package manager..
.. zuul:jobvar:: js_build_tool
:default: autodetected
Command to use for running the package manager, such as npm or yarn.
.. zuul:jobvar:: node_version
:default: 14
The version of Node to use.
.. zuul:jobvar:: zuul_work_dir
:default: {{ zuul.project.src_dir }}
Path to operate in.
.. zuul:jobvar:: javascript_content_dir
:default: dist
Directory, relative to zuul_work_dir, holding build content.
pre-run: playbooks/javascript/pre.yaml
run: playbooks/javascript/run.yaml
post-run: playbooks/javascript/post.yaml
vars:
js_build_command: build
node_version: 14
- job:
name: build-javascript-source-tarball
parent: js-build
description: |
Build a source tarball for a Javascript project
Responds to these variables:
.. zuul:jobvar:: node_version
:default: 14
The version of Node to use.
.. zuul:jobvar:: zuul_work_dir
:default: {{ zuul.project.src_dir }}
Path to operate in.
.. zuul:jobvar:: javascript_content_dir
:default: dist
Directory, relative to zuul_work_dir, holding build content.
vars:
js_build_command: pack
- job:
name: build-javascript-deployment
parent: js-build
description: |
Build javascript web content as it should be deployed. Publishes
a preview site to build logs as well as a tar archive of
that web content.
Responds to these variables:
.. zuul:jobvar:: js_build_command
:default: build
Command to pass to npm.
.. zuul:jobvar:: node_version
:default: 14
The version of Node to use.
.. zuul:jobvar:: zuul_work_dir
:default: {{ zuul.project.src_dir }}
Path to operate in.
.. zuul:jobvar:: javascript_content_dir
:default: dist
Directory, relative to zuul_work_dir, holding build content.
post-run: playbooks/javascript/tarball.yaml
- job:
name: publish-javascript-to-netlify
parent: build-javascript-deployment
description: |
Builds javascript site and deploys to netlify.
Responds to these variables:
.. zuul:jobvar:: js_build_command
:default: build
Command to pass to the javascript package manager..
.. zuul:jobvar:: js_build_tool
:default: autodetected
Command to use for running the package manager, such as npm or yarn.
.. zuul:jobvar:: node_version
:default: 20
The version of Node to use. Netlify CLI requires at least v18.
.. zuul:jobvar:: zuul_work_dir
:default: {{ zuul.project.src_dir }}
Path to operate in.
.. zuul:jobvar:: javascript_content_dir
:default: public
Directory, relative to zuul_work_dir, holding build content.
.. zuul:jobvar:: netlify_site_id
Site id for the site to publish. This can be found on the site
general settings page as ``API Id``.
.. zuul:rolevar:: netlify_auth
:type: dict
Complex argument which contains the netlify authentication credentials.
This is expected to come from a secret.
.. zuul:rolevar:: token
API token to use to publish the content. Instructions for creating
a token can be found at
https://docs.netlify.com/cli/get-started/#obtain-a-token-in-the-netlify-ui
post-run: playbooks/javascript/netlify-publish.yaml
vars:
node_version: 20
- job:
name: nodejs-run-test
parent: js-build
description: |
Run test using nodejs.
Responds to these variables:
.. zuul:jobvar:: node_version
:default: 14
The version of Node to use.
.. zuul:jobvar:: zuul_work_dir
:default: {{ zuul.project.src_dir }}
Path to operate in.
.. zuul:jobvar:: javascript_content_dir
:default: dist
Directory, relative to zuul_work_dir, holding build content.
vars:
js_build_command: test
- job:
name: nodejs-run-test-browser
parent: js-build
description: |
Run test using nodejs. This test also starts Xvfb for run time
tests.
Responds to these variables:
.. zuul:jobvar:: node_version
:default: 14
The version of Node to use.
.. zuul:jobvar:: zuul_work_dir
:default: {{ zuul.project.src_dir }}
Path to operate in.
.. zuul:jobvar:: javascript_content_dir
:default: dist
Directory, relative to zuul_work_dir, holding build content.
pre-run: playbooks/javascript/browser.yaml
vars:
js_build_command: test
- job:
name: nodejs-run-lint
parent: js-build
description: |
Run lint using nodejs.
Responds to these variables:
.. zuul:jobvar:: node_version
:default: 14
The version of Node to use.
.. zuul:jobvar:: zuul_work_dir
:default: {{ zuul.project.src_dir }}
Path to operate in.
.. zuul:jobvar:: javascript_content_dir
:default: dist
Directory, relative to zuul_work_dir, holding build content.
vars:
js_build_command: lint
- job:
name: nodejs-run-docs
parent: js-build
description: |
Run docs using nodejs.
Responds to these variables:
.. zuul:jobvar:: node_version
:default: 14
The version of Node to use.
.. zuul:jobvar:: zuul_work_dir
:default: {{ zuul.project.src_dir }}
Path to operate in.
post-run: playbooks/tox/docs-post.yaml
vars:
js_build_command: docs
- job:
name: nodejs-npm
parent: unittests
description: |
Base job for javascript operations using npm.
** DEPRECATED: Switch to js-build **
Responds to these variables:
.. zuul:jobvar:: npm_command
:default: build
Command to pass to npm.
.. zuul:jobvar:: node_version
:default: 6
The version of Node to use.
.. zuul:jobvar:: zuul_work_dir
:default: {{ zuul.project.src_dir }}
Path to operate in.
.. zuul:jobvar:: javascript_content_dir
:default: dist
Directory, relative to zuul_work_dir, holding build content.
pre-run: playbooks/nodejs-npm/pre.yaml
run: playbooks/nodejs-npm/run.yaml
post-run: playbooks/javascript/post.yaml
vars:
npm_command: build
- job:
name: build-javascript-tarball
parent: nodejs-npm
description: |
Build a source tarball for a Javascript project
** DEPRECATED: Switch to build-javascript-source-tarball **
Responds to these variables:
.. zuul:jobvar:: node_version
:default: 6
The version of Node to use.
.. zuul:jobvar:: zuul_work_dir
:default: {{ zuul.project.src_dir }}
Path to operate in.
.. zuul:jobvar:: javascript_content_dir
:default: dist
Directory, relative to zuul_work_dir, holding build content.
vars:
npm_command: pack
- job:
name: build-javascript-content
parent: nodejs-npm
description: |
Build javascript web content as it should be deployed.
** DEPRECATED: Please switch to build-javascript-release **
Responds to these variables:
.. zuul:jobvar:: npm_command
:default: build
Command to pass to npm.
.. zuul:jobvar:: node_version
:default: 6
The version of Node to use.
.. zuul:jobvar:: zuul_work_dir
:default: {{ zuul.project.src_dir }}
Path to operate in.
.. zuul:jobvar:: javascript_content_dir
:default: dist
Directory, relative to zuul_work_dir, holding build content.
- job:
name: build-javascript-content-tarball
parent: nodejs-npm
description: |
Build an archive of javascript web content as it should be deployed.
** DEPRECATED: Please use build-javascript-deployment **
Responds to these variables:
.. zuul:jobvar:: npm_command
:default: build
Command to pass to npm.
.. zuul:jobvar:: node_version
:default: 6
The version of Node to use.
.. zuul:jobvar:: zuul_work_dir
:default: {{ zuul.project.src_dir }}
Path to operate in.
.. zuul:jobvar:: javascript_content_dir
:default: dist
Directory, relative to zuul_work_dir, holding build content.
.. zuul:jobvar:: create_tarball_directory
Create a tarball with the contents of
create_tarball_directory (relative to zuul_work_dir).
post-run: playbooks/javascript/tarball.yaml
- job:
name: nodejs-npm-run-test
parent: nodejs-npm
description: |
Run test using nodejs. This test also starts Xvfb for run time
tests.
** DEPRECATED: Please switch to nodejs-run-test **
Responds to these variables:
.. zuul:jobvar:: node_version
:default: 6
The version of Node to use.
.. zuul:jobvar:: zuul_work_dir
:default: {{ zuul.project.src_dir }}
Path to operate in.
.. zuul:jobvar:: javascript_content_dir
:default: dist
Directory, relative to zuul_work_dir, holding build content.
pre-run: playbooks/javascript/browser.yaml
vars:
npm_command: test
- job:
name: nodejs-npm-run-lint
parent: nodejs-npm
description: |
Run lint using nodejs.
** DEPRECATED: Please switch to nodejs-run-lint **
Responds to these variables:
.. zuul:jobvar:: node_version
:default: 6
The version of Node to use.
.. zuul:jobvar:: zuul_work_dir
:default: {{ zuul.project.src_dir }}
Path to operate in.
.. zuul:jobvar:: javascript_content_dir
:default: dist
Directory, relative to zuul_work_dir, holding build content.
vars:
npm_command: lint
- job:
name: nodejs-npm-run-docs
parent: nodejs-npm
description: |
Run docs using nodejs.
** DEPRECATED: Please switch to nodejs-run-docs **
Responds to these variables:
.. zuul:jobvar:: npm_executable
:default: autodetected
Command to use for running npm, such as npm or yarn.
.. zuul:jobvar:: node_version
:default: 6
The version of Node to use.
.. zuul:jobvar:: zuul_work_dir
:default: {{ zuul.project.src_dir }}
Path to operate in.
post-run: playbooks/tox/docs-post.yaml
vars:
npm_command: docs