feat(ci): Updated GitHub to GitLab sync workflow to qa environment. (#7) #2
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 qa branch | |
- name: Fetch GitLab qa branch | |
run: git fetch gitlab qa || true # Ensure GitLab qa branch is fetched | |
# Step 6: Reconcile Divergent Histories | |
- name: Reconcile Divergent Histories | |
run: | | |
# Checkout the current branch | |
git checkout main | |
# Merge GitLab qa branch into GitHub main branch, allowing unrelated histories | |
git merge gitlab/qa --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 to GitLab qa branch | |
- name: Push Final Changes to GitLab qa branch | |
run: git push gitlab main:qa |