chore: add placeholders for cookiecutter #4
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
--- | |
# This file is part of package {{ cookiecutter.vendor_name }}/{{ cookiecutter.package_name }}. | |
# | |
# Package {{ cookiecutter.vendor_name }}/{{ cookiecutter.package_name }} is free software: you can redistribute it | |
# and/or modify it under the terms of the GNU General Public License as | |
# published by the Free Software Foundation, either version 3 of the License, or | |
# (at your option) any later version. | |
# | |
# Package {{ cookiecutter.vendor_name }}/{{ cookiecutter.package_name }} is distributed in the hope that it will be | |
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of | |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General | |
# Public License for more details. | |
# | |
# You should have received a copy of the GNU General Public License along with | |
# package {{ cookiecutter.vendor_name }}/{{ cookiecutter.package_name }}. If not, see <https://www.gnu.org/licenses/>. | |
## | |
# GitHub Actions workflow that lints and tests new code before its integration | |
# into the master branch of the source code repository. | |
# | |
# @see {@link https://docs.github.com/en/actions} GitHub Actions | |
# @author {{ cookiecutter.author_name }} <{{ cookiecutter.author_email }}> | |
# @copyright {% now 'utc', '%Y' %} {{ cookiecutter.author_name }} {@link {{ cookiecutter.author_website }}} | |
# @license {@link http://www.gnu.org/copyleft/gpl.html} GNU GPL v3 or later | |
## | |
name: Continous Integration | |
on: | |
push: | |
branches: ["master"] | |
pull_request: | |
branches: ["master"] | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: "8.3" | |
extensions: curl, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, iconv | |
coverage: xdebug | |
- name: Validate composer.json and composer.lock | |
run: composer validate --strict | |
- name: Cache Composer packages | |
id: composer-cache | |
uses: actions/cache@v3 | |
with: | |
path: vendor | |
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }} | |
restore-keys: | | |
${{ runner.os }}-php- | |
- name: Install dependencies | |
run: composer install --prefer-dist --no-progress | |
- name: Check for then fix coding style errors | |
run: composer cs-fix | |
- name: Commit linted files | |
uses: stefanzweifel/git-auto-commit-action@v5 | |
with: | |
commit_message: "refactor: fix coding style" | |
test: | |
needs: lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: "8.3" | |
extensions: curl, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, iconv | |
coverage: xdebug | |
- name: Restore Composer packages | |
id: composer-cache-restore | |
uses: actions/cache@v3 | |
with: | |
path: vendor | |
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }} | |
restore-keys: | | |
${{ runner.os }}-php- | |
- name: Install dependencies | |
run: composer install --prefer-dist --no-progress | |
- name: Run test suite | |
run: composer test-coverage | |
- name: Upload code coverage report | |
uses: actions/upload-artifact@v4 | |
with: | |
name: phpunit-code-coverage-clover-report | |
path: ./phpunit-code-coverage-clover.xml | |
retention-days: 1 | |
coverage: | |
needs: test | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: "8.3" | |
extensions: curl, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, iconv | |
coverage: xdebug | |
- name: Restore Composer packages | |
id: composer-cache-restore | |
uses: actions/cache@v3 | |
with: | |
path: vendor | |
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }} | |
restore-keys: | | |
${{ runner.os }}-php- | |
- name: Install dependencies | |
run: composer install --prefer-dist --no-progress | |
- name: Download code coverage report | |
uses: actions/download-artifact@v4 | |
with: | |
name: phpunit-code-coverage-clover-report | |
path: . | |
- name: Check code coverage | |
run: composer test-coverage-check | |
- name: Make code coverage badge | |
uses: timkrase/phpunit-coverage-badge@v1.2.1 | |
with: | |
report: phpunit-code-coverage-clover.xml | |
coverage_badge_path: output/coverage.svg | |
push_badge: false | |
- name: Git push to image-data branch | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
publish_dir: ./output | |
publish_branch: image-data | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
user_name: "github-actions[bot]" | |
user_email: "github-actions[bot]@users.noreply.github.com" |