# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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: 'test-patch'
author: 'Apache Software Foundation'
description: 'Apache Yetus precommit patch testing'
branding:
  color: purple
  icon: feather
inputs:
  basedir:
    description: 'Directory location of source'
    required: true
    default: "${GITHUB_WORKSPACE}"
  blankseolignorefile:
    descipription: 'regex list of files to ignore blanks EOL'
    default: .yetus/blanks-eol.txt
  blankstabsignorefile:
    description: 'regex list of files to ignore tabs'
    default: .yetus/blanks-tabs.txt
  bufbasedir:
    description: 'Location where to run buf'
    default: .
  buildtool:
    description: 'Name of build tool plug-in to use'
    default: "nobuild"
  continuousimprovement:
    description: 'Pass branches that would otherwise fail'
    default: false
  excludes:
    description: 'Filename of files/directories to ignore'
    default: '.yetus/excludes.txt'
  githubtoken:
    description: 'GitHub token to use'
    required: true
    default: ''
  javahome:
    description: 'Location of the JDK to use'
    default: '/usr/lib/jvm/java-11-openjdk-amd64'
  patchdir:
    description: 'Directory location of logs, temp space, etc'
    required: true
    default: "/tmp/yetus"
  plugins:
    description: 'Fine grained control over plug-ins'
    default: 'all,-asflicense,-author,-findbugs,-gitlab,
             -jira,-shelldocs'
  project:
    description: 'Name of project to put on reports, default personality, etc'
    default: unknown
  reapermode:
    description: 'How to handle stale surefire tests'
    default: kill
  reviveconfig:
    description: 'Configuration file for revive'
    default: .revive.toml
  testsfilter:
    description: 'Only warn on these test plug-ins'
    default: ''

runs:
  using: 'docker'
  image: docker://apache/yetus:0.13.0
  args:
    - test-patch
    - --basedir=${{ inputs.basedir }}
    - --blanks-eol-ignore-file=${{ inputs.blankseolignorefile }}
    - --blanks-tabs-ignore-file=${{ inputs.blankstabsignorefile }}
    - --brief-report-file=${{ inputs.patchdir }}/brief.txt
    - --buf-basedir=${{ inputs.bufbasedir }}
    - --build-tool=${{ inputs.buildtool }}
    - --console-report-file=${{ inputs.patchdir }}/console.txt
    - --continuous-improvement=${{ inputs.continuousimprovement }}
    - --excludes=${{ inputs.excludes }}
    - --github-token=${{ inputs.githubtoken }}
    - --html-report-file=${{ inputs.patchdir }}/report.html
    - --ignore-unknown-options=true
    - --junit-report-xml=${{ inputs.patchdir }}/junit-report.xml
    - --patch-dir=${{ inputs.patchdir }}
    - --plugins=${{ inputs.plugins }}
    - --project=${{ inputs.project }}
    - --pylint-requirements=true
    - --reapermode=${{ inputs.reapermode }}
    - --report-unknown-options=false
    - --revive-config=${{ inputs.reviveconfig }}
    - --tests-filter=${{ inputs.testsfilter }}
