chore(deps): bump the dependencies group with 5 updates #644
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: Code Quality | |
on: | |
# schedule: # scheduled to run at 23.00 on Saturday (UTC), means 6.00 on Monday (WIB) | |
# - cron: '0 23 * * 6' | |
push: | |
branches: [main] | |
# paths: ['.github/**.yml', '**.php', '**.js', '**.ts', '**.vue'] | |
pull_request: | |
branches: [main] | |
# paths: ['.github/**.yml', '**.php', '**.js', '**.ts', '**.vue'] | |
jobs: | |
prepare: | |
name: Prepare | |
uses: projek-xyz/actions/.github/workflows/configure.yml@main | |
secrets: | |
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} | |
build: | |
name: Build | |
needs: prepare | |
uses: projek-xyz/actions/.github/workflows/build.yml@main | |
secrets: | |
ACCESS_TOKEN: ${{ secrets.PAT }} | |
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} | |
SENTRY_DSN: ${{ secrets.SENTRY_DSN }} | |
with: | |
branch: ${{ needs.prepare.outputs.target-branch }} | |
composer-cache: ${{ needs.prepare.outputs.composer-cache }} | |
composer-cache-key: ${{ needs.prepare.outputs.composer-cache-key }} | |
sentry-project: ${{ vars.SENTRY_PROJECT }} | |
units: | |
name: Unit Test on PHP ${{ matrix.php }} | |
runs-on: ubuntu-latest | |
needs: [prepare, build] | |
env: | |
APP_ENV: ${{ vars.APP_ENV }} | |
APP_URL: ${{ vars.APP_URL }} | |
DB_DATABASE: ${{ github.repository_owner }} | |
DB_USERNAME: ${{ github.repository_owner }} | |
DB_PASSWORD: secret | |
services: | |
postgresql: | |
image: postgres:14 | |
env: | |
POSTGRES_DB: ${{ env.DB_DATABASE }} | |
POSTGRES_USER: ${{ env.DB_USERNAME }} | |
POSTGRES_PASSWORD: ${{ env.DB_PASSWORD }} | |
ports: | |
- 5432:5432 | |
options: >- | |
--health-cmd=pg_isready | |
--health-interval=10s | |
--health-timeout=5s | |
--health-retries=3 | |
strategy: | |
fail-fast: false | |
matrix: | |
php: [8.1, 8.2] | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup PHP ${{ matrix.php }} | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
extensions: curl, dom, gd, imagick, intl, libxml, mbstring, pcntl, pdo, pdo_pgsql, zip | |
ini-values: error_reporting=E_ALL | |
coverage: xdebug | |
env: | |
GITHUB_TOKEN: ${{ secrets.PAT }} | |
- name: Prepare Composer Cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{ needs.prepare.outputs.composer-cache }} | |
key: ${{ needs.prepare.outputs.composer-cache-key }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: ${{ needs.prepare.outputs.composer-cache-key }}-composer- | |
- name: Install dependencies | |
run: | | |
cp .github/.env.example .env | |
composer update --prefer-dist --no-interaction --no-progress --ansi | |
php artisan key:generate | |
- name: Download assets | |
id: download | |
uses: actions/download-artifact@v4 | |
with: | |
name: build-${{ needs.build.outputs.target-env }} | |
path: public | |
- name: Run unit tests | |
run: php artisan test --ansi --coverage | |
- name: Generate reports for CodeClimate | |
id: reports | |
if: needs.prepare.outputs.has-codeclimate == '1' | |
env: | |
CODECLIMATE_REPORT: tests/reports/codeclimate.${{ matrix.php }}.json | |
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} | |
CC_TEST_REPORTER_URL: ${{ vars.CC_TEST_REPORTER_URL }} | |
run: | | |
curl -LSs $CC_TEST_REPORTER_URL > ./cc-test-reporter && chmod +x ./cc-test-reporter | |
./cc-test-reporter format-coverage -t clover -o $CODECLIMATE_REPORT tests/reports/clover.xml | |
- name: Upload tests reports | |
if: needs.prepare.outputs.has-codeclimate == '1' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: test-reports-${{ matrix.php }} | |
path: tests/reports/codeclimate.${{ matrix.php }}.json | |
e2e: | |
name: Integration Test on BrowserStack | |
if: github.actor != 'dependabot[bot]' | |
runs-on: ubuntu-latest | |
needs: [prepare, build] | |
env: | |
APP_ENV: ${{ vars.APP_ENV }} | |
APP_URL: ${{ vars.APP_URL }} | |
DB_DATABASE: ${{ github.repository_owner }} | |
DB_USERNAME: ${{ github.repository_owner }} | |
DB_PASSWORD: secret | |
DEBUGBAR_ENABLED: false | |
DUSK_HEADLESS_DISABLED: true | |
services: | |
postgresql: | |
image: postgres:14 | |
env: | |
POSTGRES_DB: ${{ env.DB_DATABASE }} | |
POSTGRES_USER: ${{ env.DB_USERNAME }} | |
POSTGRES_PASSWORD: ${{ env.DB_PASSWORD }} | |
ports: | |
- 5432:5432 | |
options: >- | |
--health-cmd=pg_isready | |
--health-interval=10s | |
--health-timeout=5s | |
--health-retries=3 | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.2 | |
extensions: curl, dom, gd, igbinary, imagick, intl, libxml, mbstring, pcntl, pdo, pdo_pgsql, zip | |
ini-values: error_reporting=E_ALL | |
tools: composer:v2 | |
coverage: xdebug | |
env: | |
GITHUB_TOKEN: ${{ secrets.PAT }} | |
- name: Prepare Composer Cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{ needs.prepare.outputs.composer-cache }} | |
key: ${{ needs.prepare.outputs.composer-cache-key }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: ${{ needs.prepare.outputs.composer-cache-key }}-composer- | |
- name: Install dependencies | |
run: | | |
cp .github/.env.example .env | |
composer update --prefer-dist --no-interaction --no-progress --ansi | |
php artisan key:generate | |
- name: Download assets | |
id: download | |
uses: actions/download-artifact@v4 | |
with: | |
name: build-${{ needs.build.outputs.target-env }} | |
path: public | |
- name: Start dev server | |
run: php artisan serve > /dev/null 2>&1 & | |
- name: Run e2e tests | |
env: | |
BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }} | |
BROWSERSTACK_ACCESS_KEY: ${{ secrets.BROWSERSTACK_ACCESS_KEY }} | |
run: | | |
php artisan dusk:browserstack-local | |
php artisan dusk --ansi | |
- name: Upload e2e tests logs | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: e2e-logs | |
path: | | |
tests/Browser/console | |
tests/Browser/screenshots | |
reports: | |
name: Report Test Coverages | |
if: needs.prepare.outputs.should-reports == '1' | |
uses: projek-xyz/actions/.github/workflows/report.yml@main | |
needs: [prepare, units] | |
with: | |
has-codeclimate: ${{ needs.prepare.outputs.has-codeclimate == '1' }} | |
secrets: | |
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} |