diff --git a/.buildkite/pipeline-resource-definitions/_template/template.yml b/.buildkite/pipeline-resource-definitions/_template/template.yml new file mode 100644 index 0000000000000..f33e738882693 --- /dev/null +++ b/.buildkite/pipeline-resource-definitions/_template/template.yml @@ -0,0 +1,72 @@ +### +# For more information on authoring pipeline definitions, +# follow the guides at https://docs.elastic.dev/ci/getting-started-with-buildkite-at-elastic +### +# yaml-language-server: $schema=https://gist.githubusercontent.com/elasticmachine/988b80dae436cafea07d9a4a460a011d/raw/rre.schema.json +apiVersion: backstage.io/v1alpha1 +kind: Resource +metadata: + # This will be the URL slug in Backstage UI as: + # https://backstage.elastic.dev/catalog/default/resource/bk-kibana-your-pipeline-name + # bk-pipeline- + name: bk-kibana-your-pipeline-name + # This will be displayed in the Backstage UI + description: '' + links: + # These are relevant links to your pipeline that will be listed in the Backstage UI + # The URL slug here is the .spec.implementation.metadata.name field slugified + - url: 'https://buildkite.com/elastic/kibana-your-pipeline-name' + title: Pipeline link +spec: + type: buildkite-pipeline + system: buildkite + # The owner team's github group name in the format 'group:' + owner: 'group:github-group-name' + implementation: + apiVersion: buildkite.elastic.dev/v1 + kind: Pipeline + metadata: + # - this will be displayed in the Buildkite UI as title + # and this will be slugified to form the URL in the Backstage UI + name: kibana / your pipeline name + # This will appear as description on the Buildkite UI + description: '' + spec: + # Environment variables that will be set for the pipeline + env: + # Slack channel to send notifications to, if ELASTIC_SLACK_NOTIFICATIONS_ENABLED = 'true' + SLACK_NOTIFICATIONS_CHANNEL: '#team-slack-channel-name' + ELASTIC_SLACK_NOTIFICATIONS_ENABLED: 'true' + + allow_rebuilds: false + branch_configuration: main + default_branch: main + repository: elastic/kibana + # Point to a pipeline implementation, detailing the pipeline steps to run + pipeline_file: .buildkite/pipelines/your-pipeline-name.yml + skip_intermediate_builds: false + provider_settings: + prefix_pull_request_fork_branch_names: false + skip_pull_request_builds_for_existing_commits: true + trigger_mode: none + # Teams and their access levels to the pipeline, + # please keep [kibana-operations, appex-qa, kibana-tech-leads] as MANAGE_BUILD_AND_READ + # and [everyone] as BUILD_AND_READ + teams: + kibana-operations: + access_level: MANAGE_BUILD_AND_READ + appex-qa: + access_level: MANAGE_BUILD_AND_READ + kibana-tech-leads: + access_level: MANAGE_BUILD_AND_READ + everyone: + access_level: BUILD_AND_READ + # Scheduled runs for the pipeline + schedules: + Daily 6 am UTC: + cronline: 0 5 * * * + message: Daily 6 am UTC + branch: main + # Optionally, set schedule-specific env-vars here + env: + SCHEDULED: 'true' diff --git a/.buildkite/pipeline-resource-definitions/fix-location-collection.ts b/.buildkite/pipeline-resource-definitions/fix-location-collection.ts index 8ca4bf50f2cd9..d4e36f2559a89 100755 --- a/.buildkite/pipeline-resource-definitions/fix-location-collection.ts +++ b/.buildkite/pipeline-resource-definitions/fix-location-collection.ts @@ -11,7 +11,7 @@ import jsYaml from 'js-yaml'; import path from 'path'; import { execSync } from 'child_process'; -const EXCLUDE_LIST = ['locations.yml']; +const EXCLUDE_LIST = ['locations.yml', '_template/template.yml']; const REPO_FILES_BASE = 'https://github.com/elastic/kibana/blob/main'; type BackstageLocationResource = object & { diff --git a/catalog-info.yaml b/catalog-info.yaml index 05ef4c8482bfb..95d625355d4db 100644 --- a/catalog-info.yaml +++ b/catalog-info.yaml @@ -220,3 +220,6 @@ spec: access_level: BUILD_AND_READ everyone: access_level: READ_ONLY + +# Please avoid creating new kibana pipelines in this file to avoid bloating. +# Instead, create a new file in the pipeline-resource-definitions directory, and wire it in through the locations.yml file.