Skip to content

Update Truth Data

Update Truth Data #75

Workflow file for this run

name: Update Truth Data
on:
workflow_dispatch:
inputs:
pull_requests:
description: 'Pull request(s) that warranted update, e.g. "#123" or "#123 and dtcenter/MET#123"'
required: true
change_summary:
description: 'Summary of changes to truth data'
required: true
jobs:
update_truth:
name: "Update reference branch truth data"
runs-on: ubuntu-latest
steps:
- name: Check if branch is develop or main_vX.Y
run: |
branch_name=${GITHUB_REF#refs/heads/}
echo "branch_name=$branch_name" >> $GITHUB_ENV
if [[ $branch_name == "develop" ]] || \
[[ $branch_name =~ ^main_v[0-9]+\.[0-9]+$ ]]; then
echo Branch is valid - $branch_name
exit 0
fi
echo ERROR: Branch is $branch_name - must be develop or match main_vX.Y
exit 1
- uses: actions/checkout@v4
name: Checkout repository
with:
fetch-depth: 0
token: ${{ secrets.METPLUS_BOT_TOKEN }}
- name: Resolve conflicts with an update branch
id: resolve_conflicts
run: |
branch_name=${{ env.branch_name }}
cd ${GITHUB_WORKSPACE}
if [[ -z "$(git ls-remote --heads origin ${branch_name}-ref)" ]]; then
echo ERROR: ${branch_name}-ref does not exist
exit 1
fi
echo ${branch_name}-ref does exist -- update it
git config --global user.name "metplus-bot"
git config --global user.email "97135045+metplus-bot@users.noreply.github.com"
# 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
echo git checkout -b ${update_branch}
git checkout -b ${update_branch}
# merge -ref branch into the update branch (favoring update branch changes)
echo git merge -s ours origin/${branch_name}-ref
git merge -s ours origin/${branch_name}-ref
# push update branch to origin
echo git push origin ${update_branch}
git push origin ${update_branch}
- name: Create Pull Request
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 }}