mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-22 22:37:37 +01:00
chore(github): Aggiunti file di github (actions e templates)
This commit is contained in:
parent
7ce18cdbab
commit
284367307a
96
.github/CONTRIBUTING.md
vendored
Normal file
96
.github/CONTRIBUTING.md
vendored
Normal file
@ -0,0 +1,96 @@
|
||||
---
|
||||
currentMenu: contribuire
|
||||
---
|
||||
|
||||
# Contribuire
|
||||
|
||||
Sei interessato a contribuire allo sviluppo di OpenSTAManger? Ottimo, sei il benvenuto!
|
||||
|
||||
Siamo entusiasti di ogni nuova contribuzione che otteniamo dalla nostra community.
|
||||
Ci sono molti modi per contribuire: segnalare bug, richiedere miglioramenti, scrivere tutorial, migliorare la documentazione, ...
|
||||
|
||||
Non serve essere degli esperti programmatori per aiutarci! :smile_cat:
|
||||
|
||||
Leggi le seguenti sezioni per scoprire come ti consigliamo di procedere.
|
||||
Se ti serve un aiuto, crea una issue su GitHub.
|
||||
|
||||
## Linee guida
|
||||
|
||||
Per migliorare il sistema con cui sviluppiamo il codice, abbiamo deciso di adottare alcune linee guida per facilitare la collaborazione tra più persone.
|
||||
|
||||
|
||||
### Standard del codice
|
||||
|
||||
Per lo standard ufficiale riguardante i nomi e le strutture da utilizzare, visita la sezione [Standard](STANDARD.md).
|
||||
|
||||
### Codice di condotta
|
||||
|
||||
Per il momento non abbiamo adottato un vero e proprio codice di condotta, ma ti chiediamo di essere il più civile possibile nel comunicare con gli altri per questo progetto.
|
||||
|
||||
### Stile del codice
|
||||
|
||||
Utilizziamo principalmente due strumenti per mantenere consistente nel tempo lo stile del codice:
|
||||
- [PHP CS Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer)
|
||||
- [EditorConfig](https://editorconfig.org)
|
||||
|
||||
PHP CS Fixer viene utilizzato per formattare automaticamente il codice PHP e aumentare la sua comprensibilità.
|
||||
La configurazione può essere trovata nel file [.php_cs](https://github.com/devcode-it/openstamanager/blob/master/.php_cs).
|
||||
|
||||
EditorConfig viene sfruttato per mantenere la consistenza nella formattazione di base dei diversi altri file utilizzati nel progetto.
|
||||
La configurazione può essere trovata nel file [.editorconfig](https://github.com/devcode-it/openstamanager/blob/master/.editorconfig).
|
||||
|
||||
Maggiori informazioni sui plugin che permettono di integrare questi strumenti sono disponibili nei relativi siti.
|
||||
|
||||
## Prima contribuzione
|
||||
|
||||
Sei insicuro su cosa potresti lavorare per contribuire al progetto?
|
||||
|
||||
Prova a dare un'occhiata alle issue sotto la label [nuovi contributori](https://github.com/devcode-it/openstamanager/labels/nuovi%20contributori), dove sono indicate le migliorie più semplici da applicare.
|
||||
|
||||
## Problemi di sicurezza
|
||||
|
||||
Se trovi un problema di sicurezza, NON aprire una issue. Inviaci un'email all'indirizzo `info at openstamanager dot com`.
|
||||
|
||||
Per capire se hai individuato un problema di sicurezza, prova a farti queste domande:
|
||||
|
||||
* Posso accedere a qualcosa a cui non dovrei avere accesso?
|
||||
* Posso disabilitare qualcosa per altre persone?
|
||||
|
||||
Se la risposta a una di queste domande è positiva, allora probabilmente hai individuato un problema di sicurezza.
|
||||
Considera però che anche in caso negativo potrebbe trattarsi di un problema di questo tipo, quindi se sei insicuro contattaci comunque via email.
|
||||
|
||||
## Segnalare un bug
|
||||
|
||||
Se hai individuato un bug e desideri segnalarlo, apri una nuova issue provando a mantenerti sulla base del [file di template su GitHub](https://github.com/devcode-it/openstamanager/blob/master/.github/ISSUE_TEMPLATE.md).
|
||||
|
||||
Se vuoi suggerire una miglioramento di qualche tipo oppure una nuova funzionalità, sentiti libero di aprire una issue apposita dove spieghi dettagliatamente la modifica che vorresti, la sua utilità e il suo funzionamento generale
|
||||
|
||||
## Pull Request
|
||||
|
||||
Se sei in grado di risolvere uno dei bug segnalati oppure vuoi completare una nuova funzionalità, apri una nuova Pull Request provando a mantenerti sulla base del [file di template su GitHub](https://github.com/devcode-it/openstamanager/blob/master/.github/PULL_REQUEST_TEMPLATE.md).
|
||||
|
||||
## Community
|
||||
|
||||
Siamo presenti su [Facebook](https://www.facebook.com/openstamanager), e il nostro forum ufficiale è disponibile all'indirizzo <http://www.openstamanager.com/forum/>.
|
||||
|
||||
Cerchiamo di essere disponibili quanto possibile, ma non sempre riusciamo a rispondere tempestivamente.
|
||||
|
||||
## Testing
|
||||
|
||||
Il progetto presenta, a partire dalla versione 2.4.2, un insieme di test per facilitare il controllo sul corretto funzionamento del gestionale.
|
||||
|
||||
E' innanzitutto necessario configurare correttamente l'ambiente locale per l'esecuzione dei test:
|
||||
- Impostare l'URL del web server locale nel file `codeception.yml` per Codeception
|
||||
```yml
|
||||
modules:
|
||||
config:
|
||||
WebDriver:
|
||||
url: http://localhost/openstamanager
|
||||
```
|
||||
- Scaricare (ChromeDriver)[https://sites.google.com/a/chromium.org/chromedriver/getting-started], rendendolo eseguibile da riga di comando (su Windows, aggiungerlo al PATH)
|
||||
|
||||
E' quindi possibile eseguire i tests avviando dapprima il server ChromeDriver e poi Codeception in shell differenti:
|
||||
```bash
|
||||
chromedriver --url-base=/wd/hub
|
||||
php codecept.phar run --steps
|
||||
```
|
38
.github/ISSUE_TEMPLATE.md
vendored
Normal file
38
.github/ISSUE_TEMPLATE.md
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
## Comportamento richiesto
|
||||
|
||||
Descrivi il comportamento che ti aspetti dal progetto.
|
||||
|
||||
## Comportamento attuale
|
||||
|
||||
Qual è il comportamento attuale, e come ti aspetti che venga migliorato?
|
||||
|
||||
## Possibile soluzione
|
||||
|
||||
[Non obbligatorio] Hai suggerimenti su come risolvere il bug o individuarne le cause?
|
||||
|
||||
## Passi per riprodurre il comportamento
|
||||
|
||||
[Per i bug] Descrivi dettagliatamente i singoli passi per riprodurre il malfunzionamento.
|
||||
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
|
||||
Eventuale codice rilevante:
|
||||
```php
|
||||
Se serve, aggiungi qui il codice che vuoi farci testare
|
||||
```
|
||||
|
||||
Eventuali log relativi (cartella **logs/**):
|
||||
```
|
||||
Se presenti, aggiungi qui i log relativi al malfunzionamento
|
||||
```
|
||||
|
||||
## Contesto
|
||||
|
||||
Inserisci le informazioni riguardanti il tuo ambiente di esecuzione. Può essere utile per individuare problemi riproducibili solo con condizioni specifiche.
|
||||
|
||||
* Modulo:
|
||||
* Versione del progetto:
|
||||
* Versione PHP:
|
||||
* Tipo di server:
|
22
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
22
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
## Descrizione
|
||||
|
||||
Includi un sommario dei cambiamenti introdotti, con il relativo contesto.
|
||||
Elenca anche le eventuali dipendenze aggiuntive richieste per questa modifica.
|
||||
|
||||
Risolve: #(issue)
|
||||
|
||||
## Tipologia
|
||||
|
||||
Rimuovi le opzioni non rilevanti.
|
||||
|
||||
- [ ] Bug fix (cambiamenti minori che risolvono una issue)
|
||||
- [ ] Nuova funzionalità (cambiamenti minori che aggiungono una nuova funzionalità)
|
||||
- [ ] Cambiamento maggiore (fix o funzionalità che richiede una revisione prima di essere pubblicata)
|
||||
- [ ] Questo cambiamenti richiede un aggiornamento della documentazione
|
||||
|
||||
# Checklist
|
||||
|
||||
- [ ] Il codice segue le linee guida del progetto
|
||||
- [ ] Ho commentato il codice, in particolare nelle parti più complesse
|
||||
- [ ] Ho aggiornato di conseguenza la documentazione (se presente)
|
||||
- [ ] Il codice non genera warnings
|
28
.github/STANDARD.md
vendored
Normal file
28
.github/STANDARD.md
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
# Standard del codice
|
||||
|
||||
Lo standard prevede l'utilizzo di nomi in italiano per la maggior parte dei contenuti, esclusi i sistemi di gestione interna del gestionale (tabelle `zz_*` e codici particolarmente rilevanti).
|
||||
|
||||
I nomi delle variabili devono seguire uno standard comune, che prevede la sostituzione degli spazi con `_` (*underscore*) e la rimozione delle lettere accentate a favore di quelle semplici.
|
||||
|
||||
Le variabili devono possedere nomi completi e chiari.
|
||||
Esempio:
|
||||
- Partita IVA -> `partita_iva` nel database, `$partita_iva` in PHP
|
||||
|
||||
## Database
|
||||
|
||||
Gli identificatori devono iniziare per `id_*` e i flag per `is_*`.
|
||||
E' fondamentale ricordarsi di impostare correttamente le **FOREIGN KEYS** delle relative tabelle.
|
||||
|
||||
Ci sono inoltre alcuni campi utilizzati in modo riccorrente all'interno del gestionale:
|
||||
- `default boolean NOT NULL DEFAULT 0` per i valori di default, non cancellabili e con modificabilità limitata
|
||||
- `predefined boolean NOT NULL DEFAULT 0` per i valori predefiniti in selezioni o gruppi
|
||||
- `visible boolean NOT NULL DEFAULT 1` per nascondere gli elementi
|
||||
- `deleted_at timestamp NULL DEFAULT NULL,` per segnare un elemento come eliminato
|
||||
|
||||
Per tabelle non presenti all'interno della lista ufficiale di OpenSTAManager (file **update/tables.php**), è necessario inoltre provvedere all'aggiunta dei seguenti campi:
|
||||
- `updated_at timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP`
|
||||
- `created_at timestamp NULL DEFAULT CURRENT_TIMESTAMP`
|
||||
|
||||
## Note
|
||||
|
||||
Malgrado una buona parte del codice ufficiale non segua completamente queste buone pratiche, è consigliato l'implementazione di queste linee guida per nuove funzioni e strutture mentre il sistema di base viene lentamente standardizzato.
|
129
.github/workflows/main.yml
vendored
Normal file
129
.github/workflows/main.yml
vendored
Normal file
@ -0,0 +1,129 @@
|
||||
name: OpenSTAManager CI
|
||||
|
||||
on:
|
||||
workflow_dispatch
|
||||
|
||||
jobs:
|
||||
tests:
|
||||
runs-on: ubuntu-18.04
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: [3.9]
|
||||
php-version: ['7.4']
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
# - name: Set up PHP ${{ matrix.php-version }}
|
||||
# uses: shivammathur/setup-php@v2
|
||||
# with:
|
||||
# php-version: ${{ matrix.php-version }}
|
||||
# extensions: zip, mbstring, pdo_mysql, mysql, dom, xsl, openssl, intl, curl, soap, gd
|
||||
|
||||
- name: Setup PHP
|
||||
run: |
|
||||
sudo apt install libapache2-mod-php7.4
|
||||
sudo sed -i 's,^post_max_size =.*$,post_max_size = 32M,' /etc/php/7.4/apache2/php.ini
|
||||
sudo sed -i 's,^upload_max_filesize =.*$,upload_max_filesize = 32M,' /etc/php/7.4/apache2/php.ini
|
||||
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
|
||||
- name: Install SeleniumBase
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: seleniumbase/SeleniumBase
|
||||
path: selenium-base
|
||||
|
||||
- name: Configure SeleniumBase
|
||||
run: |
|
||||
cd selenium-base
|
||||
python setup.py install
|
||||
|
||||
- name: Install Chrome and Firefox
|
||||
run: |
|
||||
sudo apt install google-chrome-stable
|
||||
sudo apt-get install firefox
|
||||
|
||||
- name: Check the console scripts interface
|
||||
run: |
|
||||
seleniumbase
|
||||
sbase
|
||||
|
||||
- name: Install chromedriver and geckodriver (Firefox Webdriver)
|
||||
run: |
|
||||
seleniumbase install chromedriver
|
||||
seleniumbase install geckodriver
|
||||
|
||||
- name: Make sure pytest is working
|
||||
run: |
|
||||
echo "def test_1(): pass" > nothing.py
|
||||
pytest nothing.py
|
||||
|
||||
- name: Make sure nosetests is working
|
||||
run: |
|
||||
echo "def test_2(): pass" > nothing2.py
|
||||
nosetests nothing2.py
|
||||
|
||||
- name: Cache Composer packages
|
||||
id: composer-cache
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: vendor
|
||||
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-php-
|
||||
|
||||
- name: Install Composer dependencies
|
||||
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
|
||||
|
||||
- name: Use NPM and Node.js
|
||||
uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: '14'
|
||||
- name: Install NPM and compile assets
|
||||
run: |
|
||||
yarn install
|
||||
npm run build-OSM
|
||||
|
||||
|
||||
- name: Copy OSM to www root
|
||||
run: |
|
||||
sudo cp -R /home/runner/work/openstamanager/openstamanager /var/www/html/
|
||||
sudo chmod -R 0777 /var/www/html/openstamanager
|
||||
sudo rm /var/www/html/openstamanager/.htaccess
|
||||
|
||||
- name: Check out test repository
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: devcode-it/openstamanager-tests
|
||||
path: python-tests
|
||||
|
||||
- name: Install Python dependencies
|
||||
run: |
|
||||
cd python-tests/
|
||||
python -m pip install --upgrade pip
|
||||
python -m pip install pytest
|
||||
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
||||
|
||||
- name: Restart apache
|
||||
run: sudo service apache2 restart
|
||||
|
||||
- name: Restart MySQL
|
||||
run: sudo service mysql restart
|
||||
|
||||
- name: Init test configuration
|
||||
run: |
|
||||
curl http://localhost/openstamanager/
|
||||
sudo cat /var/log/apache2/access.log
|
||||
cd python-tests/
|
||||
echo -ne "{\n \"login\": {\n \"password\": \"adminadmin\",\n \"username\": \"admin\"\n },\n \"database\": {\n \"host\": \"localhost\",\n \"user\": \"root\",\n \"pass\": \"root\",\n \"name\": \"osm\"\n },\n \"server\": \"http://localhost/openstamanager/\",\n \"browser\": \"firefox\",\n \"headless\": true\n}" > config.json
|
||||
pytest Init.py
|
||||
|
||||
- name: Execute tests
|
||||
run: |
|
||||
cd python-tests/
|
||||
pytest tests
|
Loading…
x
Reference in New Issue
Block a user