mimmi20/composer-plugin-symlink

View on GitHub
.github/workflows/continuous-integration.yml

Summary

Maintainability
Test Coverage
# https://help.github.com/en/categories/automating-your-workflow-with-github-actions

# file-version: 1.0

name: "Continuous Integration"

on:
  - pull_request
  - push

permissions:
  contents: read

concurrency:
  group: "${{ github.event_name }}-${{ github.workflow }}-${{ github.head_ref || github.run_id }}-${{ github.ref }}"
  cancel-in-progress: true

jobs:
  validate:
    name: "Validate Project"

    uses: "mimmi20/ci/.github/workflows/validate.yml@8.3"
    with:
      extensions: "ctype, curl, dom, iconv, intl, mbstring, simplexml, tokenizer, xml, xmlwriter"
      ini-values: "opcache.enable=1, opcache.fast_shutdown=0, zend.assertions=1, assert.exception=On, intl.default_locale=de, intl.use_exceptions=1, zend.exception_ignore_args=0"
      composer-options: "--optimize-autoloader --prefer-dist --prefer-stable -v"
      skip-validate-composer: false
      skip-validate-yaml: false
      skip-validate-md: false
      skip-phplint: false
      skip-check-composer: false
      skip-ec-checker: false
      dependency-analyser-options: "--ignore-dev-in-prod-deps"

  install:
    name: "Install Project"

    needs: "validate"

    uses: "mimmi20/ci/.github/workflows/install.yml@8.3"
    with:
      extensions: "ctype, curl, dom, iconv, intl, mbstring, simplexml, tokenizer, xml, xmlwriter"
      ini-values: "opcache.enable=1, opcache.fast_shutdown=0, zend.assertions=1, assert.exception=On, intl.default_locale=de, intl.use_exceptions=1, zend.exception_ignore_args=0"
      composer-options: "--optimize-autoloader --prefer-dist --prefer-stable -v"
      skip-php-install: false
      skip-npm-install: true

  analytics:
    name: "Project Analysis"

    needs: "install"

    uses: "mimmi20/ci/.github/workflows/analytics.yml@8.3"
    with:
      extensions: "ctype, curl, dom, iconv, intl, mbstring, simplexml, tokenizer, xml, xmlwriter"
      ini-values: "opcache.enable=1, opcache.fast_shutdown=0, zend.assertions=1, assert.exception=On, intl.default_locale=de, intl.use_exceptions=1, zend.exception_ignore_args=0"
      composer-options: "--optimize-autoloader --prefer-dist --prefer-stable -v"
      skip-php-cs-fixer: false
      skip-phpcs: false
      skip-phpstan: false
      skip-rector: false
      skip-phpmd: true
      skip-eslint: true
      skip-stylelint: true
      skip-prettier: true
      phpcs-options: ""

  tests:
    name: "UnitTests"

    needs: "analytics"

    uses: "mimmi20/ci/.github/workflows/test.yml@8.3"
    with:
      extensions: "ctype, dom, fileinfo, intl, simplexml, tokenizer, xml, xmlwriter"
      ini-values: "opcache.enable=1, opcache.fast_shutdown=0, zend.assertions=1, assert.exception=On, intl.default_locale=de, intl.use_exceptions=1, zend.exception_ignore_args=0"
      coverage: "xdebug"
      composer-options: "--optimize-autoloader --prefer-dist --prefer-stable -v"
      test-name: ""
      min-msi: 65
      min-covered-msi: 65
      skip-phpunit: false
      skip-vitest: true
      skip-stryker: true
      upload-codecov: true
      upload-codeclimate: true
      upload-coveralls: true
      upload-flag: ""
    secrets:
      ENV_CODECLIMATE_API_KEY: ${{ secrets.CODECLIMATE_API_KEY }}
      ENV_CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
      ENV_STRYKER_DASHBOARD_API_KEY: ${{ secrets.STRYKER_DASHBOARD_API_KEY }}

  # This is a meta job to avoid to have to constantly change the protection rules
  # whenever we touch the matrix.
  tests-status:
    name: "Unit & Integration Tests Status"

    runs-on: "ubuntu-24.04"

    if: always()

    needs:
      - "tests"

    steps:
      - name: Successful run
        if: ${{ !(contains(needs.*.result, 'failure')) }}
        run: exit 0

      - name: Failing run
        if: ${{ contains(needs.*.result, 'failure') }}
        run: exit 1