Преглед изворни кода

Enhancement: Run jobs on GitHub Actions

Andreas Möller пре 5 година
родитељ
комит
e25bea0343
2 измењених фајлова са 78 додато и 0 уклоњено
  1. 77 0
      .github/workflows/continuous-integration.yml
  2. 1 0
      README.md

+ 77 - 0
.github/workflows/continuous-integration.yml

@@ -0,0 +1,77 @@
+# https://help.github.com/en/categories/automating-your-workflow-with-github-actions
+
+name: "Continuous Integration"
+
+on:
+  - "pull_request"
+
+env:
+  COMPOSER_FLAGS: "--ansi --no-interaction --no-progress --no-suggest --prefer-dist --optimize-autoloader"
+  SYMFONY_PHPUNIT_VERSION: ""
+
+jobs:
+  tests:
+    name: "Tests"
+
+    runs-on: "ubuntu-latest"
+
+    strategy:
+      matrix:
+        php-version:
+          - "5.3"
+          - "5.4"
+          - "5.5"
+          - "5.6"
+          - "7.0"
+          - "7.1"
+          - "7.2"
+          - "7.3"
+          - "7.4"
+
+        dependencies:
+          - "locked"
+          - "highest"
+
+    steps:
+      - name: "Checkout"
+        uses: "actions/checkout@v2"
+
+      - name: "Install PHP"
+        uses: "shivammathur/setup-php@v2"
+        with:
+          coverage: "none"
+          ini-values: "memory_limit=-1"
+          php-version: "${{ matrix.php-version }}"
+
+      - name: "Determine composer cache directory"
+        id: "determine-composer-cache-directory"
+        run: "echo \"::set-output name=directory::$(composer config cache-dir)\""
+
+      - name: "Cache dependencies installed with composer"
+        uses: "actions/cache@v1"
+        with:
+          path: "${{ steps.determine-composer-cache-directory.outputs.directory }}"
+          key: "php-${{ matrix.php-version }}-symfony-php-unit-version-${{ env.SYMFONY_PHPUNIT_VERSION }}-${{ hashFiles('**/composer.lock') }}"
+          restore-keys: "php-${{ matrix.php-version }}-symfony-php-unit-version-${{ env.SYMFONY_PHPUNIT_VERSION }}"
+
+      - name: "Install highest dependencies from composer.json using composer binary provided by system"
+        if: "matrix.dependencies == 'highest'"
+        run: "composer update ${{ env.COMPOSER_FLAGS }}"
+
+      - name: "Install dependencies from composer.lock using composer binary provided by system"
+        if: "matrix.dependencies == 'locked'"
+        run: "composer install ${{ env.COMPOSER_FLAGS }}"
+
+      - name: "Install dependencies from composer.lock using composer binary from source"
+        if: "matrix.dependencies == 'locked'"
+        run: "bin/composer install ${{ env.COMPOSER_FLAGS }}"
+
+      - name: "Prepare git environment"
+        run: "git config --global user.name composer && git config --global user.email composer@example.com"
+
+      - name: "Set SYMFONY_PHPUNIT_VERSION environment variable"
+        if: "matrix.php-version == '7.4'"
+        run: "echo \"::set-env name=SYMFONY_PHPUNIT_VERSION::7.5\""
+
+      - name: "Run tests"
+        run: "vendor/bin/simple-phpunit"

+ 1 - 0
README.md

@@ -5,6 +5,7 @@ Composer helps you declare, manage, and install dependencies of PHP projects.
 
 See [https://getcomposer.org/](https://getcomposer.org/) for more information and documentation.
 
+[![Continuous Integration](https://github.com/composer/composer.svg/workflows/Continuous%20Integration/badge.svg?branch=master)](https://github.com/composer/composer.svg/actions)
 [![Build Status](https://travis-ci.org/composer/composer.svg?branch=master)](https://travis-ci.org/composer/composer)
 
 Installation / Usage