blob: 4c4bb275319430ba7ae4e9d3da9684a4976f45e9 [file] [log] [blame]
# 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: 'Setup action'
description: 'Setup repository and configure the required steps'
inputs:
comment_phrase:
description: "The comment phrase in the PR"
required: true
github_token:
description: "The GitHub token"
required: true
github_job:
description: "The GitHub job"
required: false
default: ''
runs:
using: composite
steps:
- name: Check if the phrase is correct
shell: bash
if: github.event_name == 'issue_comment' && github.event.comment.body != inputs.comment_phrase
run: |
echo "The comment $PHRASE does not match the phrase for this instance: ${{ inputs.comment_phrase }}. Exiting."
exit 1
env:
PHRASE: "${{ github.event.comment.body }}"
- name: Check out repository code if pull request commit
shell: bash
if: ${{ github.event_name == 'pull_request_target' }}
run: |
# GitHub will automatically generate a merge commit when there are no merge conflicts.
# We first try to check that out, and fall back to checking out the tip of the pull request branch.
git fetch --depth=1 origin +refs/pull/${{ github.event.number }}/merge:refs/remotes/pull/${{ github.event.number }}/merge || \
git fetch --depth=1 origin +refs/pull/${{ github.event.number }}/head:refs/remotes/pull/${{ github.event.number }}/head
git checkout pull/${{ github.event.number }}/merge || git checkout pull/${{ github.event.number }}/head
- name: Check out repository code if comment phrase
shell: bash
if: ${{ github.event.comment.body == inputs.comment_phrase }}
run: |
# GitHub will automatically generate a merge commit when there are no merge conflicts.
# We first try to check that out, and fall back to checking out the tip of the pull request branch.
git fetch --depth=1 origin +refs/pull/${{ github.event.issue.number }}/merge:refs/remotes/pull/${{ github.event.issue.number }}/merge || \
git fetch --depth=1 origin +refs/pull/${{ github.event.issue.number }}/head:refs/remotes/pull/${{ github.event.issue.number }}/head
git checkout pull/${{ github.event.issue.number }}/merge || git checkout pull/${{ github.event.issue.number }}/head
- name: Rerun if comment phrase
if: ${{ github.event.comment.body == inputs.comment_phrase }}
uses: ./.github/actions/rerun-job-action
with:
github_token: ${{ inputs.github_token }}
github_job: ${{ inputs.github_job || github.job }}
github_repository: ${{ github.repository }}
github_current_run_id: ${{ github.run_id }}
pull_request_url: ${{ github.event.issue.pull_request.url }}
## Used for jobs that spawn docker containers and need to mount gcloud config directory
- name: expose gcloud path
shell: bash
run: |
echo KUBELET_GCLOUD_CONFIG_PATH=/var/lib/kubelet/pods/$POD_UID/volumes/kubernetes.io~empty-dir/gcloud >> $GITHUB_ENV