From c7a6dee81a86c96aa8587ac8e47e951129110837 Mon Sep 17 00:00:00 2001 From: Jamie Kyle <113370520+jamiebuilds-signal@users.noreply.github.com> Date: Thu, 13 Oct 2022 18:36:33 -0700 Subject: [PATCH] create backport check --- .github/workflows/backport-check.yml | 34 ++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/workflows/backport-check.yml diff --git a/.github/workflows/backport-check.yml b/.github/workflows/backport-check.yml new file mode 100644 index 0000000000..e9432a6bde --- /dev/null +++ b/.github/workflows/backport-check.yml @@ -0,0 +1,34 @@ +# Copyright 2022 Signal Messenger, LLC +# SPDX-License-Identifier: AGPL-3.0-only +name: Backport Check +on: + pull_request: + types: [opened, labeled, unlabeled] +jobs: + backport-check: + runs-on: ubuntu-latest + steps: + - name: Check pull request has a backport label + env: + EVENT_ACTION: ${{ github.event.action }} + EVENT_LABEL_NAME: ${{ github.event.label.name }} + EVENT_PULL_REQUEST_LABELS: ${{ toJSON(github.event.pull_request.labels.*.name) }} + shell: bash + run: | + LABELS="" + BACKPORT_LABELS="backport no-backport needs-backport needs-manual-backport" + if [ "$EVENT_ACTION" == 'opened' ]; then + LABELS="$EVENT_PULL_REQUEST_LABELS" + elif [ "$EVENT_ACTION" == 'labeled' ]; then + LABELS="\"$EVENT_LABEL_NAME\"" + fi + echo "Found labels: $LABELS" + for BACKPORT_LABEL in $BACKPORT_LABELS; do + echo "Checking for label '$BACKPORT_LABEL'" + if echo "$LABELS" | grep -q "\"$BACKPORT_LABEL\""; then + echo "Has '$BACKPORT_LABEL' label" + exit 0 + fi + done + echo "Does not have any backport label" + exit 1