Features #31
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: Lint checks | |
on: [pull_request] | |
jobs: | |
commit_message: | |
name: Validate the commit message | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Code checkout | |
uses: actions/checkout@v3 | |
- name: Check format | |
uses: gsactions/commit-message-checker@v2 | |
with: | |
pattern: '^((Merge )|(Revert )|((\w*)\(([\w]+)\)\: ([^\n]*)(\n\n?(.*))?)$)' | |
flags: 'is' | |
error: 'Invalid commit message format' | |
excludeTitle: true | |
excludeDescription: true | |
checkAllCommitMessages: true | |
accessToken: ${{ secrets.GITHUB_TOKEN }} | |
- name: Check line length | |
uses: gsactions/commit-message-checker@v2 | |
with: | |
pattern: '^.{1,160}(\n|$)' | |
flags: '' | |
error: 'Maximum line length of 160 characters exceeded on the first line' | |
excludeTitle: true | |
excludeDescription: true | |
checkAllCommitMessages: true | |
accessToken: ${{ secrets.GITHUB_TOKEN }} | |
- name: Check type | |
uses: gsactions/commit-message-checker@v2 | |
with: | |
pattern: '^((Merge )|(Revert )|(feat(ure)?|fix(es|ed)?|doc(s)?|chore|perf(ormance)?|security|deprecate(s|d)?|break(s)?|removed)?\()' | |
flags: 'is' | |
error: 'Invalid commit message type' | |
excludeTitle: true | |
excludeDescription: true | |
checkAllCommitMessages: true | |
accessToken: ${{ secrets.GITHUB_TOKEN }} | |
php_lint: | |
name: Validate composer.json and PHP Coding style | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Install PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: '8.0' | |
coverage: none | |
extensions: gd,pdo,xml,json,mysqli,pdo_mysql | |
- name: Code checkout | |
uses: actions/checkout@v3 | |
- name: Get Composer Cache Directory | |
id: composer-cache | |
run: echo "dir=$(composer config cache-files-dir)" >> ${GITHUB_OUTPUT} | |
- name: Restore Composer Cache | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Composer validate | |
run: composer validate | |
- name: Composer install | |
run: | | |
composer install | |
- name: PHP Code Style checks | |
run: vendor/bin/phpcs --standard=vendor/elgg/sniffs/src/Elgg -sp engine/classes engine/lib actions mod views | |
languages_lint: | |
name: Validate language files are UTF-8 encoded | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Code checkout | |
uses: actions/checkout@v3 | |
- name: Check encoding of Core language files | |
run: echo '! find ./languages/ -name "*.php" -type f -exec file --mime {} \; | grep -v "charset=utf-8$" | grep -v "charset=us-ascii$"' | bash | |
- name: Check encoding of Installation language files | |
run: echo '! find ./install/languages/ -name "*.php" -type f -exec file --mime {} \; | grep -v "charset=utf-8$" | grep -v "charset=us-ascii$"' | bash | |
- name: Check encoding of Plugin language files | |
run: echo '! find ./mod/*/languages/ -name "*.php" -type f -exec file --mime {} \; | grep -v "charset=utf-8$" | grep -v "charset=us-ascii$"' | bash |