72 lines
2.3 KiB
YAML
72 lines
2.3 KiB
YAML
name: Schedule StarPilot Update
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
scheduled_date:
|
|
description: "Enter the date to update the \"StarPilot\" branch (YYYY-MM-DD)"
|
|
required: true
|
|
|
|
env:
|
|
GIT_EMAIL: "91348155+FrogAi@users.noreply.github.com"
|
|
GIT_NAME: "James"
|
|
TARGET_BRANCH: "StarPilot-Staging"
|
|
UPDATE_FILE_PATH: ".github/update_date"
|
|
|
|
jobs:
|
|
schedule_update:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout Target Branch
|
|
uses: actions/checkout@v4
|
|
with:
|
|
ref: ${{ env.TARGET_BRANCH }}
|
|
token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
|
|
fetch-depth: 3
|
|
|
|
- name: Configure Git Identity
|
|
run: |
|
|
git config --global user.name "$GIT_NAME"
|
|
git config --global user.email "$GIT_EMAIL"
|
|
|
|
- name: Write Schedule Date
|
|
env:
|
|
SCHEDULED_DATE: ${{ github.event.inputs.scheduled_date }}
|
|
run: |
|
|
echo "$SCHEDULED_DATE" > "$UPDATE_FILE_PATH"
|
|
git add "$UPDATE_FILE_PATH"
|
|
|
|
- name: Get Target Commit Data
|
|
id: get_target
|
|
run: |
|
|
TARGET_COMMIT=$(git rev-parse HEAD~1)
|
|
AUTHOR_DATE=$(git show -s --format=%aD "$TARGET_COMMIT")
|
|
COMMITTER_DATE=$(git show -s --format=%cD "$TARGET_COMMIT")
|
|
|
|
echo "AUTHOR_DATE=$AUTHOR_DATE" >> "$GITHUB_ENV"
|
|
echo "COMMITTER_DATE=$COMMITTER_DATE" >> "$GITHUB_ENV"
|
|
echo "TARGET_COMMIT=$TARGET_COMMIT" >> "$GITHUB_ENV"
|
|
|
|
- name: Create Fixup Commit
|
|
id: fixup_commit
|
|
run: |
|
|
if git diff --cached --quiet; then
|
|
echo "No changes detected."
|
|
echo "has_changes=false" >> "$GITHUB_OUTPUT"
|
|
else
|
|
echo "Changes detected. Creating fixup commit."
|
|
git commit --fixup="$TARGET_COMMIT"
|
|
echo "has_changes=true" >> "$GITHUB_OUTPUT"
|
|
fi
|
|
|
|
- name: Autosquash and Restore Timestamps
|
|
if: steps.fixup_commit.outputs.has_changes == 'true'
|
|
run: |
|
|
GIT_SEQUENCE_EDITOR=: git rebase --autosquash -i HEAD~3
|
|
git rebase --exec "GIT_COMMITTER_DATE='$COMMITTER_DATE' git commit --amend --no-edit --date='$AUTHOR_DATE'" HEAD~2
|
|
|
|
- name: Push Changes
|
|
if: steps.fixup_commit.outputs.has_changes == 'true'
|
|
run: |
|
|
git push origin "$TARGET_BRANCH" --force-with-lease
|