[SITE-1585] Move check-commits into GitHub actions #791
Workflow file for this run
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 and Test | |
on: | |
pull_request: | |
types: | |
- opened | |
- reopened | |
- synchronize | |
- ready_for_review | |
permissions: | |
contents: write | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
php-version: ['8.1', '8.2', '8.3'] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
- name: Cache Composer dependencies | |
id: composer-cache | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- name: Check Commits | |
run: | | |
# Don't warn about detached head. | |
git config advice.detachedHead false | |
git fetch --all | |
git checkout -b default origin/default | |
git checkout ${{ github.event.pull_request.head.sha }} | |
echo "This script does preliminary checks to make sure that the commits in a PR made in this repository are ready for the deploy-public-upstream script. i.e. any given commit modifies either 'normal' or 'non-release' files, never mixed." | |
bash ${{ github.workspace }}/devops/scripts/check-commits.sh | |
- name: Check Composer lock file is up to date | |
run: composer validate --no-check-all | |
- name: Install Composer dependencies | |
run: composer update --no-progress --prefer-dist --optimize-autoloader | |
- name: Run lints | |
run: | | |
composer lint:devops | |
composer lint | |
- name: Run tests | |
run: composer test | |
- name: Install bats | |
uses: bats-core/[email protected] | |
- name: Test Helper functions | |
env: | |
CI: 1 | |
run: | | |
bats -p -t .github/tests | |
- name: Create failure status artifact | |
if: failure() | |
run: | | |
# In the case of a failure, remove the previous status, whatever it was, and update it to 1. | |
if [ -f status-*.txt ]; then | |
rm status-*.txt | |
fi | |
echo "1" > status-${{ matrix.php-version }}.txt | |
- name: Create success status artifact | |
if: success() | |
run: | | |
# Only create a status file if it doesn't already exist. | |
if [ ! -f status.txt ]; then | |
echo "0" > status-${{ matrix.php-version }}.txt | |
fi | |
- name: Upload status artifact | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: status-${{ matrix.php-version }} | |
path: status-${{ matrix.php-version }}.txt |