Last active
October 1, 2022 15:28
-
-
Save hhamon/378231d2852e45fffddaa7135fcd6773 to your computer and use it in GitHub Desktop.
Revisions
-
hhamon revised this gist
Apr 3, 2020 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -10,7 +10,7 @@ env: working_directory: ./application php_extensions: 'apcu, bcmath, ctype, curl, dom, iconv, intl, json, mbstring, opcache, openssl, pdo, pdo_pgsql, pcntl, pcov, posix, redis, session, simplexml, sockets, tokenizer, xml, xmlwriter, zip' key: cache-v0.1 DATABASE_URL: 'postgres://postgres:postgres@localhost:5432/application?charset=UTF-8' REDIS_URL: 'redis://localhost:6379' jobs: lint: @@ -202,7 +202,7 @@ jobs: env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: application ports: - '5432:5432' options: '--health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5' -
hhamon created this gist
Apr 3, 2020 .There are no files selected for viewing
This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,289 @@ name: '[PROJECT NAME]' 'on': push: branches: - master - develop - 'releases/**' pull_request: null env: working_directory: ./application php_extensions: 'apcu, bcmath, ctype, curl, dom, iconv, intl, json, mbstring, opcache, openssl, pdo, pdo_pgsql, pcntl, pcov, posix, redis, session, simplexml, sockets, tokenizer, xml, xmlwriter, zip' key: cache-v0.1 DATABASE_URL: 'postgres://postgres:postgres@localhost:5432/saas_jungle_com?charset=UTF-8' REDIS_URL: 'redis://localhost:6379' jobs: lint: strategy: fail-fast: false matrix: operating-system: - ubuntu-latest php-versions: - '7.3' runs-on: '${{ matrix.operating-system }}' name: 'Lint / PHP ${{ matrix.php-versions }} @ ${{ matrix.operating-system }}' steps: - name: Checkout uses: actions/checkout@v2 - name: 'Setup cache environment' id: cache-env uses: shivammathur/cache-extensions@v1 with: php-version: '${{ matrix.php-versions }}' extensions: '${{ env.php_extensions }}' key: '${{ env.key }}' - name: 'Cache extensions' uses: actions/cache@v1 with: path: '${{ steps.cache-env.outputs.dir }}' key: '${{ steps.cache-env.outputs.key }}' restore-keys: '${{ steps.cache-env.outputs.key }}' - name: 'Setup PHP' uses: shivammathur/setup-php@v2 with: php-version: '${{ matrix.php-versions }}' extensions: '${{ env.php_extensions }}' ini-values: 'date.timezone=UTC, upload_max_filesize=20M, post_max_size=20M, memory_limit=512M, short_open_tag=Off' coverage: xdebug tools: 'cs2pr, php-cs-fixer, phpstan, phpunit' - name: 'Setup problem matchers for PHP (aka PHP error logs)' run: 'echo "::add-matcher::${{ runner.tool_cache }}/php.json"' - name: 'Setup problem matchers for PHPUnit' run: 'echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"' - name: 'Get Composer cache directory' id: composer-cache run: 'echo "::set-output name=dir::$(composer config cache-files-dir)"' working-directory: '${{env.working_directory}}' - name: 'Cache dependencies' uses: actions/cache@v1 with: path: '${{ steps.composer-cache.outputs.dir }}' key: '${{ runner.os }}-composer-${{ hashFiles(''**/composer.lock'') }}' restore-keys: '${{ runner.os }}-composer-' - name: 'Validate composer.json and composer.lock' run: 'composer validate' working-directory: '${{env.working_directory}}' - name: 'Install PHP dependencies with Composer' run: 'composer install --prefer-dist --no-progress --no-suggest --optimize-autoloader' working-directory: '${{env.working_directory}}' - name: 'Linting PHP source files' run: 'php -l src || echo "No syntax errors detected in src"' working-directory: '${{env.working_directory}}' - name: 'Linting PHP tests files' run: 'php -l tests || echo "No syntax errors detected in tests"' working-directory: '${{env.working_directory}}' - name: 'Linting Twig templates' run: 'php bin/console lint:twig --show-deprecations templates' working-directory: '${{env.working_directory}}' - name: 'Linting YAML configuration files' run: 'php bin/console lint:yaml --parse-tags config' working-directory: '${{env.working_directory}}' - name: 'Linting YAML translations files' run: 'php bin/console lint:yaml --parse-tags translations' working-directory: '${{env.working_directory}}' - name: 'Linting XLIFF translations files' run: 'php bin/console lint:xliff translations' working-directory: '${{env.working_directory}}' - name: 'Linting Symfony service container' run: 'php bin/console lint:container' working-directory: '${{env.working_directory}}' static_analysis: strategy: fail-fast: false matrix: operating-system: - ubuntu-latest php-versions: - '7.3' runs-on: '${{ matrix.operating-system }}' name: 'Static Analysis / PHP ${{ matrix.php-versions }} @ ${{ matrix.operating-system }}' needs: - lint steps: - name: Checkout uses: actions/checkout@v2 - name: 'Setup cache environment' id: cache-env uses: shivammathur/cache-extensions@v1 with: php-version: '${{ matrix.php-versions }}' extensions: '${{ env.php_extensions }}' key: '${{ env.key }}' - name: 'Cache extensions' uses: actions/cache@v1 with: path: '${{ steps.cache-env.outputs.dir }}' key: '${{ steps.cache-env.outputs.key }}' restore-keys: '${{ steps.cache-env.outputs.key }}' - name: 'Setup PHP' uses: shivammathur/setup-php@v2 with: php-version: '${{ matrix.php-versions }}' extensions: '${{ env.php_extensions }}' ini-values: 'date.timezone=UTC, upload_max_filesize=20M, post_max_size=20M, memory_limit=512M, short_open_tag=Off' coverage: xdebug tools: 'cs2pr, php-cs-fixer, phpstan, phpunit' - name: 'Setup problem matchers for PHP (aka PHP error logs)' run: 'echo "::add-matcher::${{ runner.tool_cache }}/php.json"' - name: 'Setup problem matchers for PHPUnit' run: 'echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"' - name: 'Get Composer cache directory' id: composer-cache run: 'echo "::set-output name=dir::$(composer config cache-files-dir)"' working-directory: '${{env.working_directory}}' - name: 'Cache dependencies' uses: actions/cache@v1 with: path: '${{ steps.composer-cache.outputs.dir }}' key: '${{ runner.os }}-composer-${{ hashFiles(''**/composer.lock'') }}' restore-keys: '${{ runner.os }}-composer-' - name: 'Validate composer.json and composer.lock' run: 'composer validate' working-directory: '${{env.working_directory}}' - name: 'Install PHP dependencies with Composer' run: 'composer install --prefer-dist --no-progress --no-suggest --optimize-autoloader' working-directory: '${{env.working_directory}}' - name: 'Static Analysis using PHP-CS-Fixer' run: 'php-cs-fixer fix --dry-run --diff --format=checkstyle | cs2pr' working-directory: '${{env.working_directory}}' - name: 'Static Analysis using PHPStan' run: 'phpstan analyse --no-progress -v --level=max --error-format=checkstyle src | cs2pr' working-directory: '${{env.working_directory}}' - name: 'Static Analysis using PSALM' run: './vendor/bin/psalm --threads=8 --diff --diff-methods --show-info=true' working-directory: '${{env.working_directory}}' unit_testing: strategy: fail-fast: false matrix: operating-system: - ubuntu-latest php-versions: - '7.3' runs-on: '${{ matrix.operating-system }}' name: 'Unit Testing / PHP ${{ matrix.php-versions }} @ ${{ matrix.operating-system }}' needs: - lint - static_analysis services: postgres: image: 'postgres:11' env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: saas_jungle_com ports: - '5432:5432' options: '--health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5' redis: image: redis ports: - '6379:6379' options: '--health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=5' steps: - name: Checkout uses: actions/checkout@v2 - name: 'Setup cache environment' id: cache-env uses: shivammathur/cache-extensions@v1 with: php-version: '${{ matrix.php-versions }}' extensions: '${{ env.php_extensions }}' key: '${{ env.key }}' - name: 'Cache extensions' uses: actions/cache@v1 with: path: '${{ steps.cache-env.outputs.dir }}' key: '${{ steps.cache-env.outputs.key }}' restore-keys: '${{ steps.cache-env.outputs.key }}' - name: 'Setup PHP' uses: shivammathur/setup-php@v2 with: php-version: '${{ matrix.php-versions }}' extensions: '${{ env.php_extensions }}' ini-values: 'date.timezone=UTC, upload_max_filesize=20M, post_max_size=20M, memory_limit=512M, short_open_tag=Off' coverage: xdebug tools: 'cs2pr, php-cs-fixer, phpstan, phpunit' - name: 'Setup problem matchers for PHP (aka PHP error logs)' run: 'echo "::add-matcher::${{ runner.tool_cache }}/php.json"' - name: 'Setup problem matchers for PHPUnit' run: 'echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"' - name: 'Get Composer cache directory' id: composer-cache run: 'echo "::set-output name=dir::$(composer config cache-files-dir)"' working-directory: '${{env.working_directory}}' - name: 'Cache dependencies' uses: actions/cache@v1 with: path: '${{ steps.composer-cache.outputs.dir }}' key: '${{ runner.os }}-composer-${{ hashFiles(''**/composer.lock'') }}' restore-keys: '${{ runner.os }}-composer-' - name: 'Validate composer.json and composer.lock' run: 'composer validate' working-directory: '${{env.working_directory}}' - name: 'Install PHP dependencies with Composer' run: 'composer install --prefer-dist --no-progress --no-suggest --optimize-autoloader' working-directory: '${{env.working_directory}}' - name: 'Create PostgreSQL Database' run: 'php bin/console doctrine:database:create --if-not-exists' working-directory: '${{env.working_directory}}' - name: 'Migrate PostgreSQL Database Schema' run: 'php bin/console doctrine:migrations:migrate -n || echo "No migrations found or migration failed"' working-directory: '${{env.working_directory}}' - name: 'Load PostgreSQL Database Fixtures' run: 'php bin/console doctrine:fixtures:load -n' working-directory: '${{env.working_directory}}' - name: 'Run Unit Tests with PHPUnit' run: 'php bin/phpunit --coverage-text --coverage-clover=coverage/clover.xml' working-directory: '${{env.working_directory}}' - name: 'Send Code Coverage Report' continue-on-error: true timeout-minutes: 1 run: 'curl -s https://codecov.io/bash | bash -s -- -t ${{secrets.CODECOV_TOKEN}} -f coverage/clover.xml -n github-actions-codecov-${{ matrix.operating-system }}-php${{ matrix.php-versions }}' working-directory: '${{env.working_directory}}'