Github Status Checks
This a complete list of syntax and linting checks that Expeditor performs on each pull request to ensure that Expeditor will function properly for your project.
What is Expeditor?
Expeditor is a release management utility that Chef Software, Inc. uses to manage all the various software project it maintains, open source or otherwise. If you were brought to this page by a failed status check on a GitHub pull request, that means there is a configuration error in the .expeditor/config.yml file included with that project. For more information about Expeditor, please check out our Getting Started page. If at any point you have any questions, please reach out in the #expeditor channel in the Chef Community Slack.
Configuration Checks
ARTIFACT-001
Certain projects (typically those available for download on downloads.chef.io) have an assigned product_key. There are certain actions (such as built_in:promote_artifactory_artifact that require that the project have a product_key defined. Please take a look at mixlib-install’s PRODUCT_MATRIX and update the .expeditor/config.yml to specify the correct product_key.
Example of Invalid Configuration
---
subscriptions:
- workload: project_promoted:{{agent_id}}:*
actions:
- built_in:promote_artifactory_artifact
Example of Valid Configuration
---
product_key:
- chef
subscriptions:
- workload: project_promoted:{{agent_id}}:*
actions:
-built_in:promote_artifactory_artifact
ARTIFACT-002
Certain projects (typically those available for download on downloads.chef.io) have an assigned product_key. There are certain actions (such as built_in:promote_artifactory_artifact that require that the project have a product_key defined. However, one or more of the product keys that are defined in your .expeditor/config.yml file are not valid. Please take a look at mixlib-install’s PRODUCT_MATRIX and update the .expeditor/config.yml to specify the correct product_key.
Example of Invalid Configuration
---
product_key:
- chef-client
subscriptions:
- workload: project_promoted:{{agent_id}}:*
actions:
-built_in:promote_artifactory_artifact
Example of Valid Configuration
---
product_key:
- chef
subscriptions:
- workload: project_promoted:{{agent_id}}:*
actions:
-built_in:promote_artifactory_artifact
CHANGELOG-001
You have specified the built_in:update_changelog action in your .expeditor/config.yml file, but you are missing the required inline comment flags. For more information, please read the changelog configuration documentation.
Example of Valid CHANGELOG.md
<!-- latest_release -->
<!-- latest_release -->
CHANGELOG-002
You have specified the built_in:rollover_changelog action in your .expeditor/config.yml file, but you are missing the required inline comment flags. For more information, please read the changelog configuration documentation.
Example of Valid CHANGELOG.md
<!-- latest_release -->
<!-- latest_release -->
<!-- release_rollup -->
<!-- release_rollup -->
<!-- latest_stable_release -->
<!-- latest_stable_release -->
CONDITION-001
You have specified an unsupported only_if_conditions operator in your .expeditor/config.yml.
Example of Valid Configuration
---
artifact_channels:
- dev
- acceptance
- current
- stable
subscriptions:
- workload: project_promoted:{{agent_id}}:*
actions:
- bash:.expeditor/promote-services.sh
- trigger_pipeline:deploy/acceptance:
only_if_conditions:
- value_one: "{{target_channel}}"
operator: equals
value_two: acceptance
CONDITION-002
You have specified an empty or invalid value_one
or value_two
value in your only_if_conditions. Please make sure that any values using Mustache templates (e.g. {{variable}}
) are wrapped in quotes.
Example of Valid Configuration
---
artifact_channels:
- dev
- acceptance
- current
- stable
subscriptions:
- workload: project_promoted:{{agent_id}}:*
actions:
- bash:.expeditor/promote-services.sh
- trigger_pipeline:deploy/acceptance:
only_if_conditions:
- value_one: "{{target_channel}}"
operator: equals
value_two: acceptance
CONFIG-002
For clarity, it is important to list the actions in your action set in the order you expect them to be executed. You have specified one or more actions in one of your action sets that will not be executed in the order they have been specified. For more information about how action sets are executed, please read this documentation.
Example of Invalid Configuration
subscriptions:
- workload: pull_request_merged:{{github_repo}}:{{release_branch}}:*
actions:
- bash:.expeditor/generate-cli-docs.sh
- built_in:trigger_habitat_package_build
- bash:.expeditor/upload-files.sh: # we want this to happen post-commit, but `bash` defaults to pre-commit
only_if: built_in:trigger_habitat_package_build
- bash:.expeditor/generate-api-docs.sh # we want this to happen pre-commit, but it's listed after post-commit actions
Example of Valid Configuration
subscriptions:
- workload: pull_request_merged:{{github_repo}}:{{release_branch}}:*
actions:
- bash:.expeditor/generate-cli-docs.sh
- bash:.expeditor/generate-api-docs.sh # we moved this action before the post-commit actions
- built_in:trigger_habitat_package_build
- bash:.expeditor/upload-files.sh:
post_commit: true # to ensure that bash happens post-commit, we have added the post-commit filter
only_if: built_in:trigger_habitat_package_build
CONFIG-003
You have specified an invalid schedule. Please make sure you are providing a name
, description
, and cronline
. Please check out the schedule documentation for more information on what constitutes a valid schedule.
Example of Valid Configuration
schedules:
- name: sample_schedule
description: A sample schedule
cronline: "0 0 * * *"
CONFIG-005
The staging_areas setting in your .expeditor/config.yml file is invalid. Please ensure you are providing a valid name and workload.
Example of Valid Configuration
---
staging_areas:
- my_area:
workload: generic_workload_published:*
CONFIG-006
You have specified an unsupported event in one or more of your subscriptions. Please make sure that you are using of the supported events specified in our workload documentation.
CONFIG-007
You have provided an invalid value for project.alias. Please refer to the documentation to make sure you are meeting the required criteria.
CONFIG-008
One of the aliases you have provided in project.alias is already in use by another agent. Please update your list to remove the conflict.
CONFIG-011
Expeditor detected an out of bounds time with your subscription delay. Max delay is 1h
. Can not be less than 0s
.
CONFIG-012
Expeditor could not parse your workload which was trying to create a pull request. Please make sure your template file exists for the description, if set. Set pull_request: true
or provide values for title
, branch
, and description
. You can look at how to configure this here.
CONFIG-013
Expeditor no longer supports promote
and merge
actions. Please specify the correspnoding workload subscriptions instead.
Old | New |
---|---|
promote: |
project_promoted:{{agent_id}}:* |
merge_actions: |
pull_request_merged:{{github_repo}}:{{release_branch}}:* |
CONFIG-014
The option cwd
is currently not supported by Expeditor.
GEM-001
You have specified the built_in:build_gem action in your .expeditor/config.yml file, but you have not specified any rubygems.
Example of Invalid Configuration
---
subscriptions:
- workload: pull_request_merged:{{github_repo}}:{{release_branch}}:*
actions:
- built_in:build_gem
Example of Valid Configuration
---
rubygems:
- mixlib-install
subscriptions:
- workload: pull_request_merged:{{github_repo}}:{{release_branch}}:*
actions:
- built_in:build_gem
GEM-004
Expeditor does not have permission to publish one of your Rubygems. Please make sure either a) this is a brand new gem or b) the rubygems@chef.io
user has been added as an owner.
To add rubygems@chef.io
as an owner, please run the following command.
gem owner GEM_NAME --add rubygems@chef.io
HELM-001
You have not added any charts configured for us to publish.
Example of Valid Configuration
---
helm_charts:
- chart/expeditor
PIPELINE-001
You have specified one or more pipelines in your .expeditor/config.yml file, but one of the associated pipelines.#.definition file does not exist. Please make sure that the path you have specified exists, or that you have named the file correctly to match the default.
Example of Valid Configuration
---
pipelines:
- verify
- deploy/production:
definition: .expeditor/deploy_production.pipeline.yml
subscriptions:
- workload: pull_request_merged:{{github_repo}}:{{release_branch}}:*
actions:
- trigger_pipeline:deploy/production
Name to Definition Mapping
Pipeline Name | Default File |
---|---|
verify |
.expeditor/verify.pipeline.yml |
deploy/production |
.expeditor/deploy_production.pipeline.yml |
PIPELINE-002
You have specified an unsupported pipelines trigger in your .expeditor/config.yml file.
PIPELINE-003
One of the pipeline.#.definition files you have specified does not contain valid YAML or JSON. Please ensure that all your pipeline definitions contain valid YAML or JSON.
PIPELINE-004
You have specified one or more pipelines in your .expeditor/config.yml file to be a public canary. A pipeline can not be both public and a canary.
PREREQ-002
The .expeditor/config.yml file in your pull request contains invalid YAML syntax. Try using YAML Lint if you need assistance.
PROMOTE-002
You have specified a promote action for an unconfigured channel. Please make sure that you are only attempting to promote a channel you have already specified in your .expeditor/config.yml file.
Example of Invalid Configuration
---
artifact_channels:
- unstable
- current
- stable
subscriptions:
- workload: generic_workload_published:*
actions:
- promote:chef/example:main:dev
Example of Valid Configuration
---
artifact_channels:
- unstable
- current
- stable
subscriptions:
- workload: generic_workload_published:*
actions:
- promote:chef/example:main:unstable
STAGING-AREA-001
You are attempting to take the unlock_staging_area action on one of your staging_areas that you have not defined in your .expeditor/config.yml file.
UNKNOWN-001
Expeditor ran into an unexpected error when trying to validate your .expeditor/config.yml file. Please reach out to Release Engineering to help debug.
VERSION-001
You have specified the built_in:bump_version action in your .expeditor/config.yml file, but the version file you have defined (default VERSION
) does not exist. If you wish to use the default file, please create a VERSION
file in the root of your repository that contains a version number in the form of MAJOR.MINOR.BUILD
. If you are using a non-standard version file location, please make sure you have it properly configured.
Example of Non-standard Configuration
---
github:
version_file: .version
subscriptions:
- workload: pull_request_merged:{{github_repo}}:{{release_branch}}:*
actions:
- built_in:bump_version
VERSION-002
You have specified the built_in:bump_version action in your .expeditor/config.yml file, but the contents of your version file do not match the supported \d.\d.\d
(or MAJOR.MINOR.BUILD
) syntax.
Example of Unsupported Versions
1.0.0-dev
YYYYMMDDHHMMSS
Deprecated Checks
The following status checks have been deprecated and are no longer enforced.
AUTOMATE-001
You have specified the built_in:update_acc action in your .expeditor/config.yml file, but you are missing the required automate configuration.
Warning
Example of Invalid Configuration
---
subscriptions:
- workload: pull_request_merged:{{github_repo}}:{{release_branch}}:*
actions:
- built_in:update_acc
Example of Valid Configuration
---
automate:
organization: products
project: chef
subscriptions:
- workload: pull_request_merged:{{github_repo}}:{{release_branch}}:*
actions:
- built_in:update_acc
CONFIG-001
When enumerating a list of items, please provide those items as an array of strings or hashes, rather than as a hash.
CONFIG-004
Your configuration is using the deprecated artifact_actions
subscription shortcut.
CONFIG-009
Expeditor could not find the file specified in base_config.file. Please double check your configuration to make sure you’ve specified the correct repository, branch, and file name in your configuration.
CONFIG-010
Expeditor detected a cyclical reference in your base_config.
DOCKER-001
You have specified either the built_in:build_docker_image or built_in:tag_docker_image action in your .expeditor/config.yml file, but you have not specified any docker_images.
Example of Invalid Configuration
---
subscriptions:
- workload: pull_request_merged:{{github_repo}}:{{release_branch}}:*
actions:
- built_in:build_docker_image
Example of Valid Configuration
---
docker_images:
- chef
subscriptions:
- workload: pull_request_merged:{{github_repo}}:{{release_branch}}:*
actions:
- built_in:build_docker_image
HABITAT-001
Warning
GEM-002
You have specified the built_in:build_gem
action in your .expeditor/config.yml
, but you have also specified one or more product_key
s. Gems for project’s that have a product_key
are built alongside the binary artifacts, and should not be built independently by Expeditor.
GEM-003
You have specified the built_in:build_gem
action in your .expeditor/config.yml
, but you have also specified more than one rubygems
. At this point in time, Expeditor can only build rubygems projects that contain only a single gem.
PROMOTE-001
You have specified a promote action for a project other than your own. Expeditor only supports triggering promotions for your own projects.
PREREQ-001
The chef-ci
GitHub user does not have Administrator priviledges to the your GitHub repository. The chef-ci
user requires Administrator priviledges so that is can push and pull code as well as managed Webhooks.
PREREQ-003
You have specified an unsupported action in your .expeditor/config.yml.
PREREQ-004
Expeditor was unable to load the .expeditor/config.yml file from your repository. If you have opened a pull request from a fork, it’s likely that the Expeditor GitHub application does not have read
permissions on your repository. Please ensure that your repository is public, or that you grant the Expeditor GitHub application read
permissions on your forked repository. You may also want to check that your feature branch is on the latest revision of master as they may have diverged. Ensure that you are on the latest revision of the release branch by rebasing your branch.
SLACK-001
Expeditor was unable to access one or more of the channels mentioned in slack.notify_channel. Please make sure the channel exists as it has been provided in the config. If you are still receiving this error, please reach out to Release Engineering.