YetiForceCompany/YetiForceCRM

View on GitHub
.github/workflows/actions.yml

Summary

Maintainability
Test Coverage
name: PHP actions

on:
  push:
    branches:
      - developer
  pull_request:
    branches:
      - developer

jobs:
  composer:
    name: Composer
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: 🔎 Check IP
        run: curl https://api.ipify.org

      - name: Validate composer.json and composer.lock
        run: composer validate

      - name: Cache Composer dependencies
        uses: actions/cache@v3
        with:
          path: /tmp/composer-cache
          key: ${{ runner.os }}-${{ hashFiles('**/composer.lock') }}

      - name: Install dependencies
        run: composer install --prefer-dist --no-progress --no-suggest

  code:
    name: Code
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: PHP VarDump Check Action
        uses: umutphp/php-var-dump-check-action@v1
        with:
          exclude: 'vendor,tests'

      - name: Check PHP syntax errors
        uses: overtrue/phplint@8.0

      - name: DevSkim
        uses: microsoft/DevSkim-Action@v1

      - name: codecov.io/validate
        run: curl --data-binary @codecov.yml https://codecov.io/validate

  copilot:
    name: CoPilot
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Code
        uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - name: Set up JDK 1.8
        uses: actions/setup-java@v3
        with:
          distribution: 'temurin'
          java-version: 18

      - name: Upload to CoPilot
        run: bash <(curl -s https://copilot.blackducksoftware.com/ci/githubactions/scripts/upload)

  test_swagger_editor_validator_remote:
    runs-on: ubuntu-latest
    name: Swagger Editor Validator Remote

    steps:
      - name: Checkout Code
        uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - name: Validate OpenAPI definition - WebservicePremium.yaml
        uses: char0n/swagger-editor-validate@v1.3.1
        with:
          definition-file: api/doc/WebservicePremium.yaml
      - name: Validate OpenAPI definition - ManageConsents.yaml
        uses: char0n/swagger-editor-validate@v1.3.1
        with:
          definition-file: api/doc/ManageConsents.yaml
      - name: Validate OpenAPI definition - WebserviceStandard.yaml
        uses: char0n/swagger-editor-validate@v1.3.1
        with:
          definition-file: api/doc/WebserviceStandard.yaml

  gitGuardian:
    name: GitGuardian scan
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Code
        uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: GitGuardian scan
        uses: GitGuardian/gg-shield-action@master
        env:
          GITHUB_PUSH_BEFORE_SHA: ${{ github.event.before }}
          GITHUB_PUSH_BASE_SHA: ${{ github.event.base }}
          GITHUB_PULL_BASE_SHA: ${{ github.event.pull_request.base.sha }}
          GITHUB_DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}
          GITGUARDIAN_API_KEY: ${{ secrets.GITGUARDIAN_API_KEY }}

  #
  # Documentation:
  # https://help.github.com/en/articles/workflow-syntax-for-github-actions
  #

  build:
    name: Lint Code Base
    runs-on: ubuntu-latest

    steps:
      - name: Checkout Code
        uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: Lint Code Base
        uses: docker://github/super-linter:v4.9.6
        env:
          DEFAULT_BRANCH: developer
          FILTER_REGEX_EXCLUDE: .*(*.min.js|*.min.css).*s
          VALIDATE_ALL_CODEBASE: false
          VALIDATE_PHP: true
          VALIDATE_JSON: true
          VALIDATE_YAML: true
          VALIDATE_XML: true
          VALIDATE_BASH: true
          VALIDATE_DOCKER: true
          VALIDATE_CSS: true
          VALIDATE_OPENAPI: true
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}