Skip to content

Update Dependencies #22

Update Dependencies

Update Dependencies #22

name: Update Dependencies
on:
schedule:
- cron: "0 0 * * 0"
workflow_dispatch:
jobs:
preparation:
runs-on: ubuntu-latest
outputs:
latest_node_version: ${{ steps.latest_node.outputs.version }}
steps:
# https://github.com/actions/checkout
- uses: actions/checkout@v4
- name: set latest node version
id: latest_node
run: |
major_version="v$(cat .node-version | cut -d '.' -f 1)"
version=$(curl -s "${GITHUB_API_URL}/repos/nodejs/node/releases?per_page=100" | jq -r '.[].tag_name' | grep "^${major_version}" | sort -t '.' -k 1,1n -k 2,2n -k 3,3n | tail -n 1 | tr -d 'v')
echo "version=${version}" >> "${GITHUB_OUTPUT}"
pull_request:
runs-on: ubuntu-latest
needs:
- preparation
steps:
# https://github.com/actions/checkout
- uses: actions/checkout@v4
- name: update node version
env:
LATEST: ${{ needs.preparation.outputs.latest_node_version }}
run: |
echo ${LATEST} > .node-version
# https://github.com/actions/setup-node
- uses: actions/setup-node@v4
with:
cache: npm
node-version-file: .node-version
- name: install dependencies
run: npm install
- name: update dependencies
run: npm update
- name: set current date
id: date
run: |
date=$(date '+%Y-%m-%d')
echo "date=${date}" >> "${GITHUB_OUTPUT}"
# https://github.com/peter-evans/create-pull-request
- uses: peter-evans/create-pull-request@v5
id: create_pull_request
with:
branch: dependencies/${{ steps.date.outputs.date }}
commit-message: ":arrow_up: Update dependencies"
labels: dependencies
title: Update dependencies at ${{ steps.date.outputs.date }}
token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
# https://github.com/peter-evans/enable-pull-request-automerge
- uses: peter-evans/enable-pull-request-automerge@v3
if: steps.create_pull_request.outputs.pull-request-operation == 'created'
with:
pull-request-number: ${{ steps.create_pull_request.outputs.pull-request-number }}
token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}