Skip to content

PR test browserslist update #1

PR test browserslist update

PR test browserslist update #1

name: Update Browserslist DB
on:
schedule:
- cron: '0 0 1 * *' # Runs at 00:00 on the 1st of every month
workflow_dispatch: # Allows manual triggering of the workflow
pull_request:
jobs:
update-browserslist-db:
name: 'Run Browserlist update'
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
run: yarn
- name: Update Browserslist DB
id: update-browserslist-db
run: |
OUTPUT=$(npx update-browserslist-db@latest)
echo "$OUTPUT"
echo "UPDATE_OUTPUT=$OUTPUT" >> "$GITHUB_OUTPUT"
LATEST_VERSION=$(echo "$OUTPUT" | grep -oP 'Latest version:\s+\K[^\s]+')
INSTALLED_VERSION=$(echo "$OUTPUT" | grep -oP 'Installed version:\s+\K[^\s]+')
echo "latest_version=$LATEST_VERSION" >> "$GITHUB_OUTPUT"
echo "installed_version=$INSTALLED_VERSION" >> "$GITHUB_OUTPUT"
- name: Check if update was successful
id: check-update
run: |
echo "Update Output: ${{ steps.update-browserslist-db.outputs.UPDATE_OUTPUT }}"
echo "Latest Version: ${{ steps.update-browserslist-db.outputs.latest_version }}"
echo "Installed Version: ${{ steps.update-browserslist-db.outputs.installed_version }}"
if [[ "${{ steps.update-browserslist-db.outputs.latest_version }}" == "${{ steps.update-browserslist-db.outputs.installed_version }}" ]] || [[ ! "${{ steps.update-browserslist-db.outputs.UPDATE_OUTPUT }}" == *"caniuse-lite has been successfully updated"* ]]; then
echo "No updates were made to Browserslist DB. Stopping the workflow."
exit 0
fi
- name: Import GPG key
id: import-gpg
uses: crazy-max/ghaction-import-gpg@v6
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.GPG_PASSPHRASE }}
git_user_signingkey: true
git_commit_gpgsign: true
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
with:
token: ${{ secrets.GITHUB_TOKEN }}
committer: ${{ steps.import-gpg.outputs.name }} <${{ steps.import-gpg.outputs.email }}>
author: ${{ steps.import-gpg.outputs.name }} <${{ steps.import-gpg.outputs.email }}>
commit-message: '[CI] Update browserslist DB to ${{ steps.update-browserslist-db.outputs.latest_version }}'
branch-suffix: ${{ steps.update-browserslist-db.outputs.latest_version }}
branch: update-browserslist-db
title: 'Bump browserslist DB from ${{ steps.update-browserslist-db.outputs.installed_version }} to ${{ steps.update-browserslist-db.outputs.latest_version }}'
body: |
Bumps caniuse-lite from ${{ steps.update-browserslist-db.outputs.installed_version }} to ${{ steps.update-browserslist-db.outputs.latest_version }}.
Update output: ${{ steps.update-browserslist-db.outputs.UPDATE_OUTPUT }}
labels: 'dependencies'