Feature/13 GitHub action #23
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: Run validation with RoboValidate | |
on: | |
# Run on any branch so validate branch can always run. | |
push: | |
# Commit message validation requires a target branch which is only available in a PR. | |
pull_request: | |
jobs: | |
validate: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: '8.3' | |
tools: composer:v2 | |
# https://github.com/shivammathur/setup-php?tab=readme-ov-file#disable-coverage | |
coverage: none | |
- name: Get composer cache directory | |
id: composer-cache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache Composer dependencies | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: ${{ runner.os }}-composer | |
- name: Install Composer dependencies | |
run: | | |
composer install --ignore-platform-reqs --optimize-autoloader --no-progress --no-ansi | |
- name: Validate a change to any branch | |
if: github.event_name == 'push' | |
run: | | |
# Initialize status variables to 0 | |
status1=0 | |
status2=0 | |
status3=0 | |
php --version | |
# Run all commands and capture their exit statuses | |
vendor/bin/robo validate:branch-name || status1=$? || status1=0 | |
vendor/bin/robo validate:composer-lock || status3=$? || status3=0 | |
vendor/bin/robo validate:coding-standards || status2=$? || status2=0 | |
# Exit with a non-zero status if any command failed | |
if [ "$status1" -ne 0 ] || [ "$status2" -ne 0 ] || [ "$status3" -ne 0 ]; then | |
exit 1 | |
fi | |
- name: Validate pull requests | |
if: github.event_name == 'pull_request' | |
run: | | |
vendor/bin/robo validate:commit-messages --target-branch="${{ github.base_ref }}" --current-branch="${{ github.head_ref }}" |