# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: Create check
description: Creates a check visible on a commit SHA for a pull request.

inputs:
  sha:
    description: The commit SHA to create the check for.
    required: true
  name:
    description: Name of the check created by this workflow.
    default: ${{ github.job }}
  status:
    description: One of "queued", "in_progress", "success", "failure", "action_required", "cancelled", "neutral", "success", "skipped", or "timed_out".
    default: queued
  title:
    description: The title of the check, this appears in the "progress" of the check UI.
  job-name:
    description: Name of the job to redirect by the check.
    default: ${{ github.job }}
  repository-owner:
    description: The owner of the repository.
    default: ${{ github.repository_owner }}
  repository-name:
    description: The name of the repository.
    default: ${{ github.event.repository.name }}
  if:
    description: If true the check is created, otherwise it is skipped.
    default: "true"

outputs:
  check:
    description: The whole check in JSON.
    value: ${{ steps.check.outputs.check }}

runs:
  using: composite
  steps:
    - name: Get job
      uses: GoogleCloudPlatform/cloud-samples-tools/actions/steps/get-job@v0.2.5
      if: inputs.if
      id: job
      with:
        job-name: ${{ inputs.job-name }}
    - name: Create check ${{ inputs.check-status }}
      uses: GoogleCloudPlatform/cloud-samples-tools/actions/steps/create-status@v0.2.5
      id: check
      with:
        sha: ${{ inputs.sha }}
        name: ${{ inputs.name }}
        status: ${{ inputs.status }}
        title: ${{ inputs.title }}
        url: ${{ steps.job.outputs.url }}
        repository-name: ${{ inputs.repository-name }}
        repository-owner: ${{ inputs.repository-owner }}
        if: ${{ inputs.if }}
