Update wp-cli framework #771
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 wp-cli framework | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
- master | |
schedule: | |
- cron: '17 4 * * *' # Run every day on a seemly random time. | |
# Cancels all previous workflow runs for the same branch that have not yet completed. | |
concurrency: | |
# The concurrency group contains the workflow name and the branch name. | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
update-framework: #---------------------------------------------------------- | |
name: Update wp-cli framework | |
runs-on: ubuntu-latest | |
if: ${{ github.repository_owner == 'wp-cli' }} | |
steps: | |
- name: Check out source code | |
uses: actions/checkout@v4 | |
- name: Set up PHP environment | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: '7.4' | |
env: | |
COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Check existence of composer.json file | |
id: check_composer_file | |
uses: andstor/file-existence-action@v3 | |
with: | |
files: "composer.json" | |
- name: Install Composer dependencies & cache dependencies | |
if: steps.check_composer_file.outputs.files_exists == 'true' | |
uses: "ramsey/composer-install@v3" | |
env: | |
COMPOSER_ROOT_VERSION: dev-${{ github.event.repository.default_branch }} | |
with: | |
# Bust the cache at least once a month - output format: YYYY-MM. | |
custom-cache-suffix: $(date -u "+%Y-%m") | |
- name: Configure git user | |
run: | | |
git config --global user.email "[email protected]" | |
git config --global user.name "wp-make-coffee" | |
- name: Check if remote branch exists | |
run: echo "REMOTE_BRANCH_EXISTS=$([[ -z $(git ls-remote --heads origin update-framework) ]] && echo "0" || echo "1")" >> $GITHUB_ENV | |
- name: Create branch to base pull request on | |
if: env.REMOTE_BRANCH_EXISTS == 0 | |
run: | | |
git checkout -b update-framework | |
- name: Fetch existing branch to add commits to | |
if: env.REMOTE_BRANCH_EXISTS == 1 | |
run: | | |
git fetch --all --prune | |
git checkout update-framework | |
git pull --no-rebase | |
- name: Update wp-cli framework | |
run: | | |
composer update wp-cli/wp-cli | |
- name: Check if there are changes | |
run: echo "CHANGES_DETECTED=$([[ -z $(git status --porcelain) ]] && echo "0" || echo "1")" >> $GITHUB_ENV | |
- name: Commit changes | |
if: env.CHANGES_DETECTED == 1 | |
run: | | |
git add composer.lock | |
git commit -m "Update wp-cli framework - $(date +'%Y-%m-%d')" | |
git push origin update-framework | |
- name: Create pull request | |
if: | | |
env.CHANGES_DETECTED == 1 && | |
env.REMOTE_BRANCH_EXISTS == 0 | |
uses: repo-sync/pull-request@v2 | |
with: | |
source_branch: update-framework | |
destination_branch: ${{ github.event.repository.default_branch }} | |
github_token: ${{ secrets.ACTIONS_BOT }} | |
pr_title: Update wp-cli framework | |
pr_body: "**This is an automated pull-request**\n\nUpdates the `wp-cli/wp-cli` framework to the latest changeset." | |
pr_label: scope:framework |