diff --git a/.github/workflows/check-dist.yml b/.github/workflows/check-dist.yml index 99c1f04a..2c6f6b5b 100644 --- a/.github/workflows/check-dist.yml +++ b/.github/workflows/check-dist.yml @@ -15,6 +15,7 @@ on: paths-ignore: - '**.md' workflow_dispatch: + workflow_call: jobs: check-dist: diff --git a/.github/workflows/dependabot-build.yml b/.github/workflows/dependabot-build.yml new file mode 100644 index 00000000..0f799916 --- /dev/null +++ b/.github/workflows/dependabot-build.yml @@ -0,0 +1,51 @@ +name: Run build for dependabot PRs + +on: + pull_request: + types: [opened, synchronize] + +permissions: + contents: write + pull-requests: read +jobs: + build: + if: ${{ github.actor == 'dependabot[bot]' }} + runs-on: ubuntu-latest + steps: + - name: Fetch Dependabot metadata + id: dependabot-metadata + uses: dependabot/fetch-metadata@v1 + - uses: actions/checkout@v3 + if: ${{ steps.dependabot-metadata.outputs.package-ecosystem == 'npm_and_yarn' }} + with: + ref: ${{ github.event.pull_request.head.sha }} + - name: Set up Node.js 16.x + if: ${{ steps.dependabot-metadata.outputs.package-ecosystem == 'npm_and_yarn' }} + uses: + actions/setup-node@v3 + with: + node-version: 16.x + - name: Install dependencies + if: ${{ steps.dependabot-metadata.outputs.package-ecosystem == 'npm_and_yarn' }} + run: npm ci + - name: Run build + if: ${{ steps.dependabot-metadata.outputs.package-ecosystem == 'npm_and_yarn' }} + run: | + npm run build + npm run package + - name: If there are changes commit them + id: commit + if: ${{ steps.dependabot-metadata.outputs.package-ecosystem == 'npm_and_yarn' }} + run: | + if [ "$(git diff --ignore-space-at-eol dist/ | wc -l)" -gt "0" ]; then + echo "Detected uncommitted changes after build." + git config --global user.name "bot" + git config --global user.email "bot@example.com" + git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/$GITHUB_REPOSITORY + git add dist/ + git commit -m "Update dist/ for dependabot" + git push -u origin HEAD:${{ github.event.pull_request.head.ref }} + fi + - name: Call check-dist + if: ${{ steps.commit.outputs.conclusion == 'success' }} + uses: ./.github/workflows/check-dist.yml