diff --git a/.github/workflows/main-sync.yml b/.github/workflows/main-sync.yml index adea69b5060..096c437f562 100644 --- a/.github/workflows/main-sync.yml +++ b/.github/workflows/main-sync.yml @@ -1,8 +1,6 @@ -name: Create a PR to sync main branch with main-apache +name: Sync main branch env: - USERNAME: kie-ci - USEREMAIL: kie-ci0@redhat.com GITHUB_TOKEN: ${{ secrets.APACHE_SYNC_MIDSTREAM_TOKEN }} on: @@ -12,79 +10,12 @@ on: jobs: sync-main: - if: github.repository_owner == 'kiegroup' - name: Sync main with main-apache branch + name: Sync main branch runs-on: ubuntu-latest - - steps: - - name: Generate PR ID - id: generate_pr_id - run: echo "pr_id=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT - - name: Checkout repository - uses: actions/checkout@v4 + steps: + - name: Create a PR to sync main branch with main-apache + uses: kiegroup/kie-ci/.ci/actions/main-sync@main with: - ref: main - # By default, checkout@v4 fetches only a single commit unless you specify "fetch-depth: 0". Without this "git merge" throwns an "unrelated histories". - fetch-depth: '0' - - - name: Setup git environment - run: | - git config --global user.name "$USERNAME" - git config --global user.email "$USEREMAIL" - - - name: Fetch all - run: git fetch --all - - - name: Checkout main branch - run: git checkout main - - - name: Create the PR branch - run: git checkout -b sync-main-pr-${{ steps.generate_pr_id.outputs.pr_id }} - - - name: Merge main-apache branch excluding white-listed paths - id: merge - run: | - set -x - git merge --no-commit origin/main-apache || true - git reset origin/main ${{vars.MAIN_SYNC_WORKFLOW_EXCLUDE_PATHS}} - if git diff --cached --quiet; then - echo "No changes staged for commit." - else - git commit -m "Merge main-apache and exclude white-listed changes from the merge" - fi - echo "excluded_files=$(git ls-files -mo | sed -z 's/\n/
/g')" >> $GITHUB_OUTPUT - - - name: Check for changes - id: check_changes - run: | - if git diff --quiet origin/main; then - echo "No changes detected." - echo "is_changed=false" >> $GITHUB_OUTPUT - else - echo "Changes detected." - echo "is_changed=true" >> $GITHUB_OUTPUT - fi - - - name: Push changes - if: steps.check_changes.outputs.is_changed == 'true' - run: git push origin sync-main-pr-${{ steps.generate_pr_id.outputs.pr_id }} - - - name: Create the PR - if: steps.check_changes.outputs.is_changed == 'true' - run: | - runUrl="${{github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }}" - if [[ -n "${{ steps.merge.outputs.excluded_files }}" ]]; then - excludedFiles="${{ steps.merge.outputs.excluded_files }}" - else - excludedFiles="No files have been excluded
" - fi - prTitle="Automatic PR: Sync main with main-apache (${{steps.generate_pr_id.outputs.pr_id}})" - prBody="This pull request has been created by a GitHub workflow to synchronize the main branch with main-apache branch.

\ - :warning:Important:warning:
Please don't merge using squash, not to loose the git history.

\ - Excluded files:
${excludedFiles}
\ - [View Action](${runUrl})" - if [[ -n "${{ vars.MAIN_SYNC_WORKFLOW_PR_REVIEWERS }}" ]]; then - reviewersOption="--reviewer ${{vars.MAIN_SYNC_WORKFLOW_PR_REVIEWERS}}" - fi - gh pr create --title "${prTitle}" --body "${prBody}" --base main $reviewersOption + main_sync_workflow_exclude_paths: ${{ vars.MAIN_SYNC_WORKFLOW_EXCLUDE_PATHS }} + main_sync_workflow_pr_reviewers: ${{ vars.MAIN_SYNC_WORKFLOW_PR_REVIEWERS }}