From 9aa6ba590ae9bf782230e3a8300842967a6e3310 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Anne?= Date: Fri, 3 Nov 2023 16:49:59 +0100 Subject: [PATCH] Run tests using the `ghcr.io/glpi-project/githubactions-glpi` image --- .github/workflows/continuous-integration.yml | 84 +++++++------------- composer.json | 3 +- composer.lock | 56 ++++++++++++- 3 files changed, 85 insertions(+), 58 deletions(-) diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index c506ff9..b9611e6 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -11,58 +11,22 @@ on: workflow_dispatch: jobs: - lint: - name: "Lint" + ci: + name: "GLPI ${{ matrix.glpi-version }} / php:${{ matrix.php-version }} / ${{ matrix.db-image }}" runs-on: "ubuntu-latest" strategy: fail-fast: false matrix: include: - - {php-version: "7.4"} - steps: - - name: "Checkout" - uses: "actions/checkout@v4" - - name: "Setup PHP" - uses: "shivammathur/setup-php@v2" - with: - php-version: "${{ matrix.php-version }}" - coverage: "none" - tools: "composer, cs2pr" - - name: "Get Composer cache directory" - id: "composer-cache" - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - name: "Restore dependencies cache" - uses: "actions/cache@v3" - with: - path: "${{ steps.composer-cache.outputs.dir }}" - key: "${{ github.job }}-${{ matrix.php-version }}-dependencies-${{ hashFiles('**/composer.lock') }}" - - name: "Install Composer dependencies" - run: | - composer install --ansi --no-interaction --no-progress --prefer-dist - - name: "PHP Parallel Lint" - run: | - vendor/bin/parallel-lint --colors --checkstyle --exclude ./vendor/ . | cs2pr - - name: "PHP_CodeSniffer" - run: | - vendor/bin/phpcs -q --report=checkstyle | cs2pr - - name: "Check for missing/outdated headers" - run: | - vendor/bin/licence-headers-check --ansi --no-interaction - - tests: - name: "Test on GLPI ${{ matrix.glpi-version }}" - runs-on: "ubuntu-latest" - strategy: - fail-fast: false - matrix: - include: - - {glpi-version: "10.0", php-version: "7.4", db-image: "mysql:8.0"} + - {glpi-version: "10.0.x", php-version: "7.4", db-image: "mysql:5.7"} + - {glpi-version: "10.0.x", php-version: "8.0", db-image: "mysql:8.0"} + - {glpi-version: "10.0.x", php-version: "8.1", db-image: "mariadb:10.2"} + - {glpi-version: "10.0.x", php-version: "8.2", db-image: "mariadb:11.0"} + container: + image: "ghcr.io/glpi-project/githubactions-glpi:php-${{ matrix.php-version }}-glpi-${{ matrix.glpi-version }}" + options: >- + --volume ${{ github.workspace }}:/var/glpi/plugins:rw services: - app: - image: "ghcr.io/glpi-project/githubactions-php:${{ matrix.php-version }}" - options: >- - --volume /glpi:/var/glpi:rw db: image: "ghcr.io/glpi-project/githubactions-${{ matrix.db-image }}" env: @@ -70,9 +34,14 @@ jobs: MYSQL_DATABASE: "glpi" options: >- --shm-size=1g + defaults: + run: + working-directory: "/var/glpi/plugins/oauthimap" steps: - - name: "Checkout plugin" + - name: "Checkout" uses: "actions/checkout@v4" + with: + path: "oauthimap" - name: "Get Composer cache directory" id: "composer-cache" run: | @@ -85,13 +54,18 @@ jobs: - name: "Install Composer dependencies" run: | composer install --ansi --no-interaction --no-progress --prefer-dist - - name: "Deploy source into app container" + - name: "PHP Parallel Lint" run: | - curl --silent https://nightly.glpi-project.org/glpi/${{ matrix.glpi-version }}.tar.gz | sudo tar --extract --ungzip --strip 1 --directory /glpi - sudo cp --no-target-directory --preserve --recursive `pwd` /glpi/plugins/oauthimap - sudo setfacl --recursive --modify u:1000:rwx /glpi - - name: "Install" + vendor/bin/parallel-lint --colors --checkstyle --exclude ./vendor/ . | vendor/bin/cs2pr + - name: "PHP_CodeSniffer" + run: | + vendor/bin/phpcs -q --report=checkstyle | vendor/bin/cs2pr + - name: "Check for missing/outdated headers" + run: | + vendor/bin/licence-headers-check --ansi --no-interaction + - name: "Install plugin" + working-directory: "/var/glpi" run: | - docker exec ${{ job.services.app.id }} bin/console glpi:database:install --ansi --no-interaction --db-name=glpi --db-host=db --db-user=root --strict-configuration - docker exec ${{ job.services.app.id }} bin/console glpi:plugin:install --ansi --no-interaction --username=glpi oauthimap - docker exec ${{ job.services.app.id }} bin/console glpi:plugin:activate --ansi --no-interaction oauthimap + bin/console database:install --ansi --no-interaction --db-name=glpi --db-host=db --db-user=root --strict-configuration + bin/console plugin:install --ansi --no-interaction --username=glpi oauthimap + bin/console plugin:activate --ansi --no-interaction oauthimap diff --git a/composer.json b/composer.json index 106dcbb..391cd96 100644 --- a/composer.json +++ b/composer.json @@ -5,7 +5,8 @@ "require-dev": { "glpi-project/tools": "^0.6", "php-parallel-lint/php-parallel-lint": "^1.3", - "squizlabs/php_codesniffer": "^3.6" + "squizlabs/php_codesniffer": "^3.6", + "staabm/annotate-pull-request-from-checkstyle": "^1.8" }, "provide": { "guzzlehttp/guzzle": "*" diff --git a/composer.lock b/composer.lock index 96887a4..b613ddb 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "c29a3e8f6bed84ccf16d5162da0b9e05", + "content-hash": "e7e4613a37d7d5fd1b71f81038c1bd60", "packages": [], "packages-dev": [ { @@ -221,6 +221,58 @@ }, "time": "2023-02-22T23:07:41+00:00" }, + { + "name": "staabm/annotate-pull-request-from-checkstyle", + "version": "1.8.5", + "source": { + "type": "git", + "url": "https://github.com/staabm/annotate-pull-request-from-checkstyle.git", + "reference": "082e7f859860f6e79094b6ec86606bd6d0fe9014" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/staabm/annotate-pull-request-from-checkstyle/zipball/082e7f859860f6e79094b6ec86606bd6d0fe9014", + "reference": "082e7f859860f6e79094b6ec86606bd6d0fe9014", + "shasum": "" + }, + "require": { + "ext-libxml": "*", + "ext-simplexml": "*", + "php": "^5.3 || ^7.0 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.16.1" + }, + "bin": [ + "cs2pr" + ], + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Markus Staab" + } + ], + "keywords": [ + "Github Actions", + "continous integration", + "dev" + ], + "support": { + "issues": "https://github.com/staabm/annotate-pull-request-from-checkstyle/issues", + "source": "https://github.com/staabm/annotate-pull-request-from-checkstyle/tree/1.8.5" + }, + "funding": [ + { + "url": "https://github.com/staabm", + "type": "github" + } + ], + "time": "2023-05-08T15:56:45+00:00" + }, { "name": "symfony/console", "version": "v5.4.26", @@ -1132,5 +1184,5 @@ "platform-overrides": { "php": "7.4.0" }, - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.6.0" }