⏫ (📒) #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |