testing #40
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 Changes to Farajaland | |
on: | |
pull_request: | |
types: | |
- closed | |
jobs: | |
sync_farajaland: | |
if: ${{ github.event.pull_request.merged == true }} | |
runs-on: ubuntu-latest | |
env: | |
BASE_BRANCH: ${{ github.event.pull_request.base.ref }} | |
GH_TOKEN: ${{ secrets.FORK_ORGANISATION_TOKEN }} | |
FORK_REPOSITORY_PATH: "${{ secrets.FORK_REPOSITORY_ORGANISATION }}/${{ secrets.FORK_REPOSITORY_NAME }}" | |
steps: | |
- name: Checkout OpenCRVS Countryconfig repository | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.base.ref }} | |
- name: Check if PR branch exists in Farajaland repository | |
id: check_branch | |
run: | | |
if git ls-remote --heads https://${GH_TOKEN}@github.com/${FORK_REPOSITORY_PATH}.git "$BASE_BRANCH" | grep "$BASE_BRANCH"; then | |
echo "branch_exists=true" >> $GITHUB_ENV | |
else | |
echo "==============================================" | |
echo " 🚀 Branch $BASE_BRANCH doesn't exist in repository ${FORK_REPOSITORY_PATH}" | |
echo " 🚪 Doing exit" | |
echo "==============================================" | |
echo "branch_exists=false" >> $GITHUB_ENV | |
fi | |
- name: Sync Farajaland Fork repository | |
id: sync_fork | |
if: env.branch_exists == 'true' | |
continue-on-error: true | |
run: | | |
gh repo sync ${FORK_REPOSITORY_PATH} --branch ${BASE_BRANCH} | |
- name: Create PR in ${{ secrets.FORK_REPOSITORY_ORGANISATION }}/${{ secrets.FORK_REPOSITORY_NAME }} | |
if: steps.sync_fork.outcome == 'failure' | |
continue-on-error: true | |
run: | | |
echo "The 'sync_fork' step failed. Creating a PR in ${SYNC_FORK_REPOSITORY_PATH}" | |
if gh pr create \ | |
--repo ${FORK_REPOSITORY_PATH} \ | |
--base ${BASE_BRANCH} \ | |
--head opencrvs:${BASE_BRANCH} \ | |
--title "Update Farajaland from ${BASE_BRANCH}" \ | |
--body \ | |
""" | |
This PR updates the ${BASE_BRANCH} branch with the latest changes from | |
the original repository opencrvs:${BASE_BRANCH}. | |
""" 1>result.txt 2>&1; then | |
printf "PR created successfully: $(grep ${FORK_REPOSITORY_PATH} result.txt)\n" | |
else | |
if grep -q "already exists" result.txt; then | |
printf "PR already exists in Farajaland repo: $(grep ${FORK_REPOSITORY_PATH} result.txt)\n" | |
else | |
echo "Failed to create PR: $(cat result.txt)" | |
fi | |
fi | |
- name: Slack Notification | |
if: steps.sync_fork.outcome == 'failure' | |
run: | | |
echo "Sending slack notification" | |
curl -X POST https://slack.com/api/chat.postMessage \ | |
-H "Authorization: Bearer ${{ secrets.SLACK_BOT_TOKEN }}" \ | |
-H 'Content-type: application/json' \ | |
--data '{ | |
"channel": "C07M2FETFFB", | |
"text": "Hello, world!" | |
}' |