Added file upload for publications #198
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: CI Workflow | |
on: [push, pull_request] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: '8.2' | |
extensions: mbstring, zip, xml, curl, intl, sqlite, gd, pdo_mysql | |
tools: cs2pr, phpcbf, phpcs, phpmd, phpunit | |
- name: Install Composer dependencies | |
run: composer install | |
- name: Run phpcbf | |
run: phpcbf . | |
continue-on-error: ${{ github.ref != 'refs/heads/main' }} | |
#- name: Commit code formatting changes | |
# if: success() && github.ref != 'refs/heads/main' | |
# run: | | |
# git config user.name "GitHub Actions" | |
# git config user.email "[email protected]" | |
# git add src | |
# git diff --cached --quiet || (git commit -m "Update src from PHP Codesniffer" && git pull origin $(git rev-parse --abbrev-ref HEAD) --rebase --autostash && git push) | |
- name: Run phpcs | |
run: phpcs -q --report=checkstyle src | cs2pr | |
continue-on-error: ${{ github.ref != 'refs/heads/main' }} | |
- name: Run phpmd | |
run: phpmd src xml phpmd.xml --not-strict | |
continue-on-error: ${{ github.ref != 'refs/heads/main' }} | |
- name: List files in repository root | |
run: ls -alh | |
- name: List files in tests directory | |
run: ls -alh ./tests | |
- name: List files in vendor directory | |
run: ls -alh ./vendor | |
- name: Run PHPUnit tests | |
env: | |
XDEBUG_MODE: coverage | |
run: | | |
phpunit --bootstrap ./tests/bootstrap.php --configuration phpunit.xml --coverage-html ./coverage --coverage-text | tee coverage.txt | |
continue-on-error: ${{ github.ref != 'refs/heads/main' }} | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install remark presets | |
run: npm install remark-cli remark-preset-lint-consistent remark-preset-lint-recommended remark-lint-list-item-indent | |
- name: Run remark | |
run: npx remark . --output --use remark-preset-lint-consistent --use remark-preset-lint-recommended --use remark-lint-list-item-indent | |
- name: Check for linting errors | |
run: | | |
npx remark . --use remark-preset-lint-consistent --use remark-preset-lint-recommended --use remark-lint-list-item-indent | |
continue-on-error: ${{ github.ref != 'refs/heads/main' }} | |
- name: Git commit | |
if: success() && github.ref != 'refs/heads/main' | |
run: | | |
git config user.name "GitHub Actions" | |
git config user.email "[email protected]" | |
git add . | |
git add package.json package-lock.json | |
git diff --cached --quiet || (git commit -m "Update src from remark-lint" && git pull origin $(git rev-parse --abbrev-ref HEAD) --rebase --autostash && git push) | |
checks: | |
needs: [build, lint] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Setup PHP (for checks) | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: '8.2' | |
extensions: mbstring, zip, xml, curl, intl, sqlite, gd, pdo_mysql | |
tools: cs2pr, phpcs, phpmd, phpunit | |
- name: Run Checks | |
run: | | |
if ! command -v phpcs &> /dev/null; then | |
echo "phpcs could not be found. Please ensure it's installed." | |
exit 1 | |
fi | |
if ! command -v phpmd &> /dev/null; then | |
echo "phpmd could not be found. Please ensure it's installed." | |
exit 1 | |
fi | |
if phpcs -q --report=checkstyle src | grep -q "ERROR"; then | |
echo "PHP CodeSniffer found issues. Please fix them before merging." | |
exit 1 | |
fi | |
if phpmd src xml phpmd.xml --strict | grep -q "ERROR"; then | |
echo "PHP Mess Detector found issues. Please fix them before merging." | |
exit 1 | |
fi | |
# if ! phpunit --bootstrap ./tests/bootstrap.php --configuration phpunit.xml; then | |
# echo "PHPUnit tests failed. Please fix them before merging." | |
# exit 1 | |
#fi | |
if ! npx remark . --use remark-preset-lint-consistent --use remark-preset-lint-recommended --use remark-lint-list-item-indent; then | |
echo "Markdown linting failed. Please fix them before merging." | |
exit 1 | |
fi | |
continue-on-error: false |