You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

integration-sqlite.yml 4.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. name: Integration sqlite
  2. on:
  3. pull_request:
  4. paths:
  5. # Only running on PR for this file to save CI time (otherwise pgsql only)
  6. - '.github/workflows/integration-sqlite.yml'
  7. push:
  8. branches:
  9. - main
  10. - master
  11. - stable*
  12. permissions:
  13. contents: read
  14. concurrency:
  15. group: integration-sqlite-${{ github.head_ref || github.run_id }}
  16. cancel-in-progress: true
  17. jobs:
  18. changes:
  19. runs-on: ubuntu-latest
  20. outputs:
  21. # FIXME src: ${{ steps.changes.outputs.src}}
  22. src: 'true'
  23. steps:
  24. - uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
  25. id: changes
  26. continue-on-error: true
  27. with:
  28. filters: |
  29. src:
  30. - '.github/workflows/**'
  31. - '3rdparty/**'
  32. - '**/*.php'
  33. - '**/lib/**'
  34. - '**/tests/**'
  35. - '**/vendor-bin/**'
  36. - 'build/integration/**'
  37. - '.php-cs-fixer.dist.php'
  38. - 'composer.json'
  39. - 'composer.lock'
  40. integration-sqlite:
  41. runs-on: ubuntu-latest
  42. needs: changes
  43. if: needs.changes.outputs.src != 'false'
  44. strategy:
  45. fail-fast: false
  46. matrix:
  47. test-suite:
  48. - 'capabilities_features'
  49. - 'collaboration_features'
  50. - 'comments_features'
  51. - 'dav_features'
  52. - 'features'
  53. - 'federation_features'
  54. - 'files_features'
  55. - 'filesdrop_features'
  56. #- 'ldap_features'
  57. - 'remoteapi_features'
  58. - 'setup_features'
  59. - 'sharees_features'
  60. - 'sharing_features'
  61. #- 'videoverification_features'
  62. php-versions: ['8.2']
  63. # server-versions: ['master']
  64. # guests-versions: ['master']
  65. # call-summary-bot-versions: ['main']
  66. # notifications-versions: ['master']
  67. steps:
  68. - name: Checkout server
  69. uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
  70. with:
  71. submodules: true
  72. # - name: Checkout call_summary_bot app
  73. # uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
  74. # with:
  75. # repository: nextcloud/call_summary_bot
  76. # path: apps/call_summary_bot
  77. # ref: ${{ matrix.call-summary-bot-versions }}
  78. #
  79. # - name: Checkout guests app
  80. # uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
  81. # with:
  82. # repository: nextcloud/guests
  83. # path: apps/guests
  84. # ref: ${{ matrix.guests-versions }}
  85. #
  86. # - name: Checkout notifications app
  87. # uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
  88. # with:
  89. # repository: nextcloud/notifications
  90. # path: apps/notifications
  91. # ref: ${{ matrix.notifications-versions }}
  92. - name: Set up php ${{ matrix.php-versions }}
  93. uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d # v2
  94. with:
  95. php-version: ${{ matrix.php-versions }}
  96. # https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
  97. extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, imagick, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
  98. coverage: none
  99. ini-file: development
  100. env:
  101. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  102. - name: Set up production dependencies
  103. run: composer i --no-dev
  104. - name: Set up behat dependencies
  105. working-directory: build/integration
  106. run: composer i
  107. - name: Set up Nextcloud
  108. env:
  109. DB_PORT: 4444
  110. run: |
  111. mkdir data
  112. ./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
  113. ./occ config:system:set hashing_default_password --value=true --type=boolean
  114. # ./occ app:enable --force ${{ env.APP_NAME }}
  115. # ./occ app:enable --force call_summary_bot
  116. # ./occ app:enable --force guests
  117. # ./occ app:enable --force notifications
  118. - name: Run integration
  119. working-directory: build/integration
  120. run: bash run.sh ${{ matrix.test-suite }}
  121. - name: Print logs
  122. if: always()
  123. run: |
  124. cat data/nextcloud.log
  125. summary:
  126. permissions:
  127. contents: none
  128. runs-on: ubuntu-latest
  129. needs: [changes, integration-sqlite]
  130. if: always()
  131. name: integration-sqlite-summary
  132. steps:
  133. - name: Summary status
  134. run: if ${{ needs.changes.outputs.src != 'false' && needs.integration-sqlite.result != 'success' }}; then exit 1; fi