Skip to content

Commit

Permalink
add sync-merge.yaml
Browse files Browse the repository at this point in the history
  • Loading branch information
DavidHenryThoreau committed Oct 31, 2024
1 parent ea34503 commit 1a2068e
Showing 1 changed file with 52 additions and 37 deletions.
89 changes: 52 additions & 37 deletions .github/workflows/sync-merge.yaml
Original file line number Diff line number Diff line change
@@ -1,44 +1,59 @@
name: Sync Upstream
name: 'Upstream Sync'

env:
# Required, URL to upstream (fork base)
UPSTREAM_URL: "https://github.com/SamR1/FitTrackee.git"
# Required, token to authenticate bot, could use ${{ secrets.GITHUB_TOKEN }}
# Over here, we use a PAT instead to authenticate workflow file changes.
#WORKFLOW_TOKEN: ${{ secrets.WORKFLOW_TOKEN }}
WORKFLOW_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Optional, defaults to master
UPSTREAM_BRANCH: "master"
# Optional, defaults to UPSTREAM_BRANCH
DOWNSTREAM_BRANCH: ""
# Optional fetch arguments
FETCH_ARGS: "--tags"
# Optional merge arguments
MERGE_ARGS: ""
# Optional push arguments
PUSH_ARGS: "--tags --force"
# Optional toggle to spawn time logs (keeps action active)
SPAWN_LOGS: "false" # "true" or "false"

# This runs every day on 1801 UTC
on:
schedule:
- cron: '0 22 * * *'
# Allows manual workflow run (must in default branch to work)
workflow_dispatch:
- cron: '0 7 * * 1,4'
# scheduled at 07:00 every Monday and Thursday

workflow_dispatch: # click the button on Github repo!
inputs:
sync_test_mode: # Adds a boolean option that appears during manual workflow run for easy test mode config
description: 'Fork Sync Test Mode'
type: boolean
default: false

jobs:
build:
sync_latest_from_upstream:
runs-on: ubuntu-latest
name: Sync latest commits from upstream repo

steps:
- name: GitHub Sync to Upstream Repository
uses: dabreadman/[email protected]
with:
upstream_repo: ${{ env.UPSTREAM_URL }}
upstream_branch: ${{ env.UPSTREAM_BRANCH }}
downstream_branch: ${{ env.DOWNSTREAM_BRANCH }}
token: ${{ env.WORKFLOW_TOKEN }}
fetch_args: ${{ env.FETCH_ARGS }}
merge_args: ${{ env.MERGE_ARGS }}
push_args: ${{ env.PUSH_ARGS }}
spawn_logs: ${{ env.SPAWN_LOGS }}
# REQUIRED step
# Step 1: run a standard checkout action, provided by github
- name: Checkout target repo
uses: actions/checkout@v3
with:
# optional: set the branch to checkout,
# sync action checks out your 'target_sync_branch' anyway
ref: my-branch
# REQUIRED if your upstream repo is private (see wiki)
persist-credentials: false

# REQUIRED step
# Step 2: run the sync action
- name: Sync upstream changes
id: sync
uses: aormsby/[email protected]
with:
target_sync_branch: my-branch
# REQUIRED 'target_repo_token' exactly like this!
target_repo_token: ${{ secrets.GITHUB_TOKEN }}
upstream_sync_branch: master
upstream_sync_repo: SamR1/FitTrackee
upstream_repo_access_token: ${{ secrets.UPSTREAM_REPO_SECRET }}

# Set test_mode true during manual dispatch to run tests instead of the true action!!
test_mode: ${{ inputs.sync_test_mode }}

# Step 3: Display a sample message based on the sync output var 'has_new_commits'
- name: New commits found
if: steps.sync.outputs.has_new_commits == 'true'
run: echo "New commits were found to sync."

- name: No new commits
if: steps.sync.outputs.has_new_commits == 'false'
run: echo "There were no new commits."

- name: Show value of 'has_new_commits'
run: echo ${{ steps.sync.outputs.has_new_commits }}

0 comments on commit 1a2068e

Please sign in to comment.