diff --git a/.github/workflows/check-dist.yml b/.github/workflows/check-dist.yml index 99c1f04..2c6f6b5 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 0000000..c0053b0 --- /dev/null +++ b/.github/workflows/dependabot-build.yml @@ -0,0 +1,68 @@ +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: Check if dist/ needs to be updated + id: check + if: ${{ steps.dependabot-metadata.outputs.package-ecosystem == 'npm_and_yarn' }} + run: | + update=no + if [ "$(git diff --ignore-space-at-eol dist/ | wc -l)" -gt "0" ]; then + echo "Detected uncommitted changes after build." + update=yes + fi + echo "update=$update" >> $GITHUB_OUTPUT + + - uses: oleksiyrudenko/gha-git-credentials@v2.1.1 + if: ${{ steps.check.outputs.update == 'yes' }} + id: git-credentials + with: + token: '${{ secrets.GITHUB_TOKEN }}' + + - name: Commit changes + id: commit + run: | + git add dist/ + git commit -m "Update dist/ for dependabot" + git push -u origin HEAD:${{ github.event.pull_request.head.ref }} + if: ${{ steps.git-credentials.conclusion == 'success' }} + + - name: Call check-dist + if: ${{ steps.commit.conclusion == 'success' }} + uses: ./.github/workflows/check-dist.yml