Welcome to mirror list, hosted at ThFree Co, Russian Federation.

phpunit-sqlite.yml « workflows « .github - github.com/nextcloud/impersonate.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: f8202637cae5618d746fe5df9c871fe23dfb964b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization

name: PHPUnit

on:
  pull_request:
    paths:
      - '.github/workflows/**'
      - 'appinfo/**'
      - 'lib/**'
      - 'templates/**'
      - 'tests/**'
      - 'vendor/**'
      - 'vendor-bin/**'
      - '.php-cs-fixer.dist.php'
      - 'composer.json'
      - 'composer.lock'

  push:
    branches:
      - main
      - master
      - stable*

permissions:
  contents: read

concurrency: 
  group: phpunit-sqlite-${{ github.head_ref || github.run_id }}
  cancel-in-progress: true

env:
  # Location of the phpunit.xml and phpunit.integration.xml files
  PHPUNIT_CONFIG: ./tests/phpunit.xml
  PHPUNIT_INTEGRATION_CONFIG: ./tests/phpunit.integration.xml

jobs:
  phpunit-sqlite:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        php-versions: ['8.0']
        server-versions: ['master']

    steps:
      - name: Set app env
        run: |
          # Split and keep last
          echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV

      - name: Checkout server
        uses: actions/checkout@v3
        with:
          submodules: true
          repository: nextcloud/server
          ref: ${{ matrix.server-versions }}

      - name: Checkout app
        uses: actions/checkout@v3
        with:
          path: apps/${{ env.APP_NAME }}

      - name: Set up php ${{ matrix.php-versions }}
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php-versions }}
          tools: phpunit
          extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite
          coverage: none

      - name: Check composer file existence
        id: check_composer
        uses: andstor/file-existence-action@v1
        with:
          files: apps/${{ env.APP_NAME }}/composer.json

      - name: Set up PHPUnit
        # Only run if phpunit config file exists
        if: steps.check_composer.outputs.files_exists == 'true'
        working-directory: apps/${{ env.APP_NAME }}
        run: composer i

      - name: Set up Nextcloud
        env:
          DB_PORT: 4444
        run: |
          mkdir data
          ./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 password
          ./occ app:enable --force ${{ env.APP_NAME }}

      - name: Check PHPUnit config file existence
        id: check_phpunit
        uses: andstor/file-existence-action@v1
        with:
          files: apps/${{ env.APP_NAME }}/${{ env.PHPUNIT_CONFIG }}

      - name: PHPUnit
        # Only run if phpunit config file exists
        if: steps.check_phpunit.outputs.files_exists == 'true'
        working-directory: apps/${{ env.APP_NAME }}
        run: ./vendor/phpunit/phpunit/phpunit -c ${{ env.PHPUNIT_CONFIG }}

      - name: Check PHPUnit integration config file existence
        id: check_integration
        uses: andstor/file-existence-action@v1
        with:
          files: apps/${{ env.APP_NAME }}/${{ env.PHPUNIT_INTEGRATION_CONFIG }}

      - name: Run Nextcloud
        # Only run if phpunit integration config file exists
        if: steps.check_integration.outputs.files_exists == 'true'
        run: php -S localhost:8080 &

      - name: PHPUnit integration
        # Only run if phpunit integration config file exists
        if: steps.check_integration.outputs.files_exists == 'true'
        working-directory: apps/${{ env.APP_NAME }}
        run: ./vendor/phpunit/phpunit/phpunit -c ${{ env.PHPUNIT_INTEGRATION_CONFIG }}

  summary:
    permissions:
      contents: none
    runs-on: ubuntu-latest
    needs: phpunit-sqlite

    if: always()

    name: phpunit-sqlite-summary

    steps:
      - name: Summary status
        run: if ${{ needs.phpunit-sqlite.result != 'success' }}; then exit 1; fi