diff --git a/.github/workflows/update-remote-settings-dumps.yaml b/.github/workflows/update-remote-settings-dumps.yaml new file mode 100644 index 000000000..3dfd8ca2c --- /dev/null +++ b/.github/workflows/update-remote-settings-dumps.yaml @@ -0,0 +1,63 @@ +name: Update Remote Settings Dumps + +on: + schedule: + - cron: "0 0 * * 0" # Run weekly on Sunday at midnight + workflow_dispatch: # Allow manual trigger + inputs: + base_branch: + description: 'Base branch' + required: true + default: 'main' + +jobs: + update-dumps: + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + ref: main + fetch-depth: 0 + submodules: recursive + + - name: Set up repository and install Rust + run: | + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + source $HOME/.cargo/env + + - name: Create new branch and run dump + run: | + # Configure git + git config --local user.email "bgruber@mozilla.com" + git config --local user.name "Bastian Gruber" + + # Create new branch + BRANCH_NAME="update-remote-settings-dumps-$(date +%Y%m%d)" + git checkout -b $BRANCH_NAME + + # Run the dump command + cargo remote-settings dump-sync + + # Check for changes and create PR if needed + git add ./components/remote_settings/dumps/ + if git status --porcelain -- ./components/remote_settings/dumps/ | grep .; then + git commit -m "chore: Update remote settings dumps" + git push origin $BRANCH_NAME + + # Create the PR (gh is installed on GH Actions) + gh pr create \ + --title "Update Remote Settings Dumps" \ + --body "Automated PR to update remote settings dumps. + + Changes detected in: \`./components/remote_settings/dumps/\` + Generated by the Update Remote Settings Dumps workflow." \ + --base main \ + --head $BRANCH_NAME + else + echo "No changes detected in dumps directory" + fi \ No newline at end of file