tests.yml 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. name: Tests
  2. on: [push]
  3. jobs:
  4. Composer:
  5. runs-on: ubuntu-latest
  6. steps:
  7. - name: Checkout
  8. uses: actions/checkout@v2
  9. - name: Validate composer.json and composer.lock
  10. run: composer validate
  11. - name: Install dependencies
  12. run: composer install --prefer-dist --no-dev
  13. PHPunit:
  14. runs-on: ubuntu-latest
  15. strategy:
  16. matrix:
  17. php-versions: ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4']
  18. name: PHP ${{ matrix.php-versions }} unit tests on ${{ matrix.operating-system }}
  19. env:
  20. extensions: gd, sqlite3
  21. steps:
  22. # let's get started!
  23. - name: Checkout
  24. uses: actions/checkout@v2
  25. # cache PHP extensions
  26. - name: Setup cache environment
  27. id: extcache
  28. uses: shivammathur/cache-extensions@v1
  29. with:
  30. php-version: ${{ matrix.php-versions }}
  31. extensions: ${{ env.extensions }}
  32. key: ${{ runner.os }}-phpextensions
  33. - name: Cache extensions
  34. uses: actions/cache@v2
  35. with:
  36. path: ${{ steps.extcache.outputs.dir }}
  37. key: ${{ steps.extcache.outputs.key }}
  38. restore-keys: ${{ env.extensions }}
  39. - name: Setup PHP
  40. uses: shivammathur/setup-php@v2
  41. with:
  42. php-version: ${{ matrix.php-versions }}
  43. extensions: ${{ env.extensions }}
  44. # composer cache
  45. - name: Remove composer lock
  46. run: rm composer.lock
  47. - name: Get composer cache directory
  48. id: composer-cache
  49. run: echo "::set-output name=dir::$(composer config cache-files-dir)"
  50. # http://man7.org/linux/man-pages/man1/date.1.html
  51. # https://github.com/actions/cache#creating-a-cache-key
  52. - name: Get Date
  53. id: get-date
  54. run: |
  55. echo "::set-output name=date::$(/bin/date -u "+%Y%m%d")"
  56. shell: bash
  57. - name: Cache dependencies
  58. uses: actions/cache@v2
  59. with:
  60. path: ${{ steps.composer-cache.outputs.dir }}
  61. key: ${{ runner.os }}-composer-${{ steps.get-date.outputs.date }}-${{ hashFiles('**/composer.json') }}
  62. restore-keys: ${{ runner.os }}-composer-${{ steps.get-date.outputs.date }}-
  63. # composer
  64. - name: Setup PHPunit
  65. run: composer install -n
  66. - name: Install Google Cloud Storage
  67. run: composer require google/cloud-storage
  68. # testing
  69. - name: Run unit tests
  70. run: ../vendor/bin/phpunit --no-coverage
  71. working-directory: tst
  72. Mocha:
  73. runs-on: ubuntu-latest
  74. steps:
  75. - name: Checkout
  76. uses: actions/checkout@v2
  77. - name: Setup Node
  78. uses: actions/setup-node@v1
  79. with:
  80. node-version: '12'
  81. - name: Setup Mocha
  82. run: npm install -g mocha
  83. - name: Setup Node modules
  84. run: npm install
  85. working-directory: js
  86. - name: Run unit tests
  87. run: mocha
  88. working-directory: js