@@ -222,4 +222,72 @@ jobs:
222222 secrets :
223223 SLACK_BOT_TOKEN_HELM : ${{ secrets.SLACK_BOT_TOKEN_HELM }}
224224 SLACK_CHANNEL_DEVOPS : ${{ secrets.SLACK_CHANNEL_DEVOPS }}
225- SLACK_GROUP_TECH_SUPPORT : ${{ secrets.SLACK_GROUP_TECH_SUPPORT }}
225+ SLACK_GROUP_TECH_SUPPORT : ${{ secrets.SLACK_GROUP_TECH_SUPPORT }}
226+
227+ back-merge :
228+ needs :
229+ - get-changed-paths
230+ - release-helm-chart
231+ name : 🔀 Back Merge to Develop
232+ if : needs.get-changed-paths.outputs.matrix != '[]' && github.ref == 'refs/heads/main'
233+ runs-on : ubuntu-latest
234+ steps :
235+ - name : Generate GitHub App Token
236+ id : app-token
237+ uses : actions/create-github-app-token@v1
238+ with :
239+ app-id : ${{ secrets.LERIAN_STUDIO_MIDAZ_PUSH_BOT_APP_ID }}
240+ private-key : ${{ secrets.LERIAN_STUDIO_MIDAZ_PUSH_BOT_PRIVATE_KEY }}
241+
242+ - name : Checkout code
243+ uses : actions/checkout@v4
244+ with :
245+ fetch-depth : 0
246+ token : ${{ steps.app-token.outputs.token }}
247+
248+ - name : Import GPG key
249+ uses : crazy-max/ghaction-import-gpg@v6
250+ with :
251+ gpg_private_key : ${{ secrets.LERIAN_CI_CD_USER_GPG_KEY }}
252+ passphrase : ${{ secrets.LERIAN_CI_CD_USER_GPG_KEY_PASSWORD }}
253+ git_committer_name : ${{ secrets.LERIAN_CI_CD_USER_NAME }}
254+ git_committer_email : ${{ secrets.LERIAN_CI_CD_USER_EMAIL }}
255+ git_config_global : true
256+ git_user_signingkey : true
257+ git_commit_gpgsign : true
258+
259+ - name : Create Pull Request for Back Merge
260+ env :
261+ GH_TOKEN : ${{ steps.app-token.outputs.token }}
262+ GIT_AUTHOR_NAME : ${{ secrets.LERIAN_CI_CD_USER_NAME }}
263+ GIT_AUTHOR_EMAIL : ${{ secrets.LERIAN_CI_CD_USER_EMAIL }}
264+ GIT_COMMITTER_NAME : ${{ secrets.LERIAN_CI_CD_USER_NAME }}
265+ GIT_COMMITTER_EMAIL : ${{ secrets.LERIAN_CI_CD_USER_EMAIL }}
266+ run : |
267+ git fetch origin main develop
268+
269+ # Check if there are differences between main and develop
270+ if git diff --quiet origin/main origin/develop; then
271+ echo "No differences between main and develop. Skipping PR creation."
272+ exit 0
273+ fi
274+
275+ # Check if a back-merge PR already exists
276+ EXISTING_PR=$(gh pr list --base develop --head main --state open --json number --jq '.[0].number')
277+
278+ if [ -n "$EXISTING_PR" ]; then
279+ echo "Back-merge PR #$EXISTING_PR already exists. Skipping PR creation."
280+ exit 0
281+ fi
282+
283+ # Create the back-merge PR
284+ gh pr create \
285+ --base develop \
286+ --head main \
287+ --title "chore: back merge main into develop" \
288+ --body "## Back Merge
289+
290+ This PR merges the latest changes from \`main\` back into \`develop\` to keep the branches in sync after a release.
291+
292+ ### Auto-generated
293+ This PR was automatically created by the release pipeline."
0 commit comments