From 2d73ccd65baf4c52ad6779d0cf1fed544b23b6e3 Mon Sep 17 00:00:00 2001 From: s3krit Date: Tue, 28 Apr 2020 17:55:09 +0200 Subject: [PATCH] [CI] Add check for draft PRs (#5800) * Add check for draft PRs * Add necessary gitlab-ci boilerplate * fix github API url (oops!) * Add github action to retrigger pipeline * fix workflow trigger * rename trigger job Co-authored-by: Benjamin Kampmann --- .../workflows/trigger-review-pipeline.yml | 20 +++++++++++++++++++ substrate/.gitlab-ci.yml | 9 +++++++++ substrate/.maintain/gitlab/skip_if_draft.sh | 14 +++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 substrate/.github/workflows/trigger-review-pipeline.yml create mode 100755 substrate/.maintain/gitlab/skip_if_draft.sh diff --git a/substrate/.github/workflows/trigger-review-pipeline.yml b/substrate/.github/workflows/trigger-review-pipeline.yml new file mode 100644 index 0000000000..af54ec4358 --- /dev/null +++ b/substrate/.github/workflows/trigger-review-pipeline.yml @@ -0,0 +1,20 @@ +name: Trigger pipeline for review + +on: + pull_request: + types: [ready_for_review] + +jobs: + trigger: + runs-on: ubuntu-latest + + steps: + - name: Trigger pipeline + run: | + curl -X POST \ + -F token="$TOKEN" \ + -F ref="$REF" \ + https://gitlab.parity.io/api/v4/projects/145/trigger/pipeline + env: + REF: ${{ github.event.number }} + TOKEN: ${{ secrets.GITLAB_TRIGGER_TOKEN }} diff --git a/substrate/.gitlab-ci.yml b/substrate/.gitlab-ci.yml index 4451ce63e0..215066e9cd 100644 --- a/substrate/.gitlab-ci.yml +++ b/substrate/.gitlab-ci.yml @@ -89,7 +89,16 @@ variables: - /^pre-v[0-9]+\.[0-9]+-[0-9a-f]+$/ - web +#### stage: .pre +skip-if-draft: + image: parity/tools:latest + <<: *kubernetes-build + stage: .pre + only: + - /^[0-9]+$/ # Pull requests + script: + - ./.maintain/gitlab/skip_if_draft.sh #### stage: test diff --git a/substrate/.maintain/gitlab/skip_if_draft.sh b/substrate/.maintain/gitlab/skip_if_draft.sh new file mode 100755 index 0000000000..a234a6c18e --- /dev/null +++ b/substrate/.maintain/gitlab/skip_if_draft.sh @@ -0,0 +1,14 @@ +#!/bin/sh +url="https://api.github.com/repos/paritytech/substrate/pulls/${CI_COMMIT_REF_NAME}" +echo "[+] API URL: $url" + +draft_state=$(curl "$url" | jq -r .draft) +echo "[+] Draft state: $draft_state" + +if [ "$draft_state" = 'true' ]; then + echo "[!] PR is currently a draft, stopping pipeline" + exit 1 +else + echo "[+] PR is not a draft. Proceeding with CI pipeline" + exit 0 +fi