O nouă versiune semnificativă este disponibilă , o platformă pentru gestionarea întregului ciclu de dezvoltare a software-ului, oferind un set complet de instrumente pentru dezvoltarea proiectelor conform paradigmei DevOps. Din punct de vedere al capacităților, OneDev este similar cu GitLab și oferă, de asemenea, posibilitatea de a desfășura infrastructura de dezvoltare colaborativă, revizuire, testare, construire și livrare a versiunilor, fără a fi legat de servicii cloud externe, cum ar fi GitHub. Codul proiectului este scris în Java și sub licența MIT.
Câteva caracteristici:
- Un proces simplificat de desfășurare a fermelor de construcție pentru lansarea construcțiilor CI în Kubernetes, care nu necesită execuția agenților și runner-urilor. Posibilitatea de testare în containere cu Linux și Windows;
- Suport pentru crearea specificațiilor de construcție (Build Spec) într-un mod vizual, fără a scrie fișiere YAML și a memora sintaxa;
- Posibilitatea de a personaliza flexibil procesul de construcție folosind parametrii de construcție condiționali, lansarea paralelă a mai multor lucrări de construcție și inițierea automată a lucrărilor atunci când se întâmplă anumite evenimente;
- Suport pentru definirea unor stări și câmpuri proprii pentru notificările de probleme (issue), posibilitatea de a defini dependențe între câmpuri și schimbarea automată a stării la apariția unor evenimente specifice;
- Interfață de probleme autoactualizantă, care nu necesită reîncărcarea paginii;
- Un sistem de căutare și navigare prin cod și modificări, care ține cont de specificitățile sintaxei Java, JavaScript, C, C++, CSharp, Go, PHP, Python, CSS, SCSS, LESS și R;
- Suport pentru legarea discuțiilor și comentariilor externe la cod și la blocurile cu modificări (diff);
- Reguli flexibile pentru revizuirea pull-request-urilor, cu posibilitatea de a proteja anumite ramuri și de a desemna dezvoltatori pentru revizuire;
- Mod de analiză etapizat a commit-urilor în timpul revizuirii pull-request-urilor. Legare la discuțiile din revizuirea anterioară;
- Un limbaj de interogare care permite găsirea informațiilor necesare în proiecte, commit-uri, construcții, probleme (issues), pull-request-uri și comentarii. Posibilitatea de a salva interogarea și a primi notificări cu privire la apariția de noi evenimente asociate;
- Un sistem de control al accesului, care permite definirea cine poate modifica codul într-un anumit subdirector, desemna probleme (issues), lansa construcții de versiuni, vizualiza jurnalele etc.
- Funcționalități pentru crearea și clonarea repositoarelor;
- Abonare pentru primirea notificărilor privind efectuarea commit-urilor în ramura master;
- Suport pentru pull request-uri cu automatizarea verificării commit-ului acceptat în sistemul de integrare continuă și aprobarea de către un consiliu de experți, care include cel puțin doi dezvoltatori;
- Posibilitatea de a închide issues prin mesajul commit-ului, care poate lega discuții, commit-uri, build-uri și pull request-uri;
- Capacitatea de a crea formulare salvate în interfață pentru a afișa care utilizatori sunt asociați cu rezolvarea problemelor (issue);
- Suport pentru crearea de câmpuri personalizate pentru a lega issues de module și platforme specifice;
- Posibilitatea de a schimba automat statutul unei probleme în Deployed la corectare, la build, și în Review la deschiderea unui pull request;
- Posibilitatea de a atribui unei probleme starea Verified, ce poate fi acordată de către dezvoltatori cu statut de tester;
- Suport pentru inițierea manuală a recompilării, cu opțiunea de a specifica versiunea, care va fi atribuită și generarea unui tag corespunzător în caz de succes al build-ului;
- Posibilitatea de a selecta platforma și versiunea kernel-ului Linux la inițierea unei recompilări manuale;
- Suport pentru testarea în CI a diferitelor combinații Oracle/MySQL și Linux/Windows la commit-ul în ramura master;
- Crearea automată de notificări despre probleme (issue) și atribuirea unui responsabil pentru analiza problemei în cazul unei erori de build în ramura master în CI. Închiderea automată a issue-urilor odată ce eroarea este corectată în build.
- Posibilitatea de a genera fișiere într-o fază, de a le procesa în paralel în a doua fază și de a analiza rezultatele în a treia;
- Suport pentru reluarea lucrărilor în cazul unei erori la inițierea procesorului în Kubernetes;
- Posibilitatea de a utiliza serviciul MySQL în timpul desfășurării lucrărilor;
- Suport pentru stabilirea unei chei secrete la definirea specificației build-ului;
- Posibilitatea de a restricționa accesul utilizatorilor anonimi doar la release-uri din anumite proiecte;
- Suport pentru restricționarea generării release-urilor doar la ramura master și plasarea pe serverele de lucru doar a release-urilor construite din ramura master.
Sursa: opennet.ro
