Skip to content

846 check license and history #86

846 check license and history

846 check license and history #86

name: Check License and History
on: # this workflow is planned to be called by the ci_pipeline and it will compare the PR files with the main
workflow_call:
workflow_dispatch:
push:
pull_request_target:
jobs:
changedfiles:
runs-on: ubuntu-latest
outputs:
output1: ${{ steps.changes.outputs.diff_list }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Get changed files
id: changes
run: |
echo ${{github.event.pull_request.head.repo.full_name}}
if [ "${{ github.event.pull_request.head.repo.full_name }}" == "speedb-io/speedb" ]; then
echo "files added or changed in a PR that came from the speedb repo: "
git diff --name-only --diff-filter=ACMRT ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} -- . ':!.github' ':!*.md'
echo "diff_list<<EOF" >> $GITHUB_OUTPUT
git diff --name-only --diff-filter=ACMRT ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} -- . ':!.github' ':!*.md' >> $GITHUB_OUTPUT
git diff --name-only --diff-filter=ACMRT remotes/origin/main HEAD -- . ':!.github' ':!*.md' >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
else
echo "added or changed files: "
git diff --name-only --diff-filter=ACMRT remotes/origin/main HEAD -- . ':!.github' ':!*.md'
echo "diff_list<<EOF" >> $GITHUB_OUTPUT
git diff --name-only --diff-filter=ACMRT remotes/origin/main HEAD -- . ':!.github' ':!*.md' >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
fi
- name: list new files
run: |
echo "New files in this PR ${{ steps.changes.outputs.diff_list }}"
lint:
runs-on: ubuntu-latest
needs: changedfiles
env:
OUTPUT1: ${{needs.changedfiles.outputs.output1}}
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Check License
run: |
exit_code=0
for file in $(echo $OUTPUT1)
do
if ! grep -qE "Copyright \(C\) 20[0-9]{2} Speedb Ltd\. All rights reserved\." "$file"; then
echo $file does not have the Apache 2.0 license header && exit_code=222
fi
done
exit $exit_code
- name: Check HISTORY PR
run: |
set +e
git diff --name-only --diff-filter=ACMRT ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }}|grep -v "\.github" |grep -q [a-z,A-Z]
if [ $? -eq "0" ]; then
history_not_in=1
git diff --name-only --diff-filter=M ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }}|grep -v "\.github" |grep -q "HISTORY.md"
if [ $? -ne "0" ]; then
echo "New files were added in this PR but the HISTORY.md file was not updated"
else
history_not_in=0
fi
exit $history_not_in
fi
echo "No files were added"
exit 0
- name: Check HISTORY WD
run: |
set +e
git diff --name-only --diff-filter=ACMRT remotes/origin/main HEAD -- . ':!.github' ':!*.md' |grep -q [a-z,A-Z]
if [ $? -eq "0" ]; then
history_not_in=1
git diff --name-only --diff-filter=ACMRT remotes/origin/main HEAD -- . ':!.github' |grep -q "HISTORY.md"
if [ $? -ne "0" ]; then
echo "New files were added in this PR but the HISTORY.md file was not updated"
else
history_not_in=0
fi
exit $history_not_in
fi
echo "No files were added"
exit 0