Update Truth Data #75
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} |