Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #336 from PHPCSStandards/feature/ghactions-automat…
…e-phpcs-version-update-pr GH Actions: add new workflow to automate repeated task
- Loading branch information
Showing
2 changed files
with
85 additions
and
1 deletion.
There are no files selected for viewing
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
name: Update PHPCS version | ||
|
||
on: | ||
# Run every day at 3:40. | ||
schedule: | ||
- cron: '40 3 * * *' | ||
# And whenever this workflow is updated. | ||
pull_request: | ||
paths: | ||
- '.github/workflows/update-phpcs-versionnr.yml' | ||
# Also allow manually triggering the workflow. | ||
workflow_dispatch: | ||
|
||
# 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: | ||
phpcs-version-check: | ||
name: "Check latest PHPCS version" | ||
# Don't run the cron job on forks. | ||
if: ${{ github.event_name != 'schedule' || github.repository == 'PHPCSStandards/PHPCSUtils' }} | ||
|
||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Retrieve latest PHPCS release info | ||
uses: octokit/request-action@v2.x | ||
id: get_latest_release | ||
with: | ||
route: GET /repos/squizlabs/PHP_CodeSniffer/releases/latest | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: "Debug info: Show API request failure status" | ||
if: ${{ failure() }} | ||
run: "echo No release found. Request failed with status ${{ steps.get_latest_release.outputs.status }}" | ||
|
||
- name: Grab latest tag name from API response | ||
id: version | ||
run: | | ||
echo "::set-output name=TAG::${{ fromJson(steps.get_latest_release.outputs.data).tag_name }}" | ||
- name: Show tag name found in API response | ||
run: "echo latest release: ${{ steps.version.outputs.TAG }}" | ||
|
||
- name: Set branches to use | ||
id: branches | ||
run: | | ||
echo "::set-output name=BASE::develop" | ||
echo "::set-output name=PR_BRANCH::feature/getversiontest-update-phpcs-version" | ||
- name: Checkout code | ||
uses: actions/checkout@v3 | ||
with: | ||
ref: ${{ steps.branches.outputs.BASE }} | ||
|
||
- name: Update the version constant in the test file | ||
uses: jacobtomlinson/gha-find-replace@v2 | ||
with: | ||
find: "const DEVMASTER = '[^']+';" | ||
replace: "const DEVMASTER = '${{ steps.version.outputs.TAG }}';" | ||
include: "Tests/BackCompat/Helper/GetVersionTest.php" | ||
regex: true | ||
|
||
- name: "Debug info: Show git status" | ||
run: git status -vv --untracked=all | ||
|
||
- name: Create pull request | ||
uses: peter-evans/create-pull-request@v4 | ||
with: | ||
base: ${{ steps.branches.outputs.BASE }} | ||
branch: ${{ steps.branches.outputs.PR_BRANCH }} | ||
delete-branch: true | ||
commit-message: "GetVersionTest: update for release of PHPCS ${{ steps.version.outputs.TAG }}" | ||
title: "GetVersionTest: update for release of PHPCS ${{ steps.version.outputs.TAG }}" | ||
# yamllint disable rule:line-length | ||
body: | | ||
This PR is auto-generated by [create-pull-request](https://github.com/peter-evans/create-pull-request) using the [`update-phpcs-versionnr.yml` workflow](https://github.com/PHPCSStandards/PHPCSUtils/blob/develop/.github/workflows/update-phpcs-versionnr.yml). | ||
# yamllint enable rule:line-length | ||
labels: | | ||
Type: chores/QA | ||
reviewers: | | ||
jrfnl |