v5.0.3 #403
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Classify command test | |
on: | |
pull_request: | |
paths: | |
- 'lib/**' | |
- 'src/**' | |
- 'package.json' | |
- 'composer.lock' | |
push: | |
branches: | |
- main | |
- stable* | |
paths: | |
- 'lib/**' | |
- 'src/**' | |
- 'package.json' | |
- 'composer.lock' | |
env: | |
APP_NAME: recognize | |
jobs: | |
php: | |
runs-on: ubuntu-latest | |
strategy: | |
# do not stop on another job's failure | |
fail-fast: false | |
matrix: | |
php-versions: ['8.1'] | |
databases: ['sqlite'] | |
server-versions: ['stable27'] | |
pure-js-mode: ['false'] | |
imagenet-enabled: ['true'] | |
faces-enabled: ['true'] | |
landmarks-enabled: ['true'] | |
musicnn-enabled: ['true'] | |
movinet-enabled: ['true'] | |
include: | |
# test pure-js once | |
- server-versions: stable27 | |
databases: sqlite | |
php-versions: 8.1 | |
pure-js-mode: true | |
imagenet-enabled: true | |
faces-enabled: true | |
landmarks-enabled: true | |
musicnn-enabled: true | |
movinet-enabled: false | |
name: Test classify command on ${{ matrix.databases }}-${{ matrix.server-versions }} wasm:${{ matrix.pure-js-mode }},imagenet:${{ matrix.imagenet-enabled }},faces:${{ matrix.faces-enabled }},landmarks:${{ matrix.landmarks-enabled }},movinet:${{ matrix.movinet-enabled }},musicnn:${{ matrix.musicnn-enabled }} | |
env: | |
MYSQL_PORT: 4444 | |
PGSQL_PORT: 4445 | |
services: | |
mysql: | |
image: mariadb:10.5 | |
ports: | |
- 4444:3306/tcp | |
env: | |
MYSQL_ROOT_PASSWORD: rootpassword | |
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 5 | |
postgres: | |
image: postgres | |
ports: | |
- 4445: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: 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_mysql, pdo_sqlite, pgsql, pdo_pgsql, gd, zip | |
- name: Checkout app | |
uses: actions/checkout@v2 | |
with: | |
path: apps/${{ env.APP_NAME }} | |
- name: Read package.json node and npm engines version | |
uses: skjnldsv/[email protected] | |
id: versions | |
with: | |
path: apps/${{ env.APP_NAME }} | |
fallbackNode: '^12' | |
fallbackNpm: '^6' | |
- name: Set up node ${{ steps.versions.outputs.nodeVersion }} | |
uses: actions/setup-node@v2 | |
with: | |
node-version: ${{ steps.versions.outputs.nodeVersion }} | |
- name: Set up npm ${{ steps.versions.outputs.npmVersion }} | |
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}" | |
- name: Install app | |
working-directory: apps/${{ env.APP_NAME }} | |
run: | | |
composer install --no-dev | |
make all | |
make remove-binaries | |
rm -rf models # Make it download from github | |
wget https://github.com/nextcloud/recognize/releases/download/v3.4.0/test-files.zip | |
unzip test-files.zip -d tests/res/ | |
- name: Set up Nextcloud and install app | |
if: ${{ matrix.databases != 'pgsql'}} | |
run: | | |
sleep 25 | |
mkdir data | |
./occ maintenance:install --verbose --database=${{ matrix.databases }} --database-name=nextcloud --database-host=127.0.0.1 --database-port=$MYSQL_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password | |
./occ app:enable -vvv -f ${{ env.APP_NAME }} | |
php -S localhost:8080 & | |
- name: Set up Nextcloud and install app | |
if: ${{ matrix.databases == 'pgsql'}} | |
run: | | |
sleep 25 | |
mkdir data | |
./occ maintenance:install --verbose --database=${{ matrix.databases }} --database-name=nextcloud --database-host=127.0.0.1 --database-port=$PGSQL_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password | |
./occ app:enable -vvv -f ${{ env.APP_NAME }} | |
php -S localhost:8080 & | |
- name: Install | |
run: | | |
./occ app:enable -vvv ${{ env.APP_NAME }} | |
- name: Upload photos | |
run: | | |
find apps/${{ env.APP_NAME }}/tests/res/ -type f -exec curl -u 'admin:password' -T "{}" 'http://localhost:8080/remote.php/webdav/' \; | |
- name: Set pure-js mode | |
run: | | |
./occ config:app:set --value ${{ matrix.pure-js-mode }} recognize tensorflow.purejs | |
- name: Set imagenet.enabled | |
run: | | |
./occ config:app:set --value ${{ matrix.imagenet-enabled }} recognize imagenet.enabled | |
- name: Set faces.enabled | |
run: | | |
./occ config:app:set --value ${{ matrix.faces-enabled }} recognize faces.enabled | |
- name: Set landmarks.enabled | |
run: | | |
./occ config:app:set --value ${{ matrix.landmarks-enabled }} recognize landmarks.enabled | |
- name: Set musicnn.enabled | |
run: | | |
./occ config:app:set --value ${{ matrix.musicnn-enabled }} recognize musicnn.enabled | |
- name: Set movinet.enabled | |
run: | | |
./occ config:app:set --value ${{ matrix.movinet-enabled }} recognize movinet.enabled | |
- name: Run classifier | |
env: | |
GITHUB_REF: ${{ github.ref }} | |
run: | | |
./occ recognize:classify | |
./occ recognize:cluster-faces |