Skip to content

Commit

Permalink
Merge pull request #267 from mikemcd3912/githubActions
Browse files Browse the repository at this point in the history
GitHub actions Update
  • Loading branch information
mikemcd3912 authored May 6, 2024
2 parents e7f3221 + 12dd7a8 commit a85da31
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 19 deletions.
72 changes: 62 additions & 10 deletions .github/workflows/close-pull-request.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,11 @@ on:
pull_request_target:
branches: [main]
types: [closed]
paths-ignore:
- 'Validated_Partners/**'
- '.github/**'
- 'docs'
- '.git'

jobs:
merge-master-back-to-dev:
if: github.event.pull_request.merged == false

# All Closed branches reverse commits made by the open/reopen/sync GH Action
revert-testing-commit:
timeout-minutes: 2
runs-on: ubuntu-latest
steps:
Expand All @@ -23,14 +19,70 @@ jobs:
run: |
# Get Commits from this PR
TAG=PR_${{ github.event.pull_request.number }}
commits=$(git rev-list HEAD --grep=$TAG --max-count=1)
echo "commits: $commits"
# Revert Commits or Log that no change was made
git config --local user.email "dev@null"
git config --local user.name "Conformitron Bot"

git revert $commits --no-edit || echo "Commit $commits not reverted"
for commit in $(git rev-list HEAD --grep=$TAG); do
echo $commit
git revert $commit --no-edit || echo "Commit $commit not reverted"
done

git push

# Accepted PR's apply merged changes
commit-accepted-pr-files:
if: github.event.pull_request.merged == true
needs: revert-testing-commit
timeout-minutes: 2
runs-on: ubuntu-latest
steps:
- name: Checkout Base
uses: actions/checkout@v4

- name: Checkout PR Code
run:
git fetch origin pull/${{ github.event.pull_request.number }}/head:pr

- name: Remove Deleted Files, copy over added or modified files in accepted PR
id: find-namespace-yaml
run: |
# Pull file information down into a JSON array
readarray -t files < <(curl -s "https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/files" | jq -c '.[]')
# Checkout and update Developer branch
git fetch --all
git config --local user.email "dev@null"
git config --local user.name "Conformitron Bot"
# fetch most recent update to dev
git checkout developer_branch
git pull
# Remove Deleted Files, copy over added or modified files
for item in "${files[@]}"; do
status=$(echo "$item" | jq -r '.status')
filename=$(echo "$item" | jq -r '.filename')
if [ "$status" == renamed ]; then
git checkout pr -- $filename
git add $filename
if [ -f $(echo "$item" | jq -r '.previous_filename') ]; then
git rm $(echo "$item" | jq -r '.previous_filename')
fi
echo "Renaming $filename"
elif [ "$status" != removed ]; then
git checkout pr -- $filename
git add $filename
echo "Moving $filename"
else
if [ -f $filename ]; then
echo "Deleting $filename"
git rm $filename
fi
fi
done
git commit -m "Adding new and changed files for merged PR_${{ github.event.pull_request.number }}"
git push
19 changes: 10 additions & 9 deletions .github/workflows/new-pull-request.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ on:
paths-ignore:
- 'Validated_Partners/**'
- '.github/**'
- 'docs'
- '.git'
- 'docs/**'
- '.git/**'

jobs:
build:
Expand All @@ -23,7 +23,7 @@ jobs:

- if: ${{github.event.action == 'synchronize' }}
name: Sync Pause
run: sleep 120
run: sleep 60

- name: Parse Namespace data, Create ConfigMap
id: find-namespace-yaml
Expand Down Expand Up @@ -77,22 +77,23 @@ jobs:
namespace_file_subdirectory=$(dirname $filename)
namespace_file=$(find $namespace_file_subdirectory -name *namespace*)
namespace_name=""
partner_name=""
# get namespace from dev branch partner directory
# get namespace from dev branch partner directory. If in Testers directory, re-align to Addons/Partner/{partner}
while [ -z "$(find $namespace_file_subdirectory -name '*namespace*')" ] && [[ -z $namespace_name ]]; do
partner_name=$(basename $namespace_file_subdirectory)
namespace_file_subdirectory=$(dirname $namespace_file_subdirectory)
if [ $(basename $namespace_file_subdirectory) == "Testers" ]; then
namespace_name=$(yq e 'select(document_index==0).metadata.namespace' $filename)
namespace_file_subdirectory=$(dirname $namespace_file_subdirectory)
namespace_file_subdirectory=$namespace_file_subdirectory/Addons/Partner/$partner_name
elif [ $(basename $namespace_file_subdirectory) == "Partner" ] || [ $(basename $namespace_file_subdirectory) == "Core" ]; then
echo "No Namespace File Found in Partner Directory"
exit 200
fi
namespace_file=$(find $namespace_file_subdirectory -name "*namespace*")
done
if [[ -n $namespace_name ]]; then
namespace_file_subdirectory=$(dirname $filename)
elif [ -f $namespace_file ]; then
if [ -f $namespace_file ]; then
namespace_file_subdirectory=$(dirname $namespace_file)
namespace_name=$(grep -E '^\s*metadata:\s*$|^\s*name:\s*' "$namespace_file" | awk -F':' '{gsub(/ /, "", $2); print $2}')
else
Expand Down Expand Up @@ -127,5 +128,5 @@ jobs:
fi
done
git commit -m "Adding new and changed files for PR_${{ github.event.pull_request.number }}"
git commit -m "Adding new and changed files for testing of PR_${{ github.event.pull_request.number }}"
git push

0 comments on commit a85da31

Please sign in to comment.