tests.yml 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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. - name: Checkout
  23. uses: actions/checkout@v2
  24. # cache PHP extensions
  25. - name: Setup cache environment
  26. id: extcache
  27. uses: shivammathur/cache-extensions@v1
  28. with:
  29. php-version: ${{ matrix.php-versions }}
  30. extensions: ${{ env.extensions }}
  31. key: ${{ runner.os }}-phpextensions
  32. - name: Cache extensions
  33. uses: actions/cache@v2
  34. with:
  35. path: ${{ steps.extcache.outputs.dir }}
  36. key: ${{ steps.extcache.outputs.key }}
  37. restore-keys: ${{ env.extensions }}
  38. - name: Setup PHP
  39. uses: shivammathur/setup-php@v2
  40. with:
  41. php-version: ${{ matrix.php-versions }}
  42. extensions: ${{ env.extensions }}
  43. # composer cache
  44. - name: Remove composer lock
  45. run: rm composer.lock
  46. - name: Get composer cache directory
  47. id: composer-cache
  48. run: echo "::set-output name=dir::$(composer config cache-files-dir)"
  49. # http://man7.org/linux/man-pages/man1/date.1.html
  50. # https://github.com/actions/cache#creating-a-cache-key
  51. - name: Get Date
  52. id: get-date
  53. run: |
  54. echo "::set-output name=date::$(/bin/date -u "+%Y%m%d")"
  55. shell: bash
  56. - name: Cache dependencies
  57. uses: actions/cache@v2
  58. with:
  59. path: ${{ steps.composer-cache.outputs.dir }}
  60. key: ${{ runner.os }}-composer-${{ steps.get-date.outputs.date }}-${{ hashFiles('**/composer.json') }}
  61. restore-keys: ${{ runner.os }}-composer-${{ steps.get-date.outputs.date }}-
  62. # composer
  63. - name: Setup PHPunit
  64. run: composer install -n
  65. - name: Install Google Cloud Storage
  66. run: composer require google/cloud-storage
  67. # testing
  68. - name: Run unit tests
  69. run: ../vendor/bin/phpunit --no-coverage
  70. working-directory: tst
  71. Mocha:
  72. runs-on: ubuntu-latest
  73. steps:
  74. - name: Checkout
  75. uses: actions/checkout@v2
  76. - name: Setup Node
  77. uses: actions/setup-node@v1
  78. with:
  79. node-version: '12'
  80. - name: Setup Mocha
  81. run: npm install -g mocha
  82. - name: Setup Node modules
  83. run: npm install
  84. working-directory: js
  85. - name: Run unit tests
  86. run: mocha
  87. working-directory: js