Skip to content

Proposal: automatically add strict types #5

Proposal: automatically add strict types

Proposal: automatically add strict types #5

name: Add Strict Types
on:
pull_request:
branches:
- trunk
jobs:
add-strict-types:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Install PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
- name: Check for new PHP files
id: check
run: |
git fetch origin +refs/heads/trunk:refs/remotes/origin/trunk
NEW_PHP_FILES=$(git diff --name-only refs/remotes/origin/trunk HEAD -- '*.php' | xargs -r grep -LE 'declare\( strict_types=1 \)')
if [ -n "$NEW_PHP_FILES" ]; then
echo "::set-output name=strict_types_needed::true"
echo "New PHP files without strict types: $NEW_PHP_FILES"
else
echo "::set-output name=strict_types_needed::false"
fi
- name: Add strict types to new PHP files
if: steps.check.outputs.strict_types_needed == 'true'
run: |
git fetch origin trunk:trunk
for file in $(git diff --name-only origin/trunk...HEAD -- '*.php' | xargs grep -LE 'declare\( strict_types=1 \)'); do
sed -i '1s/^/<?php declare( strict_types=1 );\n/' "$file"
git add "$file"
done
git commit -m "Add strict types to new PHP files"
git push -u origin HEAD:refs/heads/add-strict-types-${{ github.sha }}
- name: Comment on PR
if: steps.check.outputs.strict_types_needed == 'true'
uses: thollander/actions-comment-pull-request@v1
with:
message: "We've found some PHP files that don't have strict types. This commit adds them. Branch: add-strict-types-${{ github.sha }}"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# - name: Create PR
# if: steps.check.outputs.strict_types_needed == 'true'
# uses: peter-evans/create-pull-request@v3
# with:
# token: ${{ secrets.GITHUB_TOKEN }}
# commit-message: "Add strict types to new PHP files"
# title: "[Automation]: Add strict types"
# body: "We've found some PHP files that don't have strict types. This PR adds them."
# branch: add-strict-types-${{ github.sha }}
# branch-suffix: timestamp
# labels: Automation