-
Notifications
You must be signed in to change notification settings - Fork 72
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Generate data after merging; only merge when main has changed. Fixes #1125.
- Loading branch information
Showing
1 changed file
with
18 additions
and
22 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,6 +8,10 @@ on: | |
- main | ||
workflow_dispatch: # Allows manual trigger | ||
|
||
concurrency: | ||
group: build-and-deploy | ||
cancel-in-progress: false | ||
|
||
jobs: | ||
build_and_deploy: | ||
runs-on: ubuntu-latest | ||
|
@@ -16,7 +20,7 @@ jobs: | |
- name: Check out the repository | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 # Fetch full history to support rebasing | ||
fetch-depth: 0 # Fetch full history for proper merging | ||
|
||
- name: Set up SSH for Git (deploy key) | ||
run: | | ||
|
@@ -35,41 +39,33 @@ jobs: | |
python3 -m pip install --upgrade pip | ||
pip install -r requirements.txt | ||
- name: Generate Merged Data | ||
run: | | ||
python3 gh-data.py | ||
python3 merge-data.py | ||
- name: Switch to `gh-pages` and Preserve Changes | ||
- name: Configure Git User | ||
run: | | ||
git config --global user.name "github-actions[bot]" | ||
git config --global user.email "github-actions[bot]@users.noreply.github.com" | ||
# Stash changes to preserve them | ||
git stash --include-untracked | ||
# Fetch and switch to `gh-pages` | ||
git fetch origin gh-pages:gh-pages || git checkout --orphan gh-pages | ||
- name: Fetch and Check Out `gh-pages` | ||
run: | | ||
git fetch origin gh-pages:gh-pages | ||
git checkout gh-pages | ||
# Rebase `gh-pages` onto `main` to ensure a linear history | ||
git rebase main | ||
- name: Merge `main` into `gh-pages` with `-s theirs` | ||
if: github.event_name == 'push' && github.ref == 'refs/heads/main' | ||
run: | | ||
git merge ${{ github.sha }} -s theirs --no-edit | ||
# Apply stashed changes | ||
git stash pop || echo "No changes to apply." | ||
- name: Generate Merged Data | ||
run: | | ||
python3 gh-data.py | ||
python3 merge-data.py | ||
- name: Commit and Push Updates | ||
run: | | ||
# Add changes | ||
git add -f merged-data.json | ||
git add . | ||
# Commit changes if there are any | ||
if git diff --cached --quiet; then | ||
echo "No changes to commit." | ||
else | ||
git commit -m "Update GitHub Pages with latest data" | ||
fi | ||
git commit -m "Update GitHub Pages with latest data" | ||
# Push changes back to `gh-pages` | ||
git remote set-url origin [email protected]:${{ github.repository }}.git | ||
|