diff --git a/.github/workflows/build-prs.yml b/.github/workflows/build-prs.yml index 6b1f358a397..6f9ce1a2c5e 100644 --- a/.github/workflows/build-prs.yml +++ b/.github/workflows/build-prs.yml @@ -11,6 +11,36 @@ env: GH_USER_EMAIL: 140449482+dsp-developers@users.noreply.github.com GH_USER_NAME: dsp-developers jobs: + commit_checker: + name: Run Commit Checker report + runs-on: ubuntu-latest + needs: build-pr-images + steps: + - name: Get Commits + id: get-commits + run: | + master_commit=$(cat .git/refs/remotes/origin/master) + echo "master_commit_hash=$master_commit" >> $GITHUB_OUTPUT + last_commit=$(cat .git/refs/remotes/pull/${{ github.event.pull_request.number }}/merge) + echo "last_commit_hash=$last_commit" >> $GITHUB_OUTPUT + - name: Run Commit Checker + shell: bash + env: + GH_TOKEN: ${{ secrets.GH_TOKEN_PROJECT_EDIT }} + continue-on-error: true + run: | + git config user.email "${{ env.GH_USER_EMAIL }}" + git config user.name "${{ env.GH_USER_NAME }}" + + cat <<"EOF" >> /tmp/body-file.txt + Commit Checker results: + ==== These are the results of the commit checker scans ==== + ==== If these are not commits from upstream kfp, then ==== + ==== please ensure you adhere to the commit checker formatting ==== + $(podman run -q -v ${{ github.workspace }}:/src/app-root quay.io/rmartine/commitchecker:latest --start ${{ steps.get-commits.outputs.master_commit_hash }} --end ${{ steps.get-commits.outputs.last_commit_hash }}) + EOF + + gh pr comment ${{ github.event.pull_request.number }} --body-file /tmp/body-file.txt fetch-data: name: Fetch workflow payload runs-on: ubuntu-latest diff --git a/tools/commit_checker/Dockerfile b/tools/commit_checker/Dockerfile new file mode 100644 index 00000000000..11c37458ba5 --- /dev/null +++ b/tools/commit_checker/Dockerfile @@ -0,0 +1,28 @@ +FROM registry.access.redhat.com/ubi8/go-toolset:1.20 as builder + +WORKDIR /tmp +RUN git clone https://github.com/openshift/build-machinery-go.git && \ + cd /tmp/build-machinery-go/commitchecker && \ + go build + +FROM registry.access.redhat.com/ubi8/ubi-minimal:8.9 + +WORKDIR /bin + +COPY --from=builder /tmp/build-machinery-go/commitchecker/commitchecker /bin/commitchecker +RUN microdnf install git && \ + chmod +x /bin/commitchecker && \ + mkdir -p /src/app-root + +WORKDIR /src/app-root +ENTRYPOINT ["commitchecker"] + +VOLUME ["/src/app-root"] + +LABEL name="Commit Checker tool" \ + summary="commitchecker validates a range of commits in a git repository and ensures they meet specific requirements: \ + 1. The author's email address does not start with "root@". \ + 2. The message starts with one of: \ + i. UPSTREAM: : description \ + ii. UPSTREAM: revert: \ + This is useful for repositories that are downstream forks of upstream repositories."