Skip to content

Bash script for updating Drupal core and/or contributed modules with Composer. It can be used as a GitHub action or as a standalone script/integrated into other CI tools.

License

Notifications You must be signed in to change notification settings

valicm/drupal-update

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Description

Bash script for updating Drupal core and/or contributed modules with Composer. It can be used as a GitHub action or as a standalone script/integrated into other CI tools.

Features

  • perform minor or major updates to Drupal core / contributed modules
  • options to exclude modules from check and/or enable Drupal core checks
  • outputs Markdown table of changes as a file or environment variable
  • highlight failed patches
  • can be used as a GitHub action
  • can be used as a standalone script.

Notes

  • supported update type modes are semver-safe-update and all. All represents full upgrade between major core versions.
  • Semver necessarily does not mean minor versions only (etc 2.1.0, 2.1.2).
  • If you requested package as ^11.0, any release as ^11.5 is considered by this script as minor.
  • The provided patch failures could be in some scenarios false-positive.
  • This tool is not providing a one click upgrade - review release notes for each module, etc.

GitHub Action Usage

See action.yml

    steps:
      - uses: actions/checkout@v2
      - name: Check updates
        id: updates
        uses: valicm/drupal-update@v4

GitHub action example to create PR with updates

  • Runs each day once at midnight.
  • Perform minor/security updates
  • Creates automated PR with branch drupal-automated-updates (you need to set secret variable named MY_PERSONAL_TOKEN in your repo, so that PR can be created)
name: Automated Drupal updates

on:
  workflow_dispatch:
  schedule:
    - cron: '0 0 * * *'

jobs:
  check-available-updates:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        
      - name: Check updates
        id: updates
        uses: valicm/drupal-update@v4

      - name: create pull-request
        uses: peter-evans/create-pull-request@v5
        with:
          token: ${{ secrets.MY_PERSONAL_TOKEN }}
          commit-message: Automated Drupal updates
          title: Automated Drupal updates
          body: ${{ env.DRUPAL_UPDATES_TABLE }}
          branch: drupal-automated-updates
          delete-branch: true

Standalone script usage

Example Command
Run all minor and security updates bash drupal-update.sh
Run any update (minor, security, major) bash drupal-update.sh -t all
Run any update, except for Drupal core bash drupal-update.sh -t all -c false
Run minor update, excluding some modules bash drupal-update.sh -e pathauto,redirect
Run all updates, saving summary in upgrade.md bash drupal-update.sh -t all -o upgrade.md

Get all minor updates and output results in summary.md file.

curl -fsSL https://raw.githubusercontent.com/valicm/drupal-update/main/drupal-update.sh | bash -s -- -o summary.md

About

Bash script for updating Drupal core and/or contributed modules with Composer. It can be used as a GitHub action or as a standalone script/integrated into other CI tools.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages