Nextcloud-App/README.md

89 lines
2.7 KiB
Markdown

<!--
SPDX-FileCopyrightText: BVSC e.V. <no@example.com>
SPDX-License-Identifier: CC0-1.0
-->
# UPschooling
Place this app in **nextcloud/apps/**
## Building the app
The app can be built by using the provided Makefile by running:
make
This requires the following things to be present:
* make
* which
* tar: for building the archive
* curl: used if phpunit and composer are not installed to fetch them from the web
* npm: for building and testing everything JS, only required if a package.json is placed inside the **js/** folder
The make command will install or update Composer dependencies if a composer.json is present and also **npm run build** if a package.json is present in the **js/** folder. The npm **build** script should use local paths for build systems and package managers, so people that simply want to build the app won't need to install npm libraries globally, e.g.:
**package.json**:
```json
"scripts": {
"test": "node node_modules/gulp-cli/bin/gulp.js karma",
"prebuild": "npm install && node_modules/bower/bin/bower install && node_modules/bower/bin/bower update",
"build": "node node_modules/gulp-cli/bin/gulp.js"
}
```
## Publish to App Store
First get an account for the [App Store](http://apps.nextcloud.com/) then run:
make && make appstore
The archive is located in build/artifacts/appstore and can then be uploaded to the App Store.
## Running tests
You can use the provided Makefile to run all tests by using:
make test
This will run the PHP unit and integration tests and if a package.json is present in the **js/** folder will execute **npm run test**
Of course you can also install [PHPUnit](http://phpunit.de/getting-started.html) and use the configurations directly:
phpunit -c phpunit.xml
or:
phpunit -c phpunit.integration.xml
for integration tests
## Development
Docker or Podman is required for the dev environment.
Other than that composer and npm/nodejs must be installed.
### Mac OS
```shell
brew install coreutils
```
### Start dev environment
Starting the development environment with your container runtime should be as easy as
```shell
./run.sh
docker/podman exec -it --user 33 nextcloud bash -c 'cd /var/www/html/custom_apps/upschooling && make watch-js'
```
## Frontend development
The app tutorial also shows the very basic implementation of an app frontend using [Vue.js](https://vuejs.org/). To build the frontend code after doing changes to its source in `src/` requires to have Node and npm installed.
- 👩‍💻 Run `make dev-setup` to install the frontend dependencies
- 🏗 To build the Javascript whenever you make changes, run `make build-js`
To continuously run the build when editing source files you can make use of the `make watch-js` command.