Sync Upstream #619
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: Sync Upstream | |
on: | |
# FIXME: Running on push wouldn't make sense, would it? | |
# # Trigger upstream sync on push | |
# push: | |
# # Only when the following branches are pushed to | |
# branches: | |
# - 2.1.x | |
# - bugfix-2.1.x | |
# - skr-mini-e3-v3-0 | |
# Trigger upstream sync on a schedule | |
schedule: | |
- cron: '0 6 * * *' # Once a day at 06:00 | |
# Trigger upstream sync manually | |
workflow_dispatch: | |
jobs: | |
sync_main_branch: | |
name: Sync Upstream (2.1.x) | |
# FIXME: "env" is not available for job context | |
# https://docs.github.com/en/actions/learn-github-actions/contexts#context-availability | |
# if: ${{ env.ACT }} != 'true' | |
## TODO: Test running on self-hosted runners instead | |
runs-on: ubuntu-latest | |
# runs-on: self-hosted | |
# runs-on: [self-hosted, ubuntu-latest] | |
timeout-minutes: 15 | |
steps: | |
# 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: skr-mini-e3-v3-0 | |
ref: 2.1.x | |
# REQUIRED if your upstream repo is private (see wiki) | |
persist-credentials: false | |
# Speed up the cloning by reducing the depth | |
fetch-depth: 1 | |
# Sync upstream repository | |
- name: Sync Upstream Repository | |
id: sync | |
# uses: ./.github/actions/sync-upstream | |
uses: Didstopia/Actions/sync-upstream@master | |
with: | |
upstream-repo: MarlinFirmware/Marlin | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
# REQUIRED step | |
# Step 2: run the sync action | |
#- name: Sync upstream changes | |
# id: sync | |
# # uses: aormsby/Fork-Sync-With-Upstream-action@master | |
# uses: aormsby/Fork-Sync-With-Upstream-action@v3.4 | |
# # uses: aormsby/Fork-Sync-With-Upstream-action@v3.0 | |
# with: | |
# # Target branch in this repository | |
# target_sync_branch: 2.1.x | |
# # REQUIRED 'target_repo_token' exactly like this! | |
# # target_repo_token: ${{ secrets.GITHUB_TOKEN }} | |
# target_repo_token: ${{ secrets.GH_API_WORKFLOWS_TOKEN }} | |
# target_branch_push_args: '--force' | |
# # Upstream branch in another repository | |
# upstream_sync_branch: 2.1.x | |
# upstream_sync_repo: MarlinFirmware/Marlin | |
# # upstream_repo_access_token: ${{ secrets.UPSTREAM_REPO_SECRET }} | |
# # Overwrite and keep the upstream commits | |
# upstream_pull_args: '-s recursive -Xtheirs --allow-unrelated-histories' | |
# | |
# # Rebase instead of merge | |
# git_config_pull_rebase: true | |
# | |
# shallow_since: '2 days ago' | |
# | |
# # FIXME: Override test_mode when running locally with ACL | |
# # Set test_mode true to run tests instead of the true action!! | |
# test_mode: false | |
# Step 3: Display a sample message based on the sync output var 'has_new_commits' | |
- name: Build Trigger | |
if: steps.sync.outputs.synced == 'true' | |
run: | | |
echo "New commits were found and synced, triggering a new firmware build" | |
[ -z "${{ secrets.GITHUB_TOKEN }}" ] && echo "Skipping, no GITHUB_TOKEN" && exit 0 | |
curl --request POST \ | |
--url https://api.github.com/repos/Didstopia/Marlin/actions/workflows/build-btt-ender3v2.yaml/dispatches \ | |
--header 'Content-Type: application/json' \ | |
--header 'Accept: application/vnd.github.v3+json' \ | |
--header 'Authorization: Bearer ${{ secrets.GH_API_WORKFLOWS_TOKEN }}' \ | |
--data '{ | |
"ref": "skr-mini-e3-v3-0", | |
"inputs": { | |
"targetBranch": "2.1.x" | |
} | |
}' | |
# - name: No new commits | |
# if: steps.sync.outputs.synced == 'false' | |
# run: echo "There were no new commits." | |
# - name: Show value of 'synced' | |
# run: echo ${{ steps.sync.outputs.synced }} | |
sync_bugfix_branch: | |
## TODO: Test running on self-hosted runners instead | |
runs-on: ubuntu-latest | |
# runs-on: self-hosted | |
# runs-on: [self-hosted, ubuntu-latest] | |
name: Sync Upstream (bugfix-2.1.x) | |
timeout-minutes: 15 | |
steps: | |
# 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: skr-mini-e3-v3-0 | |
ref: bugfix-2.1.x | |
# REQUIRED if your upstream repo is private (see wiki) | |
persist-credentials: false | |
# Speed up the cloning by reducing the depth | |
fetch-depth: 1 | |
# Sync upstream repository | |
- name: Sync Upstream Repository | |
id: sync | |
# uses: ./.github/actions/sync-upstream | |
uses: Didstopia/Actions/sync-upstream@master | |
with: | |
upstream-repo: MarlinFirmware/Marlin | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
# REQUIRED step | |
# Step 2: run the sync action | |
#- name: Sync upstream changes | |
# id: sync | |
# # uses: aormsby/Fork-Sync-With-Upstream-action@master | |
# uses: aormsby/Fork-Sync-With-Upstream-action@v3.4 | |
# # uses: aormsby/Fork-Sync-With-Upstream-action@v3.0 | |
# with: | |
# # Target branch in this repository | |
# target_sync_branch: bugfix-2.1.x | |
# # REQUIRED 'target_repo_token' exactly like this! | |
# # target_repo_token: ${{ secrets.GITHUB_TOKEN }} | |
# target_repo_token: ${{ secrets.GH_API_WORKFLOWS_TOKEN }} | |
# # Upstream branch in another repository | |
# upstream_sync_branch: bugfix-2.1.x | |
# upstream_sync_repo: MarlinFirmware/Marlin | |
# # upstream_repo_access_token: ${{ secrets.UPSTREAM_REPO_SECRET }} | |
# # Overwrite and keep the upstream commits | |
# upstream_pull_args: '-s recursive -Xtheirs --allow-unrelated-histories' | |
# | |
# # Rebase instead of merge | |
# git_config_pull_rebase: true | |
# | |
# # FIXME: Override test_mode when running locally with ACL | |
# # Set test_mode true to run tests instead of the true action!! | |
# test_mode: false | |
# Step 3: Display a sample message based on the sync output var 'has_new_commits' | |
- name: Build Trigger | |
if: steps.sync.outputs.synced == 'true' | |
run: | | |
echo "New commits were found and synced, triggering a new firmware build" | |
[ -z "${{ secrets.GITHUB_TOKEN }}" ] && echo "Skipping, no GITHUB_TOKEN" && exit 0 | |
curl --request POST \ | |
--url https://api.github.com/repos/Didstopia/Marlin/actions/workflows/build-btt-ender3v2.yaml/dispatches \ | |
--header 'Content-Type: application/json' \ | |
--header 'Accept: application/vnd.github.v3+json' \ | |
--header 'Authorization: Bearer ${{ secrets.GH_API_WORKFLOWS_TOKEN }}' \ | |
--data '{ | |
"ref": "skr-mini-e3-v3-0", | |
"inputs": { | |
"targetBranch": "bugfix-2.1.x" | |
} | |
}' | |
# - name: No new commits | |
# if: steps.sync.outputs.synced == 'false' | |
# run: echo "There were no new commits." | |
# - name: Show value of 'synced' | |
# run: echo ${{ steps.sync.outputs.synced }} |