PR test browserslist update #1
Workflow file for this run
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: 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' |