From 12d18724461cc6d44fac792d164db26c033723bf Mon Sep 17 00:00:00 2001 From: Daniel Lando Date: Mon, 19 Feb 2024 10:05:45 +0100 Subject: [PATCH] chore: add update dep workflow --- .github/workflows/update-dep.yml | 72 ++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 .github/workflows/update-dep.yml diff --git a/.github/workflows/update-dep.yml b/.github/workflows/update-dep.yml new file mode 100644 index 000000000..9e645e5d4 --- /dev/null +++ b/.github/workflows/update-dep.yml @@ -0,0 +1,72 @@ +# Update a dependency On-Demand + +name: Update dependency On-Demand + +on: + workflow_dispatch: + inputs: + dep: + description: 'Dependency' + required: true + default: '@yao-pkg/pkg-fetch' + version: + description: 'Version' + required: false + default: '' + +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write + issues: write + + steps: + - uses: actions/checkout@v3 + + - name: Use Node.js 20 + uses: actions/setup-node@v3.6.0 + with: + node-version: 20.x + cache: 'yarn' + + - name: Update dependency + run: | + yarn add ${{github.event.inputs.dep}}@${{github.event.inputs.version || 'latest'}} + - name: Check for changes + id: check + run: | + git diff --name-only || true + if ! git diff --quiet ; then + echo "Has changes" + echo "changed=true" >> $GITHUB_OUTPUT + VERSION=$(npm info ${{github.event.inputs.dep}} version) + echo "version=$VERSION" >> $GITHUB_OUTPUT + else + echo "No changes detected. Dependency already up to date" + echo "changed=false" >> $GITHUB_OUTPUT + fi + - name: Create Pull Request + if: ${{ steps.check.outputs.changed == 'true' }} + id: cpr + uses: peter-evans/create-pull-request@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + commit-message: "feat: bump ${{github.event.inputs.dep}}@${{ steps.check.outputs.version }}" + branch: "${{github.event.inputs.dep}}@${{ steps.check.outputs.version }}" + delete-branch: true + title: "feat: bump ${{github.event.inputs.dep}}@${{ steps.check.outputs.version }}" + body: | + Update ${{github.event.inputs.dep}} to version ${{ steps.check.outputs.version }} + labels: | + dependencies + workflow-bump + base: main + draft: false + + - name: Check outputs + if: ${{ steps.check.outputs.changed == 'true' }} + run: | + echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" + echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"