Proposition for a new non-official CI

en

#1

Hi guys

So, as some of you know we have a non-official CI designed to do test on packages in progress.
Available here https://jenkins-apps.nohost.me/jenkins/

But, this CI is set on one of my server and need many manual operations.
So, I thought about one another way to give an official non-official CI for all the packagers who want to use it.

Let me explain that.

  • For a packager,
    You can have an access to this CI by ssh with your private key. (And obviously everyone can see the results on jenkins.)
    With your ssh connection, you gonna access to your private directory in this server. Where you can put all your apps.
    For each app you add to your directory, a new job will be created in jenkins.
    And, if you update an app in its directory, a new test for this app will begin.

To update or add a new app, you’ll can use a dedicated script which perform a rsync on your apps, from your computer.

  • For a member of apps group
    To have a account, a packager have to ask you.
    Your access to this server will not be restricted to your personnal directory.
    A script have to be used to add a new packager, with his directory and all the stuff he need.
    And the same if you want to remove an user.
    Normally, you shouldn’t have something else to do.

  • But why ?
    To give to all packagers more autonomy.
    To prevent the coding by commits, as we can see with the current CI. (I mean add a new commit to start a new test. And so on…)
    Do not use my personnal server to do that. It’s my fallback, so sometimes, it can be offline for you.
    And allow to more packagers to have tests, even if they do not want (or can’t) use package check on their own.

So, if you’re interrested by this idea, let me know. I have to work in these scripts in this case, though it shouldn’t be too long.

But, if it’s possible, it can be nice if someone else than me can rent a vps to this purpose.


Désolé pas la force de réécrire ça une deuxième fois en français…


YNH_APP_INSTANCE_NAME in hook script
#2

Good idea :wink:


#3

+1 :thumbsup:


#4

Bonjour @Maniack_Crudelis ,

Pour le fun, et sans relecture, une traduction avec https://www.deepl.com/translator

Salut les gars

Ainsi, comme certains d’entre vous le savent, nous avons un CI non officiel conçu pour faire des tests sur les paquets en cours.
Disponible ici: https://jenkins-apps.nohost.me/jenkins/4

Mais, ce CI est configuré sur un de mes serveurs et nécessite de nombreuses opérations manuelles.
J’ai donc réfléchi à une autre façon de donner un CI officiel non officiel à tous les emballeurs qui veulent l’utiliser.

Laissez-moi vous expliquer.

  • Pour un emballeur,
    Vous pouvez accéder à ce CI par ssh avec votre clé privée. (Et évidemment tout le monde peut voir les résultats sur Jenkins.)
    Avec votre connexion ssh, vous allez accéder à votre répertoire privé dans ce serveur. Où vous pouvez mettre toutes vos applications.
    Pour chaque application que vous ajoutez à votre répertoire, un nouvel emploi sera créé dans jenkins.
    Et, si vous mettez à jour une application dans son répertoire, un nouveau test pour cette application commencera.

Pour mettre à jour ou ajouter une nouvelle application, vous pouvez utiliser un script dédié qui exécute une rsync sur vos applications, depuis votre ordinateur.

  • Pour un membre du groupe d’applications
    Pour avoir un compte, un packager doit vous demander.
    Votre accès à ce serveur ne sera pas limité à votre répertoire personnel.
    Un script doit être utilisé pour ajouter un nouveau packager, avec son répertoire et tout ce dont il a besoin.
    Et la mĂŞme chose si vous voulez supprimer un utilisateur.
    Normalement, tu ne devrais pas avoir autre chose Ă  faire.
  • Mais pourquoi?
    Donner plus d’autonomie à tous les conditionneurs.
    Empêcher le codage par commits, comme on peut le voir avec le CI courant. (Je veux dire ajouter un nouveau commit pour commencer un nouveau test. Et ainsi de suite…)
    N’utilisez pas mon serveur personnel pour cela. C’est mon repli, donc parfois, ça peut être hors ligne pour toi.
    Et permettre à plus d’emballeurs d’avoir des tests, même s’ils ne veulent pas (ou ne peuvent pas) utiliser le contrôle de paquetages par eux-mêmes.

Si cette idée vous intéresse, faites-le moi savoir. Je dois travailler sur ces scripts dans ce cas-ci, même si ça ne devrait pas être trop long.

Mais, si c’est possible, ça peut être sympa si quelqu’un d’autre que moi peut louer un VPS à cet effet.

ppr


#5

Hi guys

there’s a beta of this new CI, running on one of my scaleway.
You can find it here
https://ci-apps-dev.domain.tld/jenkins/
BUT !!! It’s a fake domain for now, so you have to set your own dns and write it down
51.15.205.176 ci-apps-dev.domain.tld

It’s a beta test, so this instance can be whipped out and rebuild at any time.
If you want to try it, please ask me.
I need an user name and and a public ssh key.


#6

Hey,

wonderfull new, the beta test is over, so now we have a new CI for packagers, open to who want to use it.

You can find this new CI just here:
ci-apps-dev.yunohost.org

To be able to use it, you just have to ask to a member of apps group. Right here or on our Apps chat room.
To create a new account, we need only a name and an ssh public key.

When you have your personnal account, let see how it works.

  • With your account, you can access to your personnal directory on the CI server, by USER@ci-apps-dev.yunohost.org -i YOU_PRIVATE_KEY
  • On this directory, you can put your apps or upgrade them.
  • As soon as you put a new app in your directory, in a delay of 5 minutes max, a new jenkins job will be created for your app. And executed.
  • If you simply update one of your app, a new test will begin for this app.

So yes it’s quite simple :slight_smile:

But, to increase the security of the server, your ssh access is limited. Very limited…

  • First, you can’t use git with this ssh connection, the only things you can do are to copy your app from your local directory.
  • But, again, this copy is limited to 2 tools, sftp and rsync.
  • But, because I’m not a monster (not to much :smiling_imp:), I made a small script to help you to send your apps in your personnal directory.

Let enjoy your new CI.


Hey,

merveilleuse nouvelle, la beta test est terminé, donc maintenant nous avons un nouveau CI pour les packageurs, ouvert à tout ceux qui veulent l’utiliser.

Vous pouvez trouver ce nouveau CI juste ici:
ci-apps-dev. yunohost. org

Pour pouvoir l’utiliser, il vous suffit de demander à un membre du groupe Apps. Ici même ou sur notre salon Apps.
Pour créer un nouveau compte, il nous suffit d’un nom et d’une clé publique ssh.

Dés lors que vous avez votre compte personnel, voyez comment ça fonctionne.

  • Avec votre compte, vous pouvez accĂ©der Ă  votre dossier personnel sur le serveur, par USER@ci-apps-dev.yunohost.org -i YOU_PRIVATE_KEY.
  • Sur ce rĂ©pertoire, vous pouvez dĂ©poser vos applications ou les mettre Ă  jour.
  • Dès que vous dĂ©poser une nouvelle application dans votre rĂ©pertoire, dans un dĂ©lai de 5 minutes maximum, un nouveau job jenkins sera crĂ©Ă© pour votre application. Et exĂ©cutĂ©.
  • Si vous mettez simplement Ă  jour l’une de vos applications, un nouveau test commencera pour cette application.

Donc oui, c’est assez simple :slight_smile:

Mais, pour augmenter la sécurité du serveur, votre accès ssh est limité. Très limité…

  • Tout d’abord, vous ne pouvez pas utiliser git avec cette connexion ssh, la seule chose que vous pouvez faire est de copier votre application Ă  partir de votre rĂ©pertoire local.
  • Mais, encore une fois, cette copie est limitĂ©e Ă  2 outils, sftp et rsync.
  • Mais, parce que je ne suis pas un monstre (pas trop :smiling_imp:), j’ai fait un petit script pour vous aider Ă  envoyer vos applications dans votre rĂ©pertoire personnel.

Profitez de votre nouveau CI.


#7