Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

main_v5.1 - Enhance update truth data workflow to create a uniquely named branch... #2678

Merged
merged 4 commits into from
Sep 6, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 42 additions & 4 deletions .github/workflows/update_truth.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:

jobs:
update_truth:
name: "Update or create truth reference branch"
name: "Update truth reference branch"
runs-on: ubuntu-latest
steps:
- name: Check if branch is develop or main_vX.Y
Expand All @@ -32,6 +32,7 @@ jobs:
fetch-depth: 0
token: ${{ secrets.METPLUS_BOT_TOKEN }}
- name: Resolve conflicts between branch and branch-ref
id: resolve_conflicts
run: |
branch_name=${{ env.branch_name }}
cd ${GITHUB_WORKSPACE}
Expand All @@ -43,17 +44,54 @@ jobs:
echo ${branch_name}-ref does exist -- update it
git config --global user.name "metplus-bot"
git config --global user.email "[email protected]"
# checkout branch (develop or main_vX.Y)
echo git checkout ${branch_name}
git checkout ${branch_name}

# create unique branch name to update *-ref branch
update_branch=update_${branch_name}_$(uuidgen | cut -d "-" -f1)
echo "update_branch=${update_branch}" >> $GITHUB_OUTPUT

# create update branch from branch (develop or main_vX.Y)
echo git checkout -b ${update_branch}
git checkout -b ${update_branch}

# merge -ref branch into update branch (favoring branch changes)
echo git merge -s ours origin/${branch_name}-ref
git merge -s ours origin/${branch_name}-ref
echo git push origin ${branch_name}
git push origin ${branch_name}

change_log_path=.github/update_truth_change_log.txt

# get truth change log from *-ref branch
cmd="git checkout origin/${branch_name}-ref -- ${change_log_path}"
echo $cmd
$cmd

# create or append to file to track truth data changes
# and ensure that PR merge into *-ref branch triggered testing workflow
change_entry="[$(date +%Y%m%d_%H:%M:%S) ${branch_name}] ${{ github.event.inputs.pull_requests }} - ${{ github.event.inputs.change_summary }}"
echo "${change_entry}" >> ${change_log_path}

# add file if it does not already exist
cmd="git add ${change_log_path}"
echo $cmd
$cmd

# commit changes to change log file
echo git commit ${change_log_path}
git commit -m "added entry to update truth change log: ${branch_name} ${{ github.event.inputs.pull_requests }}" ${change_log_path}

# push changes to update branch on GitHub
cmd="git push origin ${update_branch}"
echo $cmd
$cmd

# create pull request from $HEAD into $BASE
- name: Create Pull Request
run: gh pr create --base $BASE --body "$BODY" --title "$TITLE"
run: gh pr create --head $HEAD --base $BASE --body "$BODY" --title "$TITLE"
env:
GH_TOKEN: ${{ github.token }}
HEAD: ${{ steps.resolve_conflicts.outputs.update_branch }}
BASE: ${{ env.branch_name }}-ref
BODY: ${{ github.event.inputs.change_summary }}<br/>Created by @${{ github.actor}}
TITLE: Update ${{ env.branch_name }}-ref after ${{ github.event.inputs.pull_requests }}
Loading