Page tree
Skip to end of metadata
Go to start of metadata

The Jenkins jobs are defined in ./test-infra/jenkins. These jobs are written using the Job DSL, using Apache Groovy.

Job definitions should be a simple as possible, and ideally identify a single gradle target to execute.

Testing changes

To test changes locally, without breaking the project’s job definitions, you can use Local Dockerized Jenkins.

It is possible to test a PR that includes Jenkins changes, but it is potentially destructive because the job definitions are a shared resource. To update the job definitions on a PR, use the “Run Seed Job” trigger phrase. This will cause the job definitions to be read and parsed, and they will be active until the next scheduled execution on beam_SeedJob or beam_SeedJob_Standalone.

Triggering jobs

Beam committers can trigger a job with the jenkins UI. Non-committers can trigger a job if there is a trigger phrase.

Job suffixes

Each post-commit and pre-commit job file defines several jobs with different suffixes. For pre-commits, there _Commit, _Phrase, and _Cron suffixes. The _Commit job happens with every push to a pull request. The _Phrase happens when the trigger phrase is entered as a comment in the pre-commit. The _Cron pre-commit happens post-commit on the master branch as a signal whether the pre-commit would pass without any changes.

Job labels

Most beam Jenkins jobs specify the label beam, which uses beam executors 1-15.

The performance test jobs specify the label beam-perf, which uses beam executors 16.

The website publishing job specifies the label git-websites, which allows publishing generated documentation to the asf-site branch.

  • No labels