From d0f82276ab2519e9f39e62e36535b4315f6f109b Mon Sep 17 00:00:00 2001 From: John Teague Date: Wed, 21 May 2025 23:17:48 -0500 Subject: [PATCH] added sync gh action --- .github/workflows/sync-monorepo.mjs | 12 +++++++ .github/workflows/sync-monorepo.yml | 49 +++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 .github/workflows/sync-monorepo.mjs create mode 100644 .github/workflows/sync-monorepo.yml diff --git a/.github/workflows/sync-monorepo.mjs b/.github/workflows/sync-monorepo.mjs new file mode 100644 index 000000000..0f32383bb --- /dev/null +++ b/.github/workflows/sync-monorepo.mjs @@ -0,0 +1,12 @@ +import { syncFromGithubAction } from 'monorepo-sync'; + +syncFromGithubAction() + .then(() => { + console.log('Sync completed successfully'); + process.exit(0); + }) + .catch((error) => { + console.error('Error during sync:', error); + process.exit(1); + }); + \ No newline at end of file diff --git a/.github/workflows/sync-monorepo.yml b/.github/workflows/sync-monorepo.yml new file mode 100644 index 000000000..41deed4d5 --- /dev/null +++ b/.github/workflows/sync-monorepo.yml @@ -0,0 +1,49 @@ +name: Sync Merged PR to Monorepo + +on: + pull_request: + types: [closed] + branches: + - main + - master + +jobs: + sync-to-monorepo: + if: github.event.pull_request.merged == true + runs-on: ubuntu-latest + env: + GH_TOKEN: ${{ secrets.MONOREPO_SYNC_TOKEN }} + PR_NUMBER: ${{ github.event.pull_request.number }} + PR_TITLE: ${{ github.event.pull_request.title }} + PR_AUTHOR: ${{ github.event.pull_request.user.login }} + SOURCE_REPO_NAME: ${{ github.event.repository.name }} + MONOREPO_PACKAGE_LOCATION: packages/${{ github.event.repository.name }} + MONOREPO_PATH: ${{ github.workspace }}/monorepo + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 1 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '18' + + - name: Install dependencies + # Install project dependencies (including dev dependencies) + run: npm install + - name: Install zx + run: npm install zx + + - name: Install monorepo-sync package + run: npm install git+https://github.com/formio/monorepo-sync.git + - name: Clone Monorepo + run: | + gh repo clone formio/formio-monorepo monorepo -- --depth=1 + + - name: Sync to Monorepo + run: | + echo "Syncing PR #${PR_NUMBER}: ${PR_TITLE}" + node .github/workflows/sync-monorepo.mjs \ No newline at end of file