Skip to content

Create restore_check_license_and_history.yml #64

Create restore_check_license_and_history.yml

Create restore_check_license_and_history.yml #64

name: TEST Check License and History
on:
#workflow_call:
#workflow_dispatch:
push:
#pull_request_target:
#pull_request_review:
# types: [submitted]
jobs:
changedfiles:
runs-on: ubuntu-latest
outputs:
output1: ${{ steps.changes.outputs.diff_list }}
steps:
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- name: Dump job context
env:
JOB_CONTEXT: ${{ toJson(job) }}
run: echo "$JOB_CONTEXT"
- name: Dump steps context
env:
STEPS_CONTEXT: ${{ toJson(steps) }}
run: echo "$STEPS_CONTEXT"
- name: Dump runner context
env:
RUNNER_CONTEXT: ${{ toJson(runner) }}
run: echo "$RUNNER_CONTEXT"
- name: Dump strategy context
env:
STRATEGY_CONTEXT: ${{ toJson(strategy) }}
run: echo "$STRATEGY_CONTEXT"
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Git log
run: |
git log --graph --decorate --oneline --all
- name: git branch
run: git branch
- name: git branch -a
run: git branch --all
- name: ls -l
run: |
ls -l
- name: Get changed files
id: changes
run: |
echo "github.event.pull_request.head.sha"
echo ${{ github.event.pull_request.head.sha }}
echo "github.event.pull_request.base.sha"
echo ${{ github.event.pull_request.base.sha }}
echo ${{github.event.pull_request.head.repo.full_name}}
echo echo running on branch ${GITHUB_REF##*/}
#if [ "${{ github.event.pull_request.head.repo.full_name }}" == "maxb-io/shred" ]; 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
ref: ${{ github.event.pull_request.head.sha }}
- name: Check License
run: |
exit_code=0
for file in $(echo $OUTPUT1)
do
if ! grep -qE "Copyright \(C\) 20[0-9]{2} Shred 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
#if: github.event.pull_request.head.repo.full_name == 'maxb-io/shred'
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