diff --git a/.github/workflows/actionlint.yml b/.github/workflows/actionlint.yml index ed1dfca..7235a2e 100644 --- a/.github/workflows/actionlint.yml +++ b/.github/workflows/actionlint.yml @@ -3,23 +3,15 @@ name: actionlint on: push: branches: - - main + - main paths: - - .github/workflows/** + - .github/workflows/** pull_request: branches: - - main + - main paths: - - .github/workflows/** + - .github/workflows/** jobs: actionlint: - name: Lint GitHub Actions workflows - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v6 - - - name: Run actionlint - uses: rhysd/actionlint@v1.7.12 + uses: openCoreEMR/github-workflows-public/.github/workflows/actionlint.yml@0.0.4 diff --git a/.github/workflows/composer-normalize.yml b/.github/workflows/composer-normalize.yml index 12dca86..4a77595 100644 --- a/.github/workflows/composer-normalize.yml +++ b/.github/workflows/composer-normalize.yml @@ -3,39 +3,21 @@ name: Composer Normalize on: push: branches: - - main + - main + paths: + - composer.json + - .github/workflows/composer-normalize.yml pull_request: branches: - - main + - main + paths: + - composer.json + - .github/workflows/composer-normalize.yml jobs: composer-normalize: - if: ${{ !github.event.repository.is_template }} - name: Normalize composer.json (check) - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v6 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: '8.5' - extensions: json, curl - coverage: none - tools: composer:v2 - - - name: Cache Composer dependencies - uses: actions/cache@v5 - with: - path: vendor - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - - name: Install dependencies - run: composer install --prefer-dist --no-progress --no-interaction - - - name: Normalize composer.json (check) + uses: openCoreEMR/github-workflows-public/.github/workflows/php-composer-script.yml@0.0.4 + with: + name: Normalize composer.json (check) run: composer normalize --dry-run + php-version: '8.5' diff --git a/.github/workflows/composer-require-checker.yml b/.github/workflows/composer-require-checker.yml index 67e62a4..7b9571f 100644 --- a/.github/workflows/composer-require-checker.yml +++ b/.github/workflows/composer-require-checker.yml @@ -3,39 +3,28 @@ name: Composer Require Checker on: push: branches: - - main + - main + paths: + - composer.json + - composer.lock + - '**.php' + - .composer-require-checker.json + - .github/workflows/composer-require-checker.yml pull_request: branches: - - main + - main + paths: + - composer.json + - composer.lock + - '**.php' + - .composer-require-checker.json + - .github/workflows/composer-require-checker.yml jobs: composer-require-checker: - if: ${{ !github.event.repository.is_template }} - name: Run Composer Require Checker - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v6 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: '8.5' - extensions: json, curl - coverage: none - tools: composer:v2, composer-require-checker - - - name: Cache Composer dependencies - uses: actions/cache@v5 - with: - path: vendor - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - - name: Install dependencies - run: composer install --prefer-dist --no-progress --no-interaction - - - name: Run Composer Require Checker - run: composer-require-checker check --config-file=.composer-require-checker.json + uses: openCoreEMR/github-workflows-public/.github/workflows/php-composer-script.yml@0.0.4 + with: + name: Run Composer Require Checker + run: composer require-checker + php-tools: 'composer:v2, composer-require-checker' + php-version: '8.5' diff --git a/.github/workflows/composer-validate.yml b/.github/workflows/composer-validate.yml index 7e379a6..143ad1b 100644 --- a/.github/workflows/composer-validate.yml +++ b/.github/workflows/composer-validate.yml @@ -3,28 +3,22 @@ name: Composer Validate on: push: branches: - - main + - main + paths: + - composer.json + - .github/workflows/composer-validate.yml pull_request: branches: - - main + - main + paths: + - composer.json + - .github/workflows/composer-validate.yml jobs: composer-validate: - if: ${{ !github.event.repository.is_template }} - name: Validate composer.json - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v6 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: '8.5' - extensions: json, curl - coverage: none - tools: composer:v2 - - - name: Validate composer.json + uses: openCoreEMR/github-workflows-public/.github/workflows/php-composer-script.yml@0.0.4 + with: + name: Validate composer.json run: composer validate --strict + install-deps: false + php-version: '8.5' diff --git a/.github/workflows/conventional-pr-title.yml b/.github/workflows/conventional-pr-title.yml index e8a595b..c1cf897 100644 --- a/.github/workflows/conventional-pr-title.yml +++ b/.github/workflows/conventional-pr-title.yml @@ -4,33 +4,6 @@ on: pull_request: types: [opened, edited, synchronize, reopened] -permissions: - pull-requests: read - jobs: conventional-pr-title: - runs-on: ubuntu-latest - steps: - - uses: amannn/action-semantic-pull-request@v6 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - types: | - feat - fix - docs - style - refactor - perf - test - build - ci - chore - revert - deps - requireScope: false - subjectPattern: ^(?![A-Z]).+$ - subjectPatternError: | - The subject "{subject}" found in the pull request title "{title}" - didn't match the configured pattern. Please ensure that the subject - doesn't start with an uppercase character. + uses: openCoreEMR/github-workflows-public/.github/workflows/conventional-pr-title.yml@0.0.4 diff --git a/.github/workflows/dclint.yml b/.github/workflows/dclint.yml index a56309a..c80ab4f 100644 --- a/.github/workflows/dclint.yml +++ b/.github/workflows/dclint.yml @@ -3,46 +3,23 @@ name: dclint on: push: branches: - - main + - main paths: - - '**/docker-compose*.yml' - - '**/docker-compose*.yaml' - - compose.yml - - compose.yaml + - '**/compose.yml' + - '**/compose.yaml' + - '**/docker-compose*.yml' + - '**/docker-compose*.yaml' + - .github/workflows/dclint.yml pull_request: branches: - - main + - main paths: - - '**/docker-compose*.yml' - - '**/docker-compose*.yaml' - - compose.yml - - compose.yaml + - '**/compose.yml' + - '**/compose.yaml' + - '**/docker-compose*.yml' + - '**/docker-compose*.yaml' + - .github/workflows/dclint.yml jobs: dclint: - name: Lint Docker Compose files - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v6 - - - name: Setup Node.js - uses: actions/setup-node@v6 - with: - node-version: '20' - - - name: Install dclint - run: npm install -g dclint - - - name: Run dclint - run: | - git ls-files -z 'compose.yml' \ - 'compose.yaml' \ - 'docker-compose*.yml' \ - 'docker-compose*.yaml' \ - '**/compose.yml' \ - '**/compose.yaml' \ - '**/docker-compose*.yml' \ - '**/docker-compose*.yaml' | - xargs --null --no-run-if-empty dclint + uses: openCoreEMR/github-workflows-public/.github/workflows/dclint.yml@0.0.4 diff --git a/.github/workflows/hadolint.yml b/.github/workflows/hadolint.yml index 0250873..642946f 100644 --- a/.github/workflows/hadolint.yml +++ b/.github/workflows/hadolint.yml @@ -3,27 +3,17 @@ name: hadolint on: push: branches: - - main + - main paths: - - '**/Dockerfile*' + - '**/Dockerfile*' + - .github/workflows/hadolint.yml pull_request: branches: - - main + - main paths: - - '**/Dockerfile*' + - '**/Dockerfile*' + - .github/workflows/hadolint.yml jobs: hadolint: - name: Lint Dockerfiles - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v6 - - - name: Run hadolint - run: | - git ls-files -z 'Dockerfile*' \ - '**/Dockerfile*' | - xargs --null --no-run-if-empty --replace={} \ - docker run --rm -v "$PWD:/workdir" -w /workdir hadolint/hadolint hadolint "{}" + uses: openCoreEMR/github-workflows-public/.github/workflows/hadolint.yml@0.0.4 diff --git a/.github/workflows/php-syntax-check.yml b/.github/workflows/php-syntax-check.yml index 324a256..c10959d 100644 --- a/.github/workflows/php-syntax-check.yml +++ b/.github/workflows/php-syntax-check.yml @@ -3,28 +3,24 @@ name: PHP Syntax Check on: push: branches: - - main + - main + paths: + - '**.php' + - composer.json + - .github/workflows/php-syntax-check.yml pull_request: branches: - - main + - main + paths: + - '**.php' + - composer.json + - .github/workflows/php-syntax-check.yml jobs: php-syntax-check: - if: ${{ !github.event.repository.is_template }} - name: PHP Syntax Check - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v6 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: '8.5' - extensions: json, curl - coverage: none - tools: composer:v2 - - - name: PHP Syntax Check + uses: openCoreEMR/github-workflows-public/.github/workflows/php-composer-script.yml@0.0.4 + with: + name: PHP Syntax Check run: composer php-lint + install-deps: false + php-version: '8.5' diff --git a/.github/workflows/phpcs.yml b/.github/workflows/phpcs.yml index c4b8a61..f55d013 100644 --- a/.github/workflows/phpcs.yml +++ b/.github/workflows/phpcs.yml @@ -3,39 +3,29 @@ name: PHP CodeSniffer on: push: branches: - - main + - main + paths: + - '**.php' + - '.phpcs.xml*' + - 'phpcs.xml*' + - composer.json + - composer.lock + - .github/workflows/phpcs.yml pull_request: branches: - - main + - main + paths: + - '**.php' + - '.phpcs.xml*' + - 'phpcs.xml*' + - composer.json + - composer.lock + - .github/workflows/phpcs.yml jobs: phpcs: - if: ${{ !github.event.repository.is_template }} - name: Run PHP CodeSniffer - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v6 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: '8.5' - extensions: json, curl - coverage: none - tools: composer:v2 - - - name: Cache Composer dependencies - uses: actions/cache@v5 - with: - path: vendor - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - - name: Install dependencies - run: composer install --prefer-dist --no-progress --no-interaction - - - name: Run PHP CodeSniffer + uses: openCoreEMR/github-workflows-public/.github/workflows/php-composer-script.yml@0.0.4 + with: + name: Run PHP CodeSniffer run: composer phpcs + php-version: '8.5' diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml index 8f43cd6..8a172e2 100644 --- a/.github/workflows/phpstan.yml +++ b/.github/workflows/phpstan.yml @@ -3,39 +3,31 @@ name: PHPStan on: push: branches: - - main + - main + paths: + - '**.php' + - phpstan.neon + - phpstan.neon.dist + - phpstan-baseline.neon + - composer.json + - composer.lock + - .github/workflows/phpstan.yml pull_request: branches: - - main + - main + paths: + - '**.php' + - phpstan.neon + - phpstan.neon.dist + - phpstan-baseline.neon + - composer.json + - composer.lock + - .github/workflows/phpstan.yml jobs: phpstan: - if: ${{ !github.event.repository.is_template }} - name: Run PHPStan - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v6 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: '8.5' - extensions: json, curl - coverage: none - tools: composer:v2 - - - name: Cache Composer dependencies - uses: actions/cache@v5 - with: - path: vendor - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - - name: Install dependencies - run: composer install --prefer-dist --no-progress --no-interaction - - - name: Run PHPStan + uses: openCoreEMR/github-workflows-public/.github/workflows/php-composer-script.yml@0.0.4 + with: + name: Run PHPStan run: composer phpstan + php-version: '8.5' diff --git a/.github/workflows/rector.yml b/.github/workflows/rector.yml index 08bac96..3c48d50 100644 --- a/.github/workflows/rector.yml +++ b/.github/workflows/rector.yml @@ -3,39 +3,27 @@ name: Rector on: push: branches: - - main + - main + paths: + - '**.php' + - rector.php + - composer.json + - composer.lock + - .github/workflows/rector.yml pull_request: branches: - - main + - main + paths: + - '**.php' + - rector.php + - composer.json + - composer.lock + - .github/workflows/rector.yml jobs: rector: - if: ${{ !github.event.repository.is_template }} - name: Run Rector (dry-run) - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v6 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: '8.5' - extensions: json, curl - coverage: none - tools: composer:v2 - - - name: Cache Composer dependencies - uses: actions/cache@v5 - with: - path: vendor - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - - name: Install dependencies - run: composer install --prefer-dist --no-progress --no-interaction - - - name: Run Rector (dry-run) + uses: openCoreEMR/github-workflows-public/.github/workflows/php-composer-script.yml@0.0.4 + with: + name: Run Rector (dry-run) run: composer rector + php-version: '8.5' diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 6a5644d..97e4904 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -3,62 +3,14 @@ name: Tests on: push: branches: - - main + - main pull_request: branches: - - main + - main jobs: test: - if: ${{ !github.event.repository.is_template }} - name: PHP ${{ matrix.php-version }} Tests - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - php-version: - - '8.5' - - steps: - - name: Checkout code - uses: actions/checkout@v6 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php-version }} - extensions: curl, json, mbstring - coverage: xdebug - tools: composer:v2 - - - name: Get composer cache directory - id: composer-cache - run: | - { - printf dir= - composer config cache-files-dir - } > "$GITHUB_OUTPUT" - - - name: Cache dependencies - uses: actions/cache@v5 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: ${{ runner.os }}-composer- - - - name: Install dependencies - run: composer install --prefer-dist --no-progress --no-interaction - - - name: Run tests with coverage - run: | - echo "::group::Running PHPUnit with Coverage" - vendor/bin/phpunit --coverage-text --coverage-html coverage-report --colors=never - echo "::endgroup::" - - - name: Upload coverage report - uses: actions/upload-artifact@v7 - with: - name: coverage-report - path: coverage-report/ - retention-days: 14 + uses: openCoreEMR/github-workflows-public/.github/workflows/php-tests.yml@0.0.4 + with: + php-versions: '["8.5"]' + coverage-php-version: '8.5'