Merge pull request #6 from Kaveri-Jeevanantham/feature/github-gitlab-… #1
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 GitHub to GitLab | |
on: | |
push: | |
branches: | |
- main | |
jobs: | |
sync: | |
runs-on: ubuntu-latest | |
steps: | |
# Step 1: Checkout GitHub repository with full history | |
- name: Checkout GitHub Repository | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 # Fetch the full history to ensure full context | |
# Step 2: Configure Git identity | |
- name: Configure Git Identity | |
run: | | |
git config --global user.name "GitHub Actions Bot" | |
git config --global user.email "kelumalai@presidio.com" | |
# Step 3: Setup SSH for GitLab | |
- name: Setup SSH for GitLab | |
run: | | |
mkdir -p ~/.ssh | |
echo "${{ secrets.GITLAB_SSH_KEY }}" > ~/.ssh/id_rsa | |
chmod 600 ~/.ssh/id_rsa | |
ssh-keyscan -H gitlab.presidio.com >> ~/.ssh/known_hosts | |
# Step 4: Add GitLab remote | |
- name: Add GitLab remote | |
run: git remote add gitlab git@gitlab.presidio.com:hai-build/specif-ai-github.git | |
# Step 5: Fetch GitLab branch | |
- name: Fetch GitLab branch | |
run: git fetch gitlab main || true # Ensure GitLab branch is fetched | |
# Step 6: Reconcile Divergent Histories | |
- name: Reconcile Divergent Histories | |
run: | | |
# Checkout the current branch | |
git checkout main | |
# Merge GitLab branch into GitHub branch, allowing unrelated histories | |
git merge gitlab/main --allow-unrelated-histories --strategy-option=theirs || true | |
# Force push to GitLab if necessary | |
git push gitlab main || git push --force gitlab main | |
# Step 7: Push Final Changes | |
- name: Push Final Changes | |
run: git push gitlab main |