summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2020-02-28 11:26:27 +0100
committerJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2020-02-28 11:26:27 +0100
commit62a2cb0848c9cb4c9947ca8cfab6f7fb8ec84fda (patch)
treed68a441e23b169ce2e6547faacdf26248651930f /.github
parent84b0ac48d511c6966e7d248847ab711289e272a8 (diff)
Use apptutorial github actions
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/lint.yml69
-rw-r--r--.github/workflows/node.yml34
-rw-r--r--.github/workflows/phpunit.yml215
3 files changed, 291 insertions, 27 deletions
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 3e50644f..229fb498 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -1,36 +1,51 @@
name: Lint
-on: pull_request
+
+on:
+ pull_request:
+ push:
+ branches:
+ - master
+ - stable*
jobs:
- php-linters:
+ php:
runs-on: ubuntu-latest
+
strategy:
matrix:
- php-versions: ['7.2', '7.3', 7.4]
- name: php${{ matrix.php-versions }} lint
+ php-versions: ['7.2', '7.3', '7.4']
+
+ name: php${{ matrix.php-versions }}
steps:
- - name: Checkout
- uses: actions/checkout@master
- - name: Set up php${{ matrix.php-versions }}
- uses: shivammathur/setup-php@master
- with:
- php-version: ${{ matrix.php-versions }}
- coverage: none
- - name: Lint
- run: composer run lint
-
- node-linters:
+ - uses: actions/checkout@v2
+
+ - name: Set up php ${{ matrix.php-versions }}
+ uses: shivammathur/setup-php@v1
+ with:
+ php-version: ${{ matrix.php-versions }}
+ coverage: none
+
+ - name: Lint
+ run: composer run lint
+
+ node:
runs-on: ubuntu-latest
- name: ESLint
+
+ strategy:
+ matrix:
+ node-versions: [12.x]
+
+ name: node${{ matrix.node-versions }}
steps:
- - uses: actions/checkout@master
- - name: Set up Node
- uses: actions/setup-node@v1
- with:
- node-version: 12.x
- - name: npm install
- run: npm ci
- - name: eslint
- run: npm run lint
- env:
- CI: true
+ - uses: actions/checkout@v2
+
+ - name: Set up node ${{ matrix.node-versions }}
+ uses: actions/setup-node@v1
+ with:
+ node-versions: ${{ matrix.node-versions }}
+
+ - name: Install dependencies
+ run: npm ci
+
+ - name: Lint
+ run: npm run lint
diff --git a/.github/workflows/node.yml b/.github/workflows/node.yml
new file mode 100644
index 00000000..d5c403df
--- /dev/null
+++ b/.github/workflows/node.yml
@@ -0,0 +1,34 @@
+name: Node
+
+on:
+ pull_request:
+ push:
+ branches:
+ - master
+ - stable*
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+
+ strategy:
+ matrix:
+ node-versions: [12.x]
+
+ name: node${{ matrix.node-versions }}
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Set up node ${{ matrix.node-versions }}
+ uses: actions/setup-node@v1
+ with:
+ node-versions: ${{ matrix.node-versions }}
+
+ - name: Install dependencies & build
+ run: |
+ npm ci
+ npm run build --if-present
+
+ - name: Check webpack build changes
+ run: |
+ bash -c "[[ ! \"`git status --porcelain `\" ]] || ( echo 'Uncommited changes in webpack build' && git status && exit 1 )"
diff --git a/.github/workflows/phpunit.yml b/.github/workflows/phpunit.yml
new file mode 100644
index 00000000..54137efa
--- /dev/null
+++ b/.github/workflows/phpunit.yml
@@ -0,0 +1,215 @@
+name: PHPUnit
+
+on:
+ pull_request:
+ push:
+ branches:
+ - master
+ - stable*
+
+env:
+ APP_NAME: contacts
+
+jobs:
+ php:
+ runs-on: ubuntu-latest
+
+ strategy:
+ # do not stop on another job's failure
+ fail-fast: false
+ matrix:
+ php-versions: ['7.4']
+ databases: ['sqlite']
+ server-versions: ['master']
+
+ name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
+
+ steps:
+ - name: Checkout server
+ uses: actions/checkout@v2
+ with:
+ repository: nextcloud/server
+ ref: ${{ matrix.server-versions }}
+
+ - name: Checkout submodules
+ shell: bash
+ run: |
+ auth_header="$(git config --local --get http.https://github.com/.extraheader)"
+ git submodule sync --recursive
+ git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
+
+ - name: Checkout app
+ uses: actions/checkout@v2
+ with:
+ path: apps/${{ env.APP_NAME }}
+
+ - name: Set up php ${{ matrix.php-versions }}
+ uses: shivammathur/setup-php@v1
+ with:
+ php-version: ${{ matrix.php-versions }}
+ tools: phpunit
+ extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite
+ coverage: none
+
+ - name: Set up PHPUnit
+ 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=${{ matrix.databases }} --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 ${{ env.APP_NAME }}
+ php -S localhost:8080 &
+
+ - name: PHPUnit
+ working-directory: apps/${{ env.APP_NAME }}
+ run: ./vendor/phpunit/phpunit/phpunit -c phpunit.xml
+
+ - name: PHPUnit integration
+ working-directory: apps/${{ env.APP_NAME }}
+ run: ./vendor/phpunit/phpunit/phpunit -c phpunit.integration.xml
+
+ mysql:
+ runs-on: ubuntu-latest
+
+ strategy:
+ # do not stop on another job's failure
+ fail-fast: false
+ matrix:
+ php-versions: ['7.2', '7.3', '7.4']
+ databases: ['mysql']
+ server-versions: ['master']
+
+ name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
+
+ services:
+ mysql:
+ image: mariadb
+ ports:
+ - 4444:3306/tcp
+ env:
+ MYSQL_ROOT_PASSWORD: rootpassword
+ options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 5
+
+ steps:
+ - name: Checkout server
+ uses: actions/checkout@v2
+ with:
+ repository: nextcloud/server
+ ref: ${{ matrix.server-versions }}
+
+ - name: Checkout submodules
+ shell: bash
+ run: |
+ auth_header="$(git config --local --get http.https://github.com/.extraheader)"
+ git submodule sync --recursive
+ git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
+
+ - name: Checkout app
+ uses: actions/checkout@v2
+ with:
+ path: apps/${{ env.APP_NAME }}
+
+ - name: Set up php ${{ matrix.php-versions }}
+ uses: shivammathur/setup-php@v1
+ with:
+ php-version: ${{ matrix.php-versions }}
+ tools: phpunit
+ extensions: mbstring, iconv, fileinfo, intl, mysql, pdo_mysql
+ coverage: none
+
+ - name: Set up PHPUnit
+ 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=${{ matrix.databases }} --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 ${{ env.APP_NAME }}
+ php -S localhost:8080 &
+
+ - name: PHPUnit
+ working-directory: apps/${{ env.APP_NAME }}
+ run: ./vendor/phpunit/phpunit/phpunit -c phpunit.xml
+
+ - name: PHPUnit integration
+ working-directory: apps/${{ env.APP_NAME }}
+ run: ./vendor/phpunit/phpunit/phpunit -c phpunit.integration.xml
+
+ pgsql:
+ runs-on: ubuntu-latest
+
+ strategy:
+ # do not stop on another job's failure
+ fail-fast: false
+ matrix:
+ php-versions: ['7.4']
+ databases: ['pgsql']
+ server-versions: ['master']
+
+ name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
+
+ services:
+ postgres:
+ image: postgres
+ ports:
+ - 4444:5432/tcp
+ env:
+ POSTGRES_USER: root
+ POSTGRES_PASSWORD: rootpassword
+ POSTGRES_DB: nextcloud
+ options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
+
+ steps:
+ - name: Checkout server
+ uses: actions/checkout@v2
+ with:
+ repository: nextcloud/server
+ ref: ${{ matrix.server-versions }}
+
+ - name: Checkout submodules
+ shell: bash
+ run: |
+ auth_header="$(git config --local --get http.https://github.com/.extraheader)"
+ git submodule sync --recursive
+ git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
+
+ - name: Checkout app
+ uses: actions/checkout@v2
+ with:
+ path: apps/${{ env.APP_NAME }}
+
+ - name: Set up php ${{ matrix.php-versions }}
+ uses: shivammathur/setup-php@v1
+ with:
+ php-version: ${{ matrix.php-versions }}
+ tools: phpunit
+ extensions: mbstring, iconv, fileinfo, intl, pgsql, pdo_pgsql
+ coverage: none
+
+ - name: Set up PHPUnit
+ 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=${{ matrix.databases }} --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 ${{ env.APP_NAME }}
+ php -S localhost:8080 &
+
+ - name: PHPUnit
+ working-directory: apps/${{ env.APP_NAME }}
+ run: ./vendor/phpunit/phpunit/phpunit -c phpunit.xml
+
+ - name: PHPUnit integration
+ working-directory: apps/${{ env.APP_NAME }}
+ run: ./vendor/phpunit/phpunit/phpunit -c phpunit.integration.xml