Skip to content

Commit

Permalink
Testing (#105)
Browse files Browse the repository at this point in the history
* Apply example_ynh (#104)
  • Loading branch information
ericgaspar committed May 19, 2021
1 parent 5110a2d commit 20435c4
Show file tree
Hide file tree
Showing 14 changed files with 215 additions and 158 deletions.
55 changes: 55 additions & 0 deletions .github/ISSUE_TEMPLATE.md
@@ -0,0 +1,55 @@
---
name: Bug report
about: When creating a bug report, please use the following template to provide all the relevant information and help debugging efficiently.

---

**How to post a meaningful bug report**
1. *Read this whole template first.*
2. *Determine if you are on the right place:*
- *If you were performing an action on the app from the webadmin or the CLI (install, update, backup, restore, change_url...), you are on the right place!*
- *Otherwise, the issue may be due to the app itself. Refer to its documentation or repository for help.*
- *When in doubt, post here and we will figure it out together.*
3. *Delete the italic comments as you write over them below, and remove this guide.*
---

### Describe the bug

*A clear and concise description of what the bug is.*

### Context

- Hardware: *VPS bought online / Old laptop or computer / Raspberry Pi at home / Internet Cube with VPN / Other ARM board / ...*
- YunoHost version: x.x.x
- I have access to my server: *Through SSH | through the webadmin | direct access via keyboard / screen | ...*
- Are you in a special context or did you perform some particular tweaking on your YunoHost instance?: *no / yes*
- If yes, please explain:
- Using, or trying to install package version/branch:
- If upgrading, current package version: *can be found in the admin, or with `yunohost app info $app_id`*

### Steps to reproduce

- *If you performed a command from the CLI, the command itself is enough. For example:*
```sh
sudo yunohost app install the_app
```
- *If you used the webadmin, please perform the equivalent command from the CLI first.*
- *If the error occurs in your browser, explain what you did:*
1. *Go to '...'*
2. *Click on '...'*
3. *Scroll down to '...'*
4. *See error*

### Expected behavior

*A clear and concise description of what you expected to happen. You can remove this section if the command above is enough to understand your intent.*

### Logs

*When an operation fails, YunoHost provides a simple way to share the logs.*
- *In the webadmin, the error message contains a link to the relevant log page. On that page, you will be able to 'Share with Yunopaste'. If you missed it, the logs of previous operations are also available under Tools > Logs.*
- *In command line, the command to share the logs is displayed at the end of the operation and looks like `yunohost log display [log name] --share`. If you missed it, you can find the log ID of a previous operation using `yunohost log list`.*

*After sharing the log, please copypaste directly the link provided by YunoHost (to help readability, no need to copypaste the entire content of the log here, just the link is enough...)*

*If applicable and useful, add screenshots to help explain your problem.*
16 changes: 16 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,16 @@
## Problem

- *Description of why you made this PR*

## Solution

- *And how do you fix that problem*

## PR Status

- [ ] Code finished and ready to be reviewed/tested
- [ ] The fix/enhancement were manually tested (if applicable)

## Automatic tests

Automatic tests can be triggered on https://ci-apps-dev.yunohost.org/ *after creating the PR*, by commenting "!testme", "!gogogadgetoci" or "By the power of systemd, I invoke The Great App CI to test this Pull Request!". (N.B. : for this to work you need to be a member of the Yunohost-Apps organization)
9 changes: 3 additions & 6 deletions check_process
@@ -1,7 +1,7 @@
;; Nom du test
;; Test complet
; Manifest
domain="domain.tld" (DOMAIN)
path="/path" (PATH)
domain="domain.tld"
path="/path"
; Checks
pkg_linter=1
setup_sub_dir=1
Expand All @@ -17,6 +17,3 @@
Email=
Notification=none
;;; Upgrade options
; commit=
name=
manifest_arg=domain=DOMAIN&path=PATH
1 change: 1 addition & 0 deletions conf/app.src
Expand Up @@ -4,3 +4,4 @@ SOURCE_SUM_PRG=sha256sum
SOURCE_FORMAT=tar.gz
SOURCE_IN_SUBDIR=true
SOURCE_FILENAME=
SOURCE_EXTRACT=true
7 changes: 5 additions & 2 deletions conf/nginx.conf
Expand Up @@ -11,15 +11,18 @@ location __PATH__/ {

index index.php;

# Common parameter to increase upload size limit in conjunction with dedicated php-fpm file
#client_max_body_size 50M;

try_files $uri $uri/ index.php;
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_pass unix:/var/run/php/php__PHPVERSION__-fpm-__NAME__.sock;

fastcgi_index index.php;
include fastcgi_params;
fastcgi_param REMOTE_USER $remote_user;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param REMOTE_USER $remote_user;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $request_filename;
}

Expand Down
4 changes: 3 additions & 1 deletion conf/systemd.service
Expand Up @@ -3,9 +3,11 @@ Description=News feed reader and aggregator
After=network.target mysql.service

[Service]
Type=simple
User=__APP__
Group=__APP__
ExecStart=/usr/bin/php __FINALPATH__/update_daemon2.php
WorkingDirectory=__FINALPATH__/
ExecStart=/usr/bin/php__PHPVERSION__ __FINALPATH__/update_daemon2.php
Restart=always
RestartSec=10

Expand Down
2 changes: 1 addition & 1 deletion manifest.json
Expand Up @@ -6,7 +6,7 @@
"en": "News feed (RSS/Atom) reader and aggregator.",
"fr": "Lecteur de flux d’actualité utilisant les protocoles RSS et Atom."
},
"version": "20200916~ynh4",
"version": "20200916~ynh5",
"url": "http://tt-rss.org",
"license": "GPL-3.0-only",
"maintainer": {
Expand Down
16 changes: 0 additions & 16 deletions pull_request_template.md

This file was deleted.

15 changes: 0 additions & 15 deletions scripts/_common.sh
Expand Up @@ -49,18 +49,3 @@ ynh_smart_mktemp () {

echo "$(mktemp --directory --tmpdir="$tmpdir")"
}

#=================================================

# Execute a command as another user
# usage: ynh_exec_as USER COMMAND [ARG ...]
ynh_exec_as() {
local USER=$1
shift 1

if [[ $USER = $(whoami) ]]; then
eval "$@"
else
sudo -u "$USER" "$@"
fi
}
5 changes: 4 additions & 1 deletion scripts/backup
@@ -1,9 +1,12 @@
#!/bin/bash

#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================

# Keep this path for calling _common.sh inside the execution's context of backup and restore scripts
source ../settings/scripts/_common.sh
source /usr/share/yunohost/helpers

Expand All @@ -23,8 +26,8 @@ app=$YNH_APP_INSTANCE_NAME

final_path=$(ynh_app_setting_get --app=$app --key=final_path)
domain=$(ynh_app_setting_get --app=$app --key=domain)
phpversion=$(ynh_app_setting_get --app=$app --key=phpversion)
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
phpversion=$(ynh_app_setting_get --app=$app --key=phpversion)

#=================================================
# DECLARE DATA AND CONF FILES TO BACKUP
Expand Down
63 changes: 33 additions & 30 deletions scripts/install
Expand Up @@ -31,7 +31,7 @@ app=$YNH_APP_INSTANCE_NAME
ynh_script_progression --message="Validating installation parameters..." --weight=1

final_path=/var/www/$app
test ! -e "$final_path" || ynh_die "This path already contains a folder"
test ! -e "$final_path" || ynh_die --message="This path already contains a folder"

# Register (book) web path
ynh_webpath_register --app=$app --domain=$domain --path_url=$path_url
Expand All @@ -46,14 +46,23 @@ ynh_app_setting_set --app=$app --key=path --value=$path_url

#=================================================
# STANDARD MODIFICATIONS
#=================================================
# CREATE DEDICATED USER
#=================================================
ynh_script_progression --message="Configuring system user..." --weight=2

# Create a system user
ynh_system_user_create --username=$app --home_dir=$final_path

#=================================================
# CREATE A MYSQL DATABASE
#=================================================
ynh_script_progression --message="Creating a MySQL database..." --weight=2

db_name=$(ynh_sanitize_dbid $app)
db_name=$(ynh_sanitize_dbid --db_name=$app)
db_user=$db_name
ynh_app_setting_set --app=$app --key=db_name --value=$db_name
ynh_mysql_setup_db --db_user=$db_name --db_name=$db_name
ynh_mysql_setup_db --db_user=$db_user --db_name=$db_name
db_pwd=$(ynh_app_setting_get --app=$app --key=mysqlpwd)

#=================================================
Expand All @@ -65,6 +74,10 @@ ynh_app_setting_set --app=$app --key=final_path --value=$final_path
# Download, check integrity, uncompress and patch the source from app.src
ynh_setup_source --dest_dir="$final_path"

chmod 750 "$final_path"
chmod -R o-rwx "$final_path"
chown -R $app:www-data "$final_path"

#=================================================
# NGINX CONFIGURATION
#=================================================
Expand All @@ -73,14 +86,6 @@ ynh_script_progression --message="Configuring NGINX web server..." --weight=2
# Create a dedicated NGINX config
ynh_add_nginx_config

#=================================================
# CREATE DEDICATED USER
#=================================================
ynh_script_progression --message="Configuring system user..." --weight=2

# Create a system user
ynh_system_user_create --username=$app

#=================================================
# PHP-FPM CONFIGURATION
#=================================================
Expand All @@ -93,28 +98,25 @@ phpversion=$(ynh_app_setting_get --app=$app --key=phpversion)
#=================================================
# SPECIFIC SETUP
#=================================================
# CONFIGURE TTRSS
# ADD A CONFIGURATION
#=================================================
ynh_script_progression --message="Configuring ttrss..." --weight=1
ynh_script_progression --message="Adding a configuration file..." --weight=1

domain_path=https://$domain$path_url

ynh_add_config --template="../conf/config.php" --destination="$final_path/config.php"

chmod 400 "$final_path/config.php"
chown $app:$app "$final_path/config.php"

#=================================================
# SETUP SYSTEMD
#=================================================
ynh_script_progression --message="Configuring a systemd service..." --weight=2

# Create a dedicated systemd config
ynh_add_systemd_config

#=================================================
# SECURE FILES AND DIRECTORIES
#=================================================

# Set permissions to app files
chown -R root: $final_path
chown -R $app $final_path/{cache,feed-icons,lock}

#=================================================
# INITIALIZE DATABASE
#=================================================
Expand All @@ -125,26 +127,27 @@ ynh_mysql_connect_as --user="$db_name" --password="$db_pwd" --database="$db_name

ynh_exec_as $app php${phpversion} ${final_path}/update.php --update-schema

#=================================================
# START TTRSS IN BACKGROUND
#=================================================
ynh_script_progression --message="Starting ttrss..." --weight=1

ynh_systemd_action --service_name=$app --action=start

#=================================================
# GENERIC FINALIZATION
#=================================================
# ADVERTISE SERVICE IN ADMIN PANEL
# INTEGRATE SERVICE IN YUNOHOST
#=================================================
ynh_script_progression --message="Integrating service in YunoHost..." --weight=1

yunohost service add $app --description="News feed reader and aggregator" --log="/var/log/$app/$app.log"

#=================================================
# START SYSTEMD SERVICE
#=================================================
ynh_script_progression --message="Starting a systemd service..." --weight=1

# Start a systemd service
ynh_systemd_action --service_name=$app --action="start"

#=================================================
# SETUP SSOWAT
#=================================================
ynh_script_progression --message="Configuring SSOwat..." --weight=1
ynh_script_progression --message="Configuring permissions..." --weight=1

ynh_app_setting_set --app=$app --key=skipped_uris --value="/public.php,/api,/opml.php?op=publish"

Expand Down
11 changes: 6 additions & 5 deletions scripts/remove
Expand Up @@ -18,18 +18,19 @@ app=$YNH_APP_INSTANCE_NAME

domain=$(ynh_app_setting_get --app=$app --key=domain)
db_name=$(ynh_app_setting_get --app=$app --key=db_name)
db_user=$db_name
final_path=$(ynh_app_setting_get --app=$app --key=final_path)

#=================================================
# STANDARD REMOVE
#=================================================
# REMOVE SERVICE FROM ADMIN PANEL
# REMOVE SERVICE INTEGRATION IN YUNOHOST
#=================================================

# Remove a service from the admin panel, added by `yunohost service add`
if yunohost service status $app >/dev/null 2>&1
# Remove the service from the list of services known by YunoHost (added from `yunohost service add`)
if ynh_exec_warn_less yunohost service status $app >/dev/null
then
ynh_script_progression --message="Removing $app service..." --weight=2
ynh_script_progression --message="Removing $app service integration..."
yunohost service remove $app
fi

Expand All @@ -47,7 +48,7 @@ ynh_remove_systemd_config
ynh_script_progression --message="Removing the MySQL database..." --weight=4

# Remove a database if it exists, along with the associated user
ynh_mysql_remove_db --db_user=$db_name --db_name=$db_name
ynh_mysql_remove_db --db_user=$db_user --db_name=$db_name

#=================================================
# REMOVE APP MAIN DIR
Expand Down

0 comments on commit 20435c4

Please sign in to comment.