# Declare a Backstage Component that represents your application.
---
# yaml-language-server: $schema=https://json.schemastore.org/catalog-info.json
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
  name: golang-crossbuild

spec:
  type: tool
  owner: group:ingest-fp
  system: platform-ingest
  lifecycle: production

---
# yaml-language-server: $schema=https://gist.githubusercontent.com/elasticmachine/988b80dae436cafea07d9a4a460a011d/raw/e57ee3bed7a6f73077a3f55a38e76e40ec87a7cf/rre.schema.json
apiVersion: backstage.io/v1alpha1
kind: Resource
metadata:
  name: buildkite-pipeline-golang-crossbuild
  description: 'Pipeline for the golang-crossbuild project'
  links:
    - title: Pipeline
      url: https://buildkite.com/elastic/golang-crossbuild

spec:
  type: buildkite-pipeline
  owner: group:ingest-fp
  system: buildkite
  implementation:
    apiVersion: buildkite.elastic.dev/v1
    kind: Pipeline
    metadata:
      name: golang-crossbuild
      description: 'Pipeline for the golang-crossbuild project'
    spec:
      branch_configuration: "main 1.*" # temporarily disable to build PRs from forks
      pipeline_file: ".buildkite/pipeline.yml"
      maximum_timeout_in_minutes: 120
      provider_settings:
        build_tags: true
        publish_commit_status: true
        build_pull_request_forks: false
        build_pull_requests: true # requires filter_enabled and filter_condition settings as below when used with buildkite-pr-bot
        filter_enabled: true
        filter_condition: >-
          build.pull_request.id == null || (build.creator.name == 'elasticmachine' && build.pull_request.id != null)
      repository: elastic/golang-crossbuild
      cancel_intermediate_builds: true
      cancel_intermediate_builds_branch_filter: '!main !1.*'
      skip_intermediate_builds: true
      skip_intermediate_builds_branch_filter: '!main !1.*'
      env:
         ELASTIC_PR_COMMENTS_ENABLED: 'true'
      teams:
        ingest-fp:
          access_level: MANAGE_BUILD_AND_READ
        observablt-robots:
          access_level: BUILD_AND_READ
        everyone:
          access_level: READ_ONLY
      schedules:
        Daily:
          branch: main
          cronline: "0 12 * * * America/New_York"
          message: "Builds once per day"

---
# yaml-language-server: $schema=https://gist.githubusercontent.com/elasticmachine/988b80dae436cafea07d9a4a460a011d/raw/e57ee3bed7a6f73077a3f55a38e76e40ec87a7cf/rre.schema.json
apiVersion: backstage.io/v1alpha1
kind: Resource
metadata:
  name: buildkite-pipeline-llvm-apple-version
  description: "Pipeline for LLVM Apple version"
  links:
    - title: Pipeline
      url: https://buildkite.com/elastic/llvm-apple

spec:
  type: buildkite-pipeline
  owner: group:ingest-fp
  system: buildkite
  implementation:
    apiVersion: buildkite.elastic.dev/v1
    kind: Pipeline
    metadata:
      name: llvm-apple
      description: "Pipeline for LLVM Apple version"
    spec:
      branch_configuration: "main 1.*" # temporarily disable to build PRs from forks
      pipeline_file: ".buildkite/llvm-apple-pipeline.yml"
      maximum_timeout_in_minutes: 360 # cmake is taking at least 4h to run
      provider_settings:
        build_tags: true
        publish_commit_status: true
        build_pull_request_forks: false
        build_pull_requests: true # requires filter_enabled and filter_condition settings as below when used with buildkite-pr-bot
        filter_enabled: true
        filter_condition: >-
          build.pull_request.id == null || (build.creator.name == 'elasticmachine' && build.pull_request.id != null)
      repository: elastic/golang-crossbuild
      cancel_intermediate_builds: true
      cancel_intermediate_builds_branch_filter: '!main'
      skip_intermediate_builds: true
      skip_intermediate_builds_branch_filter: '!main'
      env:
        ELASTIC_PR_COMMENTS_ENABLED: 'false'
      teams:
        ingest-fp:
          access_level: MANAGE_BUILD_AND_READ
        observablt-robots:
          access_level: BUILD_AND_READ
        everyone:
          access_level: READ_ONLY

---
# yaml-language-server: $schema=https://gist.githubusercontent.com/elasticmachine/988b80dae436cafea07d9a4a460a011d/raw/e57ee3bed7a6f73077a3f55a38e76e40ec87a7cf/rre.schema.json
apiVersion: backstage.io/v1alpha1
kind: Resource
metadata:
  name: buildkite-pipeline-fpm
  description: "Pipeline for FPM (packaging made simple)"
  links:
    - title: Pipeline
      url: https://buildkite.com/elastic/fpm

spec:
  type: buildkite-pipeline
  owner: group:ingest-fp
  system: buildkite
  implementation:
    apiVersion: buildkite.elastic.dev/v1
    kind: Pipeline
    metadata:
      name: fpm
      description: "Pipeline for FPM (packaging made simple)"
    spec:
      branch_configuration: "main 1.*" # temporarily disable to build PRs from forks
      pipeline_file: ".buildkite/fpm-pipeline.yml"
      maximum_timeout_in_minutes: 120
      provider_settings:
        build_tags: true
        publish_commit_status: true
        build_pull_request_forks: false
        build_pull_requests: true # requires filter_enabled and filter_condition settings as below when used with buildkite-pr-bot
        filter_enabled: true
        filter_condition: >-
          build.pull_request.id == null || (build.creator.name == 'elasticmachine' && build.pull_request.id != null)
      repository: elastic/golang-crossbuild
      cancel_intermediate_builds: true
      cancel_intermediate_builds_branch_filter: '!main'
      skip_intermediate_builds: true
      skip_intermediate_builds_branch_filter: '!main'
      env:
        ELASTIC_PR_COMMENTS_ENABLED: 'false'
      teams:
        ingest-fp:
          access_level: MANAGE_BUILD_AND_READ
        observablt-robots:
          access_level: BUILD_AND_READ
        everyone:
          access_level: READ_ONLY
