Skip to content
bar-chart-2

GitHub Action

browserslist-update-action

v2.5.0 Latest version

browserslist-update-action

bar-chart-2

browserslist-update-action

Runs `update-browserslist-db@latest` on a repository and proposes a pull request to merge updates

Installation

Copy and paste the following snippet into your .yml file.

              

- name: browserslist-update-action

uses: c2corg/[email protected]

Learn more about this action in c2corg/browserslist-update-action

Choose a version

browserslist-update-action

A GitHub Action that runs update-browserslist-db@latest on a repository and proposes a pull request to merge updates. Since v2.5, also supports other package managers (yarn, pnpm, bun, deno).

v2 vs v1

v1 uses command browserslist@latest --update-db which is now deprecated and to be removed in a future major browserslist release. It should be dropped in favor of v2 which uses new command update-browserslist-db@latest.

⚠️ v2 requires at least Node 15 (npm 6). Stick to v1 otherwise.

Usage

name: Update Browserslist database

on:
  schedule:
    - cron: '0 2 1,15 * *'

permissions:
  contents: write
  pull-requests: write

jobs:
  update-browserslist-database:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - name: Configure git
        run: |
          # Setup for commiting using built-in token. See https://github.com/actions/checkout#push-a-commit-using-the-built-in-token
          git config user.name "github-actions[bot]"
          git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
      - name: Update Browserslist database and create PR if applies
        uses: c2corg/browserslist-update-action@v2
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          branch: browserslist-update
          base_branch: main
          commit_message: 'build: update Browserslist db'
          title: 'build: update Browserslist db'
          body: Auto-generated by [browserslist-update-action](https://github.com/c2corg/browserslist-update-action/)
          labels: 'chores, github action'
          reviewers: 'user1,user2,user3'
          teams: 'team1'

Important

This action can only create a pull request if the Allow GitHub Actions to create and approve pull requests option is enabled in Settings > Actions > General.

Action inputs

Inputs with defaults are optional.

Name Description Default
github_token GITHUB_TOKEN (contents: write, pull-requests: write) or a repo scoped Personal Access Token (PAT). GITHUB_TOKEN
branch The pull request branch name. browserslist-update
base_branch The target branch into which the pull request will be merged. master
directory For monorepos, the directory to switch to when running action .
commit_message The message to use when committing changes. Update caniuse database
title The title of the pull request. 📈 Update caniuse database
body The body of the pull request. Caniuse database has been updated. Review changes, merge this PR and have a 🍺.
labels A comma separated list of labels to apply to the pull request. (no label)
reviewers A comma separated list of users (either login or id) to be added to the the pull request reviewers list. (no users)
teams A comma separated list of teams (either name or id) to be added to the the pull request reviewers list. (no teams)

One will usually run this action on a cron basis (say, every day or week)

Action outputs

Name Description
has_pr true if changes were found and a pull request was created or updated, false otherwise.
pr_number The number of the pull requested created or updated, if applies.
pr_status Can be either created or updated depending on whether the pull request was created or updated.

Contributing

Edit / add GraphQL queries and mutations

src/generated folder contains generated type definitions based on queries. Run npm run graphql to update.

Release a version

npm run lint
npm run build
npm run pack

Or shortly

npm run all

Then bump version number in package.json and package-lock.json. Push commits.

Keep a major version tag synchronized with updates, e.g. if you publish version v2.0.3, then a v2 branch should be positioned at the same location.