Subtitles for LinuxDays 2016 - Building a free software based development environment - F. Preinstorfer

14   0   0  
  Pause sub
donc vous remercier d' être venu à mon
présentation , je vais parler
la construction d' un développement de logiciels libres
environnement ou pipeline pour un petit
société fondamentalement , il est une partie de ce que nous
avons et nous avons construit au cours des trois dernières
années à notre société
mon nom est en pleine croissance des plantes plus difficile , je suis un
ingénieur système à une petite autrichienne
entreprise de démarrage et nous faisons en laboratoire
l'équipement d'essai pour les pâtes et papiers
industrie afin fondamentalement , nous construisons des dispositifs
que nous vendons aux clients et ceux
les clients utilisent pour tester certains aspects
par exemple de papier afin de cas d' un test
serait la quantité d'eau peut faire un morceau de
papier absorber le genre de dispositifs rien
notamment de fantaisie à partir d' un point de la technologie
de vue , nous utilisons la plupart du temps c ++ donc la plupart
du doux au tiers de ce qui est écrit dans
c ++ puis il y a un Python 3 et
évidemment le glucose que vous avez besoin
partout serait essentiellement passion et
tous les 15
saviez-vous avant voulez réellement
parler du pipeline je voudrais
présenter certaines des exigences qui
nous avions et ce sont quelques - uns d'entre eux
Je pense qu'il est important d'obtenir votre
sentiment de ce qui est nécessaire au moins
pour notre cas d' utilisation d' une manière importante
exigence était d'avoir un soutien hors ligne
notre siège social est situé dans
Autriche à la campagne et qui est
fait bien si vous regardez la fenêtre
et cela vous pouvez voir l' herbe verte
montagnes et essentiellement que ce soit le cas
mais il est pas bénéfique dans le cas où vous voulez
connexion internet correcte nous avons donc une
connexion Internet lente et plutôt
feuilletez vous voulez donc nous mieux pas compter
trop sur l'Internet qui serait
il serait bon pour nous
une autre chose que nous savons du passé
il qui est très bénéfique pour ne pas
dépendra de toute machine de développeur unique
quelque part , je suis sûr que la plupart d' entre vous ont
entendu
les histoires ou l'ont vu avec votre
propres yeux que certains ordinateurs portables une machine
dans un bureau de certains développeur est
en fait l'aspect le plus important de la
la société parce que sans ceux
sans cet ordinateur portable certains produits peuvent
être construit partout
Je ne sais pas si quelqu'un est si toutes les choses
comme ça , mais je les ai vus et ils sont
pas génial d'avoir autant mieux que nous
s'y préparer
une autre chose est qu'il devrait être facile à
utiliser et facile à utiliser des moyens que nous devrions utiliser
outils et nous devons fournir aux développeurs
outils dont ils sont à l' aise avec
donc si nous utilisons l' obtenir serait génial
si le développeur peut interagir avec un
pipeline et orchestrer le pipeline ou
la majeure partie du pipeline en utilisant simplement get
C'est suffisant
et une autre chose est qu'il devrait être
compréhensible je pense qu'il est tout à fait
important pour un environnement bâti
que les utilisateurs peuvent comprendre qu'ils ne le font pas
besoin d'obtenir obtenir toute l'éternité grande
les détails de celui-ci, mais vous devriez jeter un coup d'oeil
à elle et ils devraient dire d' accord , je sais que je
construit ce paquet et il est allé de cette
Machine à cette machine cette machine et
ce qui est arrivé ce serait qui serait
être assez juste
et comportant également compréhensible
pipeline signifie qu'il est aussi un hackable
donc il peut être peut être facilement modifié et
le ajusté au besoin je veux donner
vous un aperçu très minime de ce que nous
avoir
il est loin d'être complète , mais il
contient des aspects les plus importants qui
sont nécessaires pour cette 20 minutes talk afin
Je vais donner une courte introduction à
toutes les pièces ici et je vais
vous fournir quelques cas d'utilisation dans l' ordre
pour obtenir votre sentiment de ce qui est
possible afin que nous voulons commencer à la
en bas à gauche ici , où nous avons une
développeur ordinateur portable pourrait être quelque chose que
linux windows machine boîte mac
quel que soit il n'y a pas certaines exigences
sur cette machine essentiellement les développeurs
devrait se sentir à l'aise
avec son travail se fait donc peut - être 90
peut - être peut - max et un certain contrôle de version
système serait serait suffisant pour obtenir
commencé à partir de là, nous avons décidé de la
PICK obtenir genoux comme notre en tant que référentiel
serveur de gestion ou version socialisme
système de contrôle parce que nous utilisons
en interne beaucoup de nous aimons et nous
pense qu'il est il est là pour rester si nous lisons
donc nous avons pensé que ce serait bien si si nous
avoir quelque chose qui supporte évidemment
obtenir et permet également aux développeurs d'utiliser un
arme pour faire face si elles veulent parce
certains développeurs ne se sentent pas que l' épargne
avec avec avec une ligne de commande et peut - être
certaines tâches sont assez faciles à faire sur cette
une interface web donc nous avons pensé qu'il serait
être un bon tour serait serait un grand
outil ici et nous sommes très heureux avec le
le choix fait à l' époque où nous
a commencé il était il était un peu rude, mais
en ce moment il se sent, il se sent très bien
tout à fait bon d'utiliser à partir de là , nous nous nous dirigeons
sur le réservoir est ici celui du milieu
ici nous avons choisi Jenkins parce que j'étais
habituer et micro / procédé que ce soit
travaux
ok et il est un logiciel libre il est correct
utilisant Jenkins parfois pourraient vous
Jenkins pourrait vous donner quelques maux de tête si
si vous ne l'utilisez pas comme un maître seulement
système pour vous si vous voulez utiliser Jenkins
vous feriez mieux de vous assurer que vous utilisez construire notes
et ne pas construire quoi que ce soit sur Jenkins
se laisser Jenkins à tous les
orchestration et tous les autres
de rapports et d' artisanat et il y aurait
être là serait suffisant , mais faire la
construit sur d' autres machines et c'est
où nous avons plusieurs droit de nez de construction
ici les choses de la facture qu'ils construisent c ++
projets de python de projet ils courent unité
les tests qu'ils font tout ce test d'intégration
est nécessaire
à partir de là nous avons eu plus d'un plaidoyer et un
plaidoyer est à Debbie n version compatible
um serveur de référentiel donc nous avons décidé
expédier notre produit comme un ensemble de Debian
Forfaits et il est plus naturel et 22
expédier les paquets Debian dans un et dans un
debian régulière dépôt et vous
besoin d'outil pour manipuler les emballages et
certains d'entre eux sont disponibles et nous en tenir
avec un plaidoyer parce que nous pensons ou dans notre
l' expérience , il correspond à notre cas d' utilisation meilleure façon
il est je pense qu'il est écrit et aller
matures Je pense que oui et il est tout à fait à portée de main
à utiliser , il a beaucoup de fonctionnalités et i
pensez que vous obtenez la plupart du livre effectivement
fait sur le côté droit de l' évaporation de l'
côté droit de celui - ci ici , nous avons un
court la ligne en pointillés qui signifie que certains
la ségrégation de réseau de sorte que nous avons la plupart des
de cette popeline dans notre réseau interne
ou en fait tout cela la plus grande partie et
du côté droit sur le externe
réseau , nous avons des rétroviseurs extérieurs
et qui est essentiellement le moteur X de manière moteur
ax sert de référentiel pour notre
clients et nous avons plusieurs instances
de cela ici , donc oui , je reste quelques - uns
des trucs drôles réellement et certains
les choses utiles, par exemple, nous avons également
avoir un serveur de traduction afin de traducteurs
peut effectivement traduire notre entière
logiciel en utilisant un seul web unique
interface que nous utilisons un site pour cela , mais
il est il est en fait agréable , il offre à votre
twitter interface web bootstrap il est
très facile à utiliser , mais il est pas si
important pour pour cette causerie mais juste pour
vous donner une idée que cela est vraiment le
la plupart des composants importants de la
popeline donc je veux commencer avec un
cas d'utilisation et ce cas d'utilisation est de construire
et libérer
un morceau stable de logiciel de sorte que nous supposons
que le développeur ici sur son ordinateur portable
dispose d' un référentiel unique et il contient
une version stable du logiciel et il a également
a toutes les informations de paquet debian
dans ce si ce dépôt est fondamentalement
prêt à construire ok donc ce qu'un développeur
doit faire est essentiellement engager son à
engager l'état actuel de la
référentiel à une branche de libération dans ce
cas je l' appelle maintenant libérer de toute évidence
il peut y avoir beaucoup plus , mais pour cette
exemple libère assez et de bonne
là tout le développeur doit faire est
pousser ce référentiel pour obtenir l' amour et obtenir
up est non seulement l'entrée de cette
pipeline a besoin , mais également à une ou le
machine qui est réellement responsable de
archiver tout le code source , donc si vous
avoir engage sur une branche de libération et et
sur une branche , il pourrait être
livré à un client
il serait très souhaitable si vous faites
sûr que ce commit ne va jamais jamais
à nouveau
donc obtenir que vous fournit une fonctionnalité
que l' on appelle les branches de protection et
vous pouvez le configurer sur une base de projet
sur une base de projet et il vous permet de
protéger certaines branches d'être
supprimé et d'être forcé à pousser de façon
que les développeurs peuvent peuvent éliminer peuvent
éliminer les branches et à partir de là que nous avions
plus de 22 Jenkins obtenir essentiellement genoux
notifie Jenkins au sujet des modifications à
certains dépôts en utilisant l' aide de ce
livre si cela est une pierre que le
get norme API de laboratoire fonctionnalité , il
il avise essentiellement Jenkins hey Jenkins I
avoir quelques changements ici peut - être que vous voulez
faire quelque chose avec elle
alors Jenkins de son côté a une liste énorme
des projets qu'il construit il construit pour
exemple c ++ projet de libération des branches
il construit projet de python comme comme la nuit
versions what-ce que Jenkins essentiellement
sait comment construire des choses de sorte qu'il prend la
des informations de bon tour et remarque ok
ceci est un c ++ projet et il est en fait
provenant d'une branche de sortie donc je devrait
construire une libération essentiellement afin Jenkins une
quelques pas et ils sont essentiellement
sélectionner l' un de la construction ne fournissant pas
a construit un environnement de construction propre que nous faisons
pas partager tout environnement bâti à travers
projets de loi , nous nous assurons que chaque logiciel
chaque paquet est intégré sont dans un endroit propre
et environnement minimal si vous êtes
intéressés , nous utilisons debian Jenkins
indice pour que c'est une belle série de
essentiellement shell script qui abstrait
enlève beaucoup de la Nitty Gritty et
détails de l' emballage debian utilisant lorsque
vous utilisez Jenkins Jenkins facture le
forfait ou construit les factures de source à
construire les paquets binaires exécute des tests sur
le noeud des paquets et après la construction est
fait qu'il recueille tous les résultats qu'il
recueille l'artefact de constructeur et il
fournit à l'utilisateur avec quelque chose comme
des graphiques et des rapports qui est ce que tout le monde
veut avoir c'est donc la réelle
lieu où développeur peut regarder le
état actuel de ce projet afin que vous puissiez
jetez un coup d' oeil et dire ok cela est
la vingtième construire un paquet de sa
constructeurs propres que nous avons 20 tests unitaires et
et il peut , il peut rapidement prendre un coup d' oeil
et que l'état de celui - ci, ce qui est
aussi le point où vous pouvez personnaliser
beaucoup , donc si vous par exemple construit
la documentation de l' oxygène , il y a quelques uns
avertissements et de l' oxygène ou de l'oxygène
facture
verrouillez que vous voulez que vous voudrez peut - être
à jeter un oeil à ce rapport et
et caractéristique de Jenkins graphiquement serait
le bon endroit pour visualiser cette
changements tels détails nous allons donc supposer
que la construction réussie et l'un des
les artefacts de construction est en fait un binaire
paquets Debian ou paquet debian de

Jenkins prend un paquet et le jette à
un plaidoyer et un plaidoyer prend un coup d' oeil à la
paquet entrant et le bâtiment
l'information qui est livrée avec elle
et préavis avis
ok c'est un cela ressemble à une libération
paquet parce qu'il vient d'un
la libération de la branche get originale
engagé à obtenir la libération de sorte qu'il branche
dit d' accord , je sais comment faire face à
de presse , je vais le prendre et le mettre
dans ma distribution instable ou
référentiel pour que , pour cette question afin
cela signifie qu'un seul ou tous les emballages
qui sont construites sont essentiellement farcies
en un seul ups Référentiel un plaidoyer
distribution , nous avons plusieurs personnes
et je veux juste très rapidement sur
ou sur les différentes distributions
nous avons, nous avons par exemple, nous instable
un essai et nous avons un stable et
ceux qui servent différents cas d'utilisation de sorte que le
instable est l'une est la distribution
les paquets sont jetés dans tout le temps,
si le développeur fait une nouvelle version de
tout colis , il est bourré dans unstable
maintenant à un moment donné dans le temps vous fondamentalement
vouloir expédier des logiciels aux clients
sinon vous seriez bientôt hors de
entreprise afin à un moment donné dans le temps , je
développeur doit décider ce bien est
assez bon pour obtenir essentiellement en
les essais et tests signifie que notre
tests Département du département QA peut
commencer à jeter un oeil à l'actuelle
état de la
can auditif afin que l'équipe , par exemple
tester si installe à partir de ce
travail référentiel si les mises à jour fonctionnent si le
les paquets sont terminés lorsque les caractéristiques
travaillent si toutes les cases qui sont
nécessaires sont effectivement et oui
à partir de là nous avons besoin du q18 à
essentiellement démarrer le travail Jenkins et Mark
la distribution testing comme stable et
des moyens stables qu'il est en miroir à la
référentiels externes à l'extérieur
miroirs donc une fois un membre de QA dit ok
cette cette version de l'essai
dépôt est assez bon , il peut être
expédiés aux clients , il peut commercialiser un
stable et tout danse extérieur
en dehors du dépôt est donc ce
récapitulatif complet sur le sur l'ensemble
pipeline et je veux juste rapidement
avec un ou deux autres cas d'utilisation comme
bien pour vous donner une impression de de
ce qui est ce qui est possible
avant que je veux résumer rapidement nous
avoir un paquet source de bras stable
debian informations d'emballage en elle nous
envoyé ce paquet pour obtenir se faire tour
obtenir remarqué build Jenkins Jenkins
logiciel , nous avons une debian binaire
package qui est en présente un plaidoyer et
une fois qu'il coule à travers le pipeline
grâce à des tests instable et stable
tôt ou tard , nous allons frapper le client
à un moment donné et généralement quand cela
se passe le client fera rapport boîte
nous espérons qu'il fait dans notre cas ils le font
Passons à un autre exemple et
supposons ok ce client signale un
buck et supposons que ok
une des pages de manuel manquantes à partir d' une debian
emballer les mâles ne reçoivent généralement pas
rapporté, mais supposons pour cette
par exemple qu'elle est si le développeur est
chargé de ok s'il vous plaît à la page de maman
ce paquet et maintenant il le fait qu'il crée
une branche sourde essentiellement sourd et choisir
un nom pourrait être emballage pour sourds
par exemple, puis il commence à travailler sur
le paquet et qu'il pouvait maintenant évidemment
tout construire lui - même qu'il pouvait
construire un été emballés localement ici
tous les tests unitaires localement chèque Picard
la couverture de code localement à tous les
choses , mais il n'y a pas besoin de parce qu'il
peut également pousser ce personnel cette mort
emballage branche ici juste pour se lever
encore et que l' amour faire le travail pour lui
ou ne ce dernier pipeline faire le travail de façon
se lever à nouveau remarquer Jenkins Jenkins
sait comment construire des paquets , il vient
d' une autre branche , mais n'a pas vraiment
question , il construit donc des paquets et encore
Artisanat Jenkins et de rapports de sorte que l'utilisateur
peut tout à fait assez facilement repérer par exemple
avertissements incheon et lynchage est un outil
que vous pouvez utiliser dans le cas où
vous utilisez paquets Debian , il est un est
un linter pour David emballe et il peut
vous informer des choses comme il y a un accord
binaire dans ce paquet et il manque
une page de manuel Supposons donc , ce matin
est non disparu et le projet de loi est de construire
son ok donc en plus des graphiques et
rapports que nous avons aussi d'avoir la
paquet debian et à ce stade , il est
à nouveau jeté contre un plaidoyer et laid
dit d' accord , il est un , il est un paquet debian
il est en fait bien , mais il vient
une branche que je ne sais pas , il semble
comme il vient de l' emballage def
Je ne prends pas de sorte qu'il jette essentiellement
éloigner ainsi on pourrait dire bien cela est
ceci est un exemple plutôt inutile
oui , mais il est le fondement de la construction
d' autres choses sur le dessus qui sont le tour
être tout à fait utile une fois que vous avez
les utilisant par exemple ce présent
pipeline et en utilisant le seul point un
moyen de décider si oui ou non les paquets
devrait frapper le référentiel vous permet de
faire des choses comme bien que nous pouvons faire tous les soirs
reconstruire tous les paquets Debian à tout
le temps n'a jamais va frapper tout dépôt
mais nous pouvons repérer des choses comme changer une
colis ou rupture de pis ou passés
emballés avec de tels cas , ces
autres facteurs intéressants et je veux
à sauter très rapidement sur ce
parce que je suis déjà au fil du temps, mais juste
pour vous donner une impression
il vous permet également de fournir une utilisation
des cas tels que pourquoi ne pas créer une spéciale
la distribution sur le serveur d'applet
est appelé emballage def et si nous avons touché
comme un autre positif si si
paquet atteint un tel dépôt , il pourrait
aller à l' emballage de la mort est présente
dans cet exemple , il ne va pas trop
instable , il ne va avoir l' emballage
et à partir de là , nous avons une cabine régulière et
dépôt de sorte qu'il peut être utilisé à l'intérieur
par QA département peut être utilisé par par
les développeurs lui-même et cela permet
exemple pour faire de grandes refactorings sans
rupture instable pour deux mois ou
trois mois parce que le développeur peut
ramasser un paquet source qu'il veut ou
tout dépôt qu'il veut pirater sur elle
et pousser à commettre pas de ne pas libérer
succursale , mais à une branche de développement connu
et tous les paquets qui tombent sur
cette branche de développement connu a frappé cette
très référentiel et jamais
jamais aller à des clients, mais qui serait
nous permettre une certaine un grand interne
tests et une fois que le refactoring est fait
le travail peut tout simplement être fusionné pour
libérer la pratique et vous avez la première
cas d' utilisation à nouveau si évidemment mon temps est
sur le moment , je veux juste très
aller rapidement sur pour aller sur plusieurs
leçons que nous avons apprises
peut - être qu'ils sont utiles à vous , je serais
Si je les avais connu avant la
premier est de mieux vous assurez-vous
ont un très facile à utiliser et pipeline
facile à utiliser des moyens de point de développeur
voir si vous en utilisant get dans votre entreprise
assurez - vous que le pipeline est
contrôlable et utilisable par obtenir uniquement
si vous avez si vous avez besoin de votre
les développeurs pour configurer Jenkins pour leur
bâtiment propre logiciel qui pourrait être un
problème parce que certains développeurs , même si
il est la politique de l' entreprise qui devrait Jenkins
être utilisé pour la construction de certains développeurs
dira yep Je l' ignore
autres fines diront oui je vais
prendre Jenkins pour la construction mais je n'ai jamais
entendu parler de tests unitaires et je ne me soucie pas
sur les graphiques au sujet des tests unitaires bien ok
autres seront dire d' accord , je sais comment
comment analyser les résultats des tests de l' unité de che
avec Jenkins ce qui est bon et il est heureux
mais il a oublié qu'il y est par exemple
la couverture de code, si bien que ce serait
grand pour vous assurer que ce que vous pouvez
abstraite loin du développeur et vous
ne nécessitent pas un développeur pour configurer
Jenkins , il peut prendre un coup d' oeil
aucun problème mais, fondamentalement, il est préférable de
fournir pour lui je pense qu'il est
important d'obtenir des services et en cours d'exécution
réel rapidement pour ne pas construire ne pas tous
les caractéristiques que vous pensez que sont
important ou utile, mais commencer par la
plus important et prévoir que
exigences pour changer au cours du temps mmm
ils changent très souvent , plus souvent et
vous feriez mieux de vous préparer pour cela et
Je pense que la meilleure préparation pour
l'évolution des besoins est d'automatiser
autant que possible et de l' automatisation des moyens ok
Je suis utiliser ansible utilisation marionnettes chef cuisinier
tout ce que vous avez à faire votre serveur
configuration , mais ne vous arrêtez pas là
parce que par exemple obtenir fournit une forte
API étaient tous les projets peuvent être con
configuré par programme donc il n'y a
pas besoin de passer par les paramètres de
plusieurs centaines de projets et exigent et
et appartenance à un groupe d'édition ou modifier crochets
ou quelque chose comme ça qui peut être
automatisé loin et il devrait être
manière automatisée
une autre chose est que si vous utilisez Jenkins
il y a des projets comme Jenkins tir
builder Je ne sais pas si elle est si les gens
savoir que , mais je pense qu'il est très utile
parce que nous avons quelques je ne suis pas à propos de
milliers de vérifier les magasins et le changement
pièces uniques de l'emploi nous a exige
minute le faire à la main et vous pourriez
avoir du plaisir pour les deux prochaines semaines donc si
vous utilisez ensemble à l' aide Jenkins assurez - vous
vous ne touchez jamais l'interface de configuration
de celui-ci, sauf pour l'essai et évidemment
le dernier point est mieux vous choisissez votre
outils à bon escient
nous avons commencé avec un autre référentiel
serveur et sans affrontement beaucoup beaucoup
évaluation parce que nous pensions bien que nous avons
il connu par le passé et il est ok ce qu'il
fait son travail , mais nous avons atteint les limites
assez rapidement et effectivement lorsque vous
construire un tel pipeline intégrations viennent
au fil du temps et vous pensez bien cela est
juste l'un se blesse à eux une
debian serveur de référentiel , il ne peut pas être
si difficile à déchirer que jusqu'à , mais en fait , si
il y a cinq autres services
en dépendent et en quelque sorte intégrer
it it de l' obtenir devient délicat
ok pour qu'il est de mon discours je vous remercie
beaucoup d'écoute
si vous avez des questions
vous pourriez leur demander leur informateur quatre
minutes ou vous pouvez trouver le contact
détails sur ma page Web
OK merci
Oui s'il vous plaît
Regardez ci - dessous je voulais poser
à côté de ces outils de développement sont
Y at-il d'autres morceaux de logiciel libre
à utiliser à partir de nos autres aspects de la
votre entreprise comme base comptable
relations avec les clients peut - être ou projet
gestion excellente question
nous sommes en train de migrer loin d'un
propriétaire la planification des ressources d'entreprise
système à un logiciel libre , il est l' un
appelé Triton Je ne sais pas si vous si vous
savoir, ce droit sur au moins la
outil de choix pour nous en ce moment , je pense
Je ne suis pas sûr que je pense qu'il est appelé nouveau
la santé qui repose sur essaya donc
vous voudrez peut - être chercher une nouvelle santé
pour obtenir des démos et jeter un oeil à ce qui était
possible
oui s'il vous plaît j'ai besoin pour la présentation et
revoir certains unifiés au modèle de ramification
éduquer quelque chose comme ça pour le tri des
que nous avons nous avons une ramification
modéliser oui et il est basé sur la libération
noms interne de sorte qu'il est celui qui i
présenté ici est en fait tout à fait une
minute fide celui que nous avons dur illimité
pour expliquer
Donc, fondamentalement, nous avons nous avons communiqués
toutes les quelques années ou il peut ne pas libérer est
toutes les quelques années qui sur qui ont des noms
et en dessous de ce nom que nous avons publié
branches et nous avons le développement
branches et nous avons des branches d'emballage
et tout le genre de choses donc oui nous faisons
et si vous venez intéressés à moi
par la suite et je vais vous expliquer en détail
à toi
yep bienvenue
oui oui s'il vous plaît comment traitez-vous
comme même avoir un enseignant vraiment vieux été
vieux comme trois semaines
essayez de l' intégrer à la bande
publié comme chaque semaine ou juste comme essayer de
fusionner ces vieilles branches de la nouvelle version
qui plus de fonctionnalités ajoutées par l'unique ,
de la manière et qui peut causer d'autres
sorte de boîte
ok donc la question est quand nous lorsque nous
avoir de telles branches de développement longues que
nous utilisons et alors nous serons emballés
séparément si nous fusionnons les récupérer
et effectivement oui , nous le faisons nous avons essentiellement
rebasage donc tout ce que touche le développement
branche n'a pas d' importance pour nous , donc nous r
il y a beaucoup de nombreux comités qui sont
juste travailler progrès des trucs comme ça
et une fois qu'ils reviennent à maîtriser ou à
branche de libération , ils sont généralement écrasés
en commits logiques avec bon commettre
messages, puis l'ensemble du pipeline est
reconstruit ou le logiciel est reconstruit de façon
ce que nous ne faisons pas est que nous ne prenons pas
paquets Debian développement qui ont frappé un
référentiel de développement et de le déplacer dans
le dépôt instable ou stable pour que nous
Assurez-vous que toutes les versions utilisent effectivement
le chemin avec les versions là donc nous
ne jamais prendre les paquets Debian binaires pour
sourd pour tout ce que nous avons tous nous avons toujours
reconstruire le genre de choses
D'accord

Share this subtitle


Description

This talk will cover how to power the development infrastructure of a small (non-cloud) company using free software. I present the goals and our requirements for the infrastructure and dig into some interesting parts, including: * Using a free software pipeline to get from code to the final product. * Discuss the use of free software alternatives to proprietary solutions. * Why the work on infrastructure is never finished. * Lessons learned