name: Lint on: pull_request jobs: xml-linters: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@master - name: Download schema run: wget https://apps.nextcloud.com/schema/apps/info.xsd - name: Lint info.xml uses: ChristophWurst/xmllint-action@v1 with: xml-file: ./appinfo/info.xml xml-schema-file: ./info.xsd php-linters: runs-on: ubuntu-latest strategy: matrix: php-versions: [7.2, 7.3, 7.4] name: php${{ matrix.php-versions }} lint steps: - name: Checkout uses: actions/checkout@master - name: Set up php${{ matrix.php-versions }} uses: shivammathur/setup-php@master with: php-version: ${{ matrix.php-versions }} tools: composer:v1 coverage: none - name: Lint run: composer run lint php-cs-fixer: name: php-cs check runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@master - name: Set up php uses: shivammathur/setup-php@master with: php-version: 7.4 tools: composer:v1 coverage: none - name: Install dependencies run: composer i - name: Run coding standards check run: composer run cs:check app-code-check: runs-on: ubuntu-latest strategy: matrix: nextcloud-versions: ['master'] name: Nextcloud ${{ matrix.nextcloud-versions }} app code check steps: - name: Set up php7.4 uses: shivammathur/setup-php@master with: php-version: 7.4 tools: composer:v1 extension-csv: ctype,curl,dom,gd,iconv,intl,json,mbstring,openssl,posix,sqlite,xml,zip coverage: xdebug - name: Checkout Nextcloud run: git clone https://github.com/nextcloud/server.git --recursive --depth 1 -b ${{ matrix.nextcloud-versions }} nextcloud - name: Run tests run: php -f nextcloud/occ maintenance:install --database-name oc_autotest --database-user oc_autotest --admin-user admin --admin-pass admin --database sqlite --database-pass='' - name: Checkout uses: actions/checkout@master with: path: nextcloud/apps/mail - name: Run tests run: php -f nextcloud/occ app:check-code mail node-linters: runs-on: ubuntu-latest name: ESLint steps: - uses: actions/checkout@master - name: Set up Node uses: actions/setup-node@v1 with: node-version: 12.x - name: npm install run: npm ci - name: eslint run: npm run lint env: CI: true