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

phpunit-oci.yml « workflows « .github - github.com/nextcloud/data_request.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 3744e698ebd90786113c7ca61c731876018bccbb (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
137
138
139
140
141
142
# 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-oci-${{ 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-oci:
    runs-on: ubuntu-latest

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

    services:
      oracle:
        image: deepdiver/docker-oracle-xe-11g # 'wnameless/oracle-xe-11g-r2'
        ports:
          - 1521:1521/tcp

    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 }}
          extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, oci8
          tools: phpunit
          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: 1521
        run: |
          mkdir data
          ./occ maintenance:install --verbose --database=oci --database-name=XE --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=autotest --database-pass=owncloud --admin-user admin --admin-pass admin
          ./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-oci

    if: always()

    name: phpunit-oci-summary

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