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.
- 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.
- supported update type modes are
semver-safe-update
andall
.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 asminor
. - 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.
See action.yml
steps:
- uses: actions/checkout@v2
- name: Check updates
id: updates
uses: valicm/drupal-update@v4
- 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
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