Proyectos de Subversion Moodle

Rev

Autoría | Ultima modificación | Ver Log |

name: Moodle Plugin CI

on:
  push:
  pull_request:
  workflow_dispatch:
  schedule:
    - cron: '0 0 1 * *'

jobs:
  ci:
    name: CI
    runs-on: ubuntu-20.04

    strategy:
      fail-fast: false
      matrix:
        include:
          - php: '8.2'
            database: 'pgsql'
            moodle-branch: 'master'
          - php: '8.1'
            database: 'pgsql'
            moodle-branch: 'MOODLE_403_STABLE'
            # EOL 2025-04-14
          - php: '8.0'
            database: 'mariadb'
            moodle-branch: 'MOODLE_402_STABLE'
            # EOL 2024-10-07
          - php: '7.4'
            database: 'mariadb'
            moodle-branch: 'MOODLE_401_STABLE'
            # LTS, EOL 2025-12-08

    services:
      postgres:
        image: postgres:13
        env:
          POSTGRES_USER: 'postgres'
          POSTGRES_HOST_AUTH_METHOD: 'trust'
        ports:
          - 5432:5432
        options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 3

      mariadb:
        image: mariadb:10.6
        env:
          MYSQL_USER: 'root'
          MYSQL_ALLOW_EMPTY_PASSWORD: "true"
        ports:
          - 3306:3306
        options: --health-cmd="mysqladmin ping" --health-interval 10s --health-timeout 5s --health-retries 3

    steps:
    - name: Checkout
      uses: actions/checkout@v3
      with:
        path: plugin

    - name: Setup PHP
      uses: shivammathur/setup-php@v2
      with:
        php-version: ${{ matrix.php }}
        extensions: pgsql, zip, gd
        ini-values: max_input_vars=5000
        coverage: none

    - name: Deploy moodle-plugin-ci
      run: |
        composer create-project -n --no-dev --prefer-dist moodlehq/moodle-plugin-ci ci ^3
        echo $(cd ci/bin; pwd) >> $GITHUB_PATH
        echo $(cd ci/vendor/bin; pwd) >> $GITHUB_PATH
        sudo locale-gen en_AU.UTF-8
        echo "NVM_DIR=$HOME/.nvm" >> $GITHUB_ENV

    - name: Install Moodle
      run: moodle-plugin-ci install --plugin ./plugin --db-host=127.0.0.1
      env:
        DB: ${{ matrix.database }}
        MOODLE_BRANCH: ${{ matrix.moodle-branch }}
        MOODLE_REPO: https://github.com/moodle/moodle.git

    - name: Run phplint
      if: ${{ always() }}
      run: moodle-plugin-ci phplint

    - name: Run phpcpd
      if: ${{ always() }}
      run: moodle-plugin-ci phpcpd

    - name: Run phpmd
      if: ${{ always() }}
      run: moodle-plugin-ci phpmd

    - name: Run codechecker
      if: ${{ always() }}
      run: moodle-plugin-ci codechecker

    - name: Run validate
      if: ${{ always() }}
      run: moodle-plugin-ci validate

    - name: Run savepoints
      if: ${{ always() }}
      run: moodle-plugin-ci savepoints

    - name: Run grunt
      if: ${{ always() }}
      run: moodle-plugin-ci grunt

    - name: Run phpdoc
      if: ${{ always() }}
      run: moodle-plugin-ci phpdoc

    - name: Run phpunit
      if: ${{ always() }}
      run: moodle-plugin-ci phpunit

    - name: Run behat
      if: ${{ always() }}
      run: moodle-plugin-ci behat --profile chrome