Files

62 lines
1.7 KiB
YAML

name: Upstream Sync
on:
schedule:
- cron: '0 0 1 * *'
workflow_dispatch:
jobs:
sync-upstream:
runs-on: ubuntu-latest
env:
UPSTREAM: "https://github.com/bitcoin-core/secp256k1.git"
BASE_BRANCH: "master"
UPSTREAM_REF: "upstream/master"
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
fetch-depth: 0
token: ${{ secrets.SYNC_PAT }}
- name: Configure Git
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
- name: Fetch upstream
run: |
git remote add upstream ${{ env.UPSTREAM }}
git fetch upstream
gh repo set-default ${{ github.repository }}
env:
GH_TOKEN: ${{ secrets.SYNC_PAT }}
- name: Run sync-upstream.sh
id: sync
run: |
OUTPUT=$(./contrib/sync-upstream.sh --switch "${{ env.BASE_BRANCH }}" "${{ env.UPSTREAM_REF }}" 2>&1) || { echo "$OUTPUT"; exit 1; }
echo "$OUTPUT"
if echo "$OUTPUT" | grep -qv "^No merge commits"; then
echo "newcommits=true" >> "$GITHUB_OUTPUT"
else
echo "Skipping further workflow steps."
fi
- name: Push sync branch
id: push
if: steps.sync.outputs.newcommits == 'true'
run: |
if git push -u origin HEAD; then
echo "pushed=true" >> "$GITHUB_OUTPUT"
else
echo "Skipping further workflow steps."
fi
- name: Create pull request
if: steps.sync.outputs.newcommits == 'true' && steps.push.outputs.pushed == 'true'
env:
GH_TOKEN: ${{ secrets.SYNC_PAT }}
run: ./gh-pr-create.sh