diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml new file mode 100644 index 0000000..75bc510 --- /dev/null +++ b/.github/workflows/auto-merge.yml @@ -0,0 +1,60 @@ +name: Auto Merge CMS Branch + +on: + schedule: + # Run every 5 minutes to check for inactivity + - cron: '*/5 * * * *' + + # Allow manual triggering + workflow_dispatch: + +jobs: + auto-merge: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Fetch all history for all branches + + - name: Check CMS branch and merge if inactive + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + if git fetch origin cms; then + last_commit_time=$(git log -1 --format=%ct "origin/cms") + current_time=$(date +%s) + + time_diff=$(( ($current_time - $last_commit_time) / 60 )) + + if [ $time_diff -gt 20 ]; then + echo "CMS branch has been inactive for $time_diff minutes" + + git config user.name "GitHub Actions Bot" + git config user.email "actions@github.com" + + git checkout cms + + if git merge origin/main --no-edit; then + echo "Successfully merged main into cms" + + git checkout main + git merge cms --no-edit + git push origin main + + echo "Successfully merged cms into main" + else + echo "Merge conflicts detected in cms branch, skipping..." + git merge --abort + fi + else + echo "CMS branch has been active within the last 20 minutes, skipping..." + fi + else + echo "CMS branch not found" + fi + +permissions: + contents: write + pull-requests: write \ No newline at end of file diff --git a/public/config.yml b/public/config.yml index aada520..459776f 100644 --- a/public/config.yml +++ b/public/config.yml @@ -1,7 +1,8 @@ backend: name: github repo: brown-ccv/mmp-next - base_url: https://mmp-docker-974587953292.us-central1.run.app/ + branch: cms + base_url: https://mmp.research.brown.edu/ auth_endpoint: api/auth media_folder: public/images collections: