diff --git a/.github/workflows/dependabot-dedupe.yml b/.github/workflows/dependabot-dedupe.yml new file mode 100644 index 000000000..3dc581d4d --- /dev/null +++ b/.github/workflows/dependabot-dedupe.yml @@ -0,0 +1,57 @@ +name: Dedupe Dependabot PRs + +on: + push: + branches: ['dependabot/**'] + +jobs: + dedupe: + name: Dedupe Dependabot PRs + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Cache .yarn/cache + uses: actions/cache@v3 + env: + cache-name: yarn-cache + with: + path: .yarn/cache + key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-${{ env.cache-name }} + + - name: Use Node.js + uses: actions/setup-node@v3 + with: + node-version: '16' + + - name: Enable Corepack + run: corepack enable + + - name: Configure Git + run: | + git config user.name 'github-actions[bot]' + git config user.email 'github-actions[bot]@users.noreply.github.com' + + - name: Detect working directory + run: | + echo "WORKING_DIRECTORY=$(git log -1 --pretty=%B | sed -n 's/.* in \(\/.*\)$/\1/p')" >> $GITHUB_ENV + + - name: Dedupe dependencies + run: yarn dedupe + working-directory: ${{ env.WORKING_DIRECTORY }} + env: + HUSKY: 0 + + - name: Commit changes + run: | + git add . + git commit -m 'Dedupe dependencies' + working-directory: ${{ env.WORKING_DIRECTORY }} + + - name: Push changes + run: git push + working-directory: ${{ env.WORKING_DIRECTORY }}