mirror of
https://github.com/kata-containers/kata-containers.git
synced 2026-01-29 21:39:23 +00:00
We have two scenarios we care about this, `pull_request` and `pull_request_target` events triggered a job. `pull_request` event: When using the checkout action, it'll already provide a "rebased atop of main" repo for us, nothing else is needed, and that's basically what we already have as part of the jobs in our CI. `pull_request_target` event: This one is a little bit tricky, as the checkout action, unless passing a spsecific repo, give us the PR checked out rebased atop of the HEAD of the PR branch. Jeremi Piotrowski nicely pointed out that we could use github.event.pull_request.merge_commit_sha instead, which is the result of the PR's branch with the official repo target branch. Now, the only cases where the contributor's rebase would still be needed is when the action itself has been changed. Fixes: #7414 Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com>
61 lines
2.0 KiB
YAML
61 lines
2.0 KiB
YAML
# Copyright (c) 2020 Intel Corporation
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
|
|
name: Ensure PR has required porting labels
|
|
|
|
on:
|
|
pull_request_target:
|
|
types:
|
|
- opened
|
|
- reopened
|
|
- labeled
|
|
- unlabeled
|
|
branches:
|
|
- main
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
check-pr-porting-labels:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Install hub
|
|
if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }}
|
|
run: |
|
|
HUB_ARCH="amd64"
|
|
HUB_VER=$(curl -sL "https://api.github.com/repos/github/hub/releases/latest" |\
|
|
jq -r .tag_name | sed 's/^v//')
|
|
curl -sL \
|
|
"https://github.com/github/hub/releases/download/v${HUB_VER}/hub-linux-${HUB_ARCH}-${HUB_VER}.tgz" |\
|
|
tar xz --strip-components=2 --wildcards '*/bin/hub' && \
|
|
sudo install hub /usr/local/bin
|
|
|
|
- name: Checkout code to allow hub to communicate with the project
|
|
if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }}
|
|
uses: actions/checkout@v3
|
|
with:
|
|
ref: ${{ github.event.pull_request.merge_commit_sha }}
|
|
|
|
- name: Install porting checker script
|
|
run: |
|
|
# Clone into a temporary directory to avoid overwriting
|
|
# any existing github directory.
|
|
pushd $(mktemp -d) &>/dev/null
|
|
git clone --single-branch --depth 1 "https://github.com/kata-containers/.github" && cd .github/scripts
|
|
sudo install pr-porting-checks.sh /usr/local/bin
|
|
popd &>/dev/null
|
|
|
|
- name: Stop PR being merged unless it has a correct set of porting labels
|
|
if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }}
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.KATA_GITHUB_ACTIONS_TOKEN }}
|
|
run: |
|
|
pr=${{ github.event.number }}
|
|
repo=${{ github.repository }}
|
|
|
|
pr-porting-checks.sh "$pr" "$repo"
|