Skip to content

⏫ (📒)

⏫ (📒) #2

name: '⏫ (📒)'
on:
schedule:
- cron: '0 15 * * *'
workflow_dispatch:
jobs:
update-deps:
runs-on: ubuntu-latest
name: Dependencies Update
steps:
- name: ➕ Actions - Checkout
uses: actions/checkout@v4
- name: ➕ Actions - Setup NodeJS
uses: actions/setup-node@v4
with:
node-version: '22.x'
- name: Cache Dependencies
uses: actions/cache@v4
with:
path: ~/.npm
key: npm-website-${{ hashFiles('website/package-lock.json') }}
restore-keys: npm-website-
- name: Installing Dependencies
run: cd website && npm ci
- name: ⏫ Updating Dependencies
run: cd website && npm run update
- name: ⚙️ Configuring Git
run: |
git update-index --refresh > /dev/null 2>&1 || true
- name: 🔎 Checking for Changes
id: check_changes
run: |
if git diff-index --quiet HEAD --; then
echo "changes=false" >> $GITHUB_OUTPUT
else
echo "changes=true" >> $GITHUB_OUTPUT
fi
- name: 🔍 Checking if "jq" is installed
if: steps.check_changes.outputs.changes == 'true'
run: sudo apt-get install -y jq
- name: 🔍 Checking if Pull Request exists
if: steps.check_changes.outputs.changes == 'true'
id: check_pr
uses: octokit/[email protected]
with:
route: GET /repos/:owner/:repo/pulls
owner: ${{ github.repository_owner }}
repo: ${{ github.event.repository.name }}
state: open
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: 🔎 Checking if PR exists and is open
if: steps.check_changes.outputs.changes == 'true'
id: set_pr_exists
run: |
echo "pr_exists=false" >> $GITHUB_OUTPUT
for pr in $(jq -r '.[] | select(.title=="chore(website): update dependencies") | .number' <<< "${{ steps.check_pr.outputs.data }}"); do
echo "pr_exists=true" >> $GITHUB_OUTPUT
done
- name: 🚀 Commiting and Pushing Changes
if: steps.check_changes.outputs.changes == 'true'
run: |
git add .
git commit -m 'chore(website): update dependencies'
git push origin HEAD:deps-docs --force
env:
GITHUB_TOKEN: ${{ secrets.PAT }}
- name: 🧙🏻 Creating Pull Request
if: steps.check_changes.outputs.changes == 'true' && steps.set_pr_exists.outputs.pr_exists == 'false'
uses: peter-evans/create-pull-request@v6
with:
token: ${{ secrets.PAT }}
branch: deps-docs
delete-branch: true
title: 'chore(website): update dependencies'
body: '- 🤖 Daily update website dependencies'
labels: |
dependencies