diff --git a/.github/workflows/pr-changelog-check.yml b/.github/workflows/pr-changelog-check.yml new file mode 100644 index 000000000..78be9677f --- /dev/null +++ b/.github/workflows/pr-changelog-check.yml @@ -0,0 +1,14 @@ +name: Pull Request Changelog Check +on: [pull_request] +jobs: + + build: + name: Run Changelog Check + runs-on: ubuntu-latest + steps: + + - name: Check out the code + uses: actions/checkout@v2 + + - name: Changelog check + run: ./hack/changelog-check.sh diff --git a/.github/workflows/pr.yml b/.github/workflows/pr-ci-check.yml similarity index 100% rename from .github/workflows/pr.yml rename to .github/workflows/pr-ci-check.yml diff --git a/changelogs/unreleased/2613-ashish-amarnath b/changelogs/unreleased/2613-ashish-amarnath new file mode 100644 index 000000000..a01ca775f --- /dev/null +++ b/changelogs/unreleased/2613-ashish-amarnath @@ -0,0 +1 @@ +add a CI check for a changelog file diff --git a/hack/changelog-check.sh b/hack/changelog-check.sh new file mode 100755 index 000000000..bbb0260c4 --- /dev/null +++ b/hack/changelog-check.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +# Copyright 2020 the Velero contributors. +# +# Licensed 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. + +# docker-push is invoked by the CI/CD system to deploy docker images to Docker Hub. +# It will build images for all commits to master and all git tags. +# The highest, non-prerelease semantic version will also be given the `latest` tag. + +set +x + +if [[ -z "$CI" ]]; then + echo "This script is intended to be run only on Github Actions." >&2 + exit 1 +fi + +CHANGELOG_PATH='changelogs/unreleased' + +# https://help.github.com/en/actions/reference/events-that-trigger-workflows#pull-request-event-pull_request +# GITHUB_REF is something like "refs/pull/:prNumber/merge" +pr_number=$(echo $GITHUB_REF | cut -d / -f 3) + +change_log_file="${CHANGELOG_PATH}/${pr_number}-*" + +if ls ${change_log_file} 1> /dev/null 2>&1; then + echo "changelog for PR ${pr_number} exists" + exit 0 +else + echo "PR ${pr_number} is missing a changelog. Please refer https://velero.io/docs/master/code-standards/#adding-a-changelog and add a changelog." + exit 1 +fi +