GitHub Actions - With Scott Sauber
Durée: 52m20s
Date de sortie: 16/09/2024
In this episode, I was joined by Scott Sauber to chat about GitHub Actions. Before that though, we chatted about the differences between ‘Continuous Integration’, ‘Continuous Delivery’, and ‘Continuous Deployment’. Then we delved into the world of GitHub Actions, and how they can be used to automate your workflows.For a full list of show notes, or to add comments - please see the website here
Salut tout le monde, bienvenue à l'Unhandled Exception Podcast. Je suis Dan Clark et c'est épisode
numéro 71. Et aujourd'hui je suis joined par Scott Sauber, à chanter des actions githubes.
Bonjour, bienvenue à la chanson de Scott.
Salut Dan, merci pour votre soutien.
Oh, bienvenue.
Alors, nous allons parler des actions githubes et des actions githubes et tout ce genre de choses.
Et beaucoup de mon boulot a été dans Azure DevOps pour les choses githubes et des choses.
Je n'ai pas fait des actions githubes mais je veux vraiment faire plus.
Je veux vraiment... C'est github et ça nous ressemble à un peu plus.
Mais j'ai été étouffé dans l'Union de l'Agence de l'Agence de l'Agence de l'Union
parce que...
Et bien, avant de nous en parler, si vous pouvez vous introduire à l'un des listeners
et vous dites un peu de ce que vous faites, et nous pouvons vous en parler des actions githubes.
Oui, absolument.
Comme vous l'avez dit, je suis Scott Sauber.
Je suis le directeur d'engineering
à une company de consultant de software qui s'appelle Lean Techniques.
On est environ 140 personnes
basées en Des Moines, Iowa,
en centre de l'Union.
Mais on a des personnes en 15 ou 16 états
dans l'Union.
Nous travaillons avec Fortune 100, des entreprises
dans les start-ups et tout ce qui se passe entre les deux.
Normalement, ce que nous faisons, c'est que nous nous aide à
les faire en même temps,
sur différentes pratiques,
comme la CICD,
la développement de test de ralenti,
les travailler dans les petites batchs,
les développement de front-base, etc.
Donc, un peu de ce que nous faisons,
c'est de les faire en même temps,
et je l'ai fait un peu de actions githubes
et aussi, je l'ai utilisé Bitbucket, Azure DevOps,
CircleCI,
TFS Build,
et les employés de l'année de l'année.
J'ai utilisé OctopusDeploy,
j'ai utilisé beaucoup de différents tools de CICD.
Et je l'ai utilisé le jour le plus tard,
et je l'ai réalisé, je travaillais avec 30 clients différents,
donc j'ai vu beaucoup de choses différentes.
C'est cool de voir beaucoup de choses différentes,
mais aussi, ça a fait que je vois
ce que les gens font de la même manière,
ce qui est bien,
donc j'ai vu les gens faire des choses avec
des plateformes de CICD que peut-être ils n'ont pas fait,
ou peut-être ils n'ont pas de CICD
à tout et je n'ai jamais entendu de ça.
Donc, c'est juste ce jeu de jeu.
Mais, en général, mes backgrounds
sont dans les sites web,
et je l'ai fait beaucoup de JavaScript, Cloud, DevOps,
et les dernières 15 ans.
Donc, tous ces plateformes différents,
les plateformes de CICD que tu as listées,
qui est ton préféré?
Parce que j'ai évidemment eu le sujet,
si tu as des questions sur le sujet de cet podcast,
tu as des questions qui se trompent en plus?
Oui, j'ai utilisé beaucoup de tools de CICD,
comme je l'ai mentionné,
et je dirais que le GitHub est
mon préféré quand je l'utilise
pour la contrôle de la source,
par défaut, parce que de la taux de la integration,
c'est tout interprété avec les
des demandes pour lesquelles
tu peux voir la petite box de
la marque de check-mark qui dit
« Hey, c'est passé! »
Mais je dirais que, quand les actions de GitHub
peuvent faire un CD, c'est pas
nécessairement un premier class citizen.
Il y a beaucoup de ces tools,
qui sont CI-specific,
mais ils peuvent aussi faire un CD, mais pas vraiment un premier class citizen,
où ils n'ont pas des concepts
de déploiements et de réglages,
mais c'est un CI-first
tool,
alors que tu as un CD-first
de déploiements et de réglages,
donc tu as des concepts de première class,
des médecins de multi-tentative,
mais je dirais que,
ce que je vois dans le marché,
c'est qu'il y a un grand mouvement
pour le GitHub,
les gens sont en train de
faire des choses comme Bitbucket,
même les DevOps, parce que je vois
un grand investissement dans le GitHub
en général, et donc, parce que c'est
très naturel de dire,
je suis déjà sur GitHub, pourquoi pas
utiliser les actions de GitHub ? On a
de la chance de voir beaucoup de nos clients,
à moins inquièrent sur GitHub,
si ils ne sont pas déjà sur GitHub, et puis,
évidemment, si tu as un GitHub, tu as
3 minutes et tout,
ce que tu as acheté, donc,
oui, je dirais que les actions de GitHub
sont vraiment mes défauts de choice,
jusqu'à ce que je sois un raisin de faire
quelque chose d'autre.
Tu as mentionné quelques choses,
comme CI et CD,
et j'ai l'impression que les
listeners comprenaient que les pipelines
sont utilisées, donc, les gits de tricot
et ce genre de choses, mais il y a
les CI et les deux CDs,
et je pense que c'est probablement plus
que de définir les 3 choses,
parce que je pense qu'il y a beaucoup
d'overlop et de confusion entre elles.
Oui, absolument. Donc, CI est
une integration continueuse,
et beaucoup de gens, je vais aller
voir ce que je veux dire,
quand ils entendent les CI, ils pensent
que je dois avoir un server automatique,
et c'est ce que beaucoup de gens
parle quand ils disent qu'ils ont un pipeline CI,
ils disent que quand tu commites et tu te
pousse, ça automatique
ça va se faire, et souvent,
ça fait des choses comme
faire un build automatique,
et ils disent que peut-il
même compiler l'app,
faire les tests,
faire les tests pass,
faire les tests linter et format,
dire que c'est la code formée de certain
de manière certaine, ou
est-ce la code salue, en force,
tous ces trucs.
C'est là où la CI est
en train de jouer, que tu es
faire une vérification de
si c'est la code en bon état,
parce que si la code ne compile, je pense que
ta app est probablement une bonne temps
de faire.
C'est typiquement ce que les gens
disent quand ils parlent de CI.
Là, il y a la practice de CI,
où les gens parlent de
que la integration continue est
un build server, c'est quelque chose que tu fais,
pas quelque chose que tu as.
Je tries et pousse les teams de la lot
pour savoir comment tu est souvent
réinitié dans la main branch,
parce que chaque fois que tu as un conflict
d'inquiétude,
on change d'un autre file et fait
quelque chose qui conflite avec ce que tu as essayé de faire,
c'est un fait-fait
que tu n'as pas été réinitié
en faisant de la code,
ou d'autant que tu sois
un indicateur.
Si tu es toujours en train d'inquiéture
des conflits, tu dois être en train
de continuer de l'intégrer,
donc tu dois essayer de faire des branches
de plus en plus,
et de continuer de l'intégrer
dans la main branch.
C'est mon grand grand rant
sur CI, mais les gens parlent
de build server, mais il y a aussi
la side de la practice de la integration
qui est où
ça a été originalement.
C'est aussi comme si tu as aussi
une stratégie de branch
d'inquiéture et d'assurer que tu as
des branches de short-lib et tout.
C'est même avant que tu penses
que le build server.
Je suis un grand fan de développement
de tronc, qui vous force
à avoir une grande branche, qui est
votre main branch ou défaut, et pas
faire des choses comme git flow,
des branches environnementales, etc.
Et si tu regardes
les applications de l'Atlasian,
un tool de software populaire
qui fait des choses comme Jira, Confluence, Bitbucket,
etc. Et si tu regardes
leur documentation pour git flow,
Google git flow atlasian,
ils vont dire que c'est une fonction de legacy,
que tu sois en train de faire des developments de tronc.
Ce n'est pas juste une chose de moi,
je dirais que l'industrie est en train
de faire ce type de développement
où il n'y a que l'une
longue branche.
Je me demande combien de entreprises,
et ça va se passer un peu, car
c'est comme si c'était une practice de legacy,
mais tu sais que le diagramme de
git flow, et beaucoup de entreprises
ont probablement pris ça en train
de mettre le marché sur les walls, car c'est
compliqué. Je suis sûr que
tu peux faire des branches en train de
faire surement que c'est un bon test de coverage,
pour faire surement que c'est en train
d'avoir des étapes, car vous avez
des étapes de différentes headaches, et de
mangé des branches, de juggler.
Je trouve que les gens ne doivent pas
connaître le git, pour être honnête,
quand tu fais le développement de tronc,
car tu n'es pas cher,
où tu es pluré un commit
d'une branch à une autre, et tu n'es pas
comme un bâton de remboursement,
il y a juste beaucoup de problèmes,
et ça fait que c'est plus simple.
Une chose que tu dois commencer
à penser, et ça peut être un tout podcast,
je ne vais pas trop
aller dans ce cas, mais le concept de feature
tuckles, car si tu es toujours
en train de faire des choses,
le premier branch est toujours réel,
il faut être capable de faire des choses
sur quelque chose qui a été déployé,
mais oui, ça peut être, on peut toucher
en bas, mais ça peut être un autre.
Je vais donc bouger au next CD.
Oui, donc, il y a 2 CDs
avec le même acronym,
j'ai appris qu'il y a un initialisme,
car un acronym est quelque chose que
tu peux espérer comme un mot,
car l'initialisme est 2 lettres,
mais que tu ne fais pas un mot.
Je suis très content d'avoir
Ah, aujourd'hui je l'ai appris.
Je l'ai correcté par quelqu'un,
et j'ai regardé, je me suis dit,
ils sont acústiques.
De toute façon, je vais retourner
aux CDs et les 2 CDs,
donc il y a continuous delivery
et continuous déploiement.
Ils sont assez proches de la même chose,
il y a une petite nuance avec eux.
Donc, la déploiement continue est
de dire, hey, je dois
y avoir mon processus de déploiement
automatique derrière un bouton.
Et souvent, quand les gens disent
continuous déploiement, si ils ont
utilisé la définition correcte,
ce qui veut dire qu'ils ont
des déploiements automatiques
généralement envers le prode,
et puis quelqu'un a de cliquer
le bouton d'apprécier,
pour dire, oui, je vais apprécier
pour aller à la production.
Ils ont encore un step manuel
où ils disent, oui, aller à la production.
Ils peuvent aussi avoir
des boutons en plus d'environnement,
comme Staging, QA, Test,
ou quoi que vous en parlez,
où peut-être qu'ils ont auto-deployé
à un environnement de dev,
et puis vous le permettez manuellement.
La idée derrière la déploiement
est que vous avez des déploiements automatiques
où ils sont à la plupart
un bouton.
La nuance entre la déploiement
et le déploiement continue est
qu'il n'y a pas de step manuel
qui se fait automatiquement
en train de produire.
Ça fait un peu de heresy
pour beaucoup de gens,
et je suis sûr que des gens qui sont
en train de se croire,
ça fait un peu de danger.
Et c'est possible
si vous n'avez pas les propres
safety nets,
si vous n'avez pas
0 downtime de déploiements,
et si vous n'avez pas
des tests automatiques
ou des tests de santé
qui vous donnent
des safety nets,
ça peut être
dangereux de faire un déploiement
Mais je me touche
des équipes qui disent
pourquoi ne pas faire un déploiement
continue ? Quand votre boulot est gris,
pourquoi n'est-il pas confident
de faire une production ?
Et parfois, on ne peut pas
avoir des déploiements de downtime.
On va faire un déploiement.
Et dans le déploiement,
je me touche
d'aller en train de cliquer
et de faire le déploiement.
C'est probablement un test automatique
pour que vous puissiez rééterner
ces choses sur le fait
d'avoir des contacts
et de faire un déploiement
et de faire un déploiement
Je me touche de faire un déploiement
et on a un client
qui a été déploiement
au mois de mois et qui a été déploiement
à la fin de la fin de la fin
et maintenant ils sont déploiements
de 20 fois plus de temps au jour
et ils sont en train de faire moins de 1% de ces déploiements.
Mais on a mis en place
des tests automatiques, des tests de santé,
des déploiements de downtime,
des choses comme ça.
Je pense qu'il y a un autre différence.
Dans un client qui est un peu plus froid
de avoir des conversations
de plus en plus
et on a commencé à avoir des services
sur le CD.
Un déploiement continu.
Et on a réalisé que c'était un autre pro
de faire ça.
Quand il n'y a pas de déploiement
quand vous réveillez les PRs
vous allez vite et ça va bien.
Il va aller par QA,
c'est quoi.
Mais quand vous savez que quand le PR
s'est rempli,
ce billet va aller à production.
En tant que revueur,
vous vous donnez un second coup.
Vous vous regardez beaucoup plus difficile.
Est-ce que cette production
peut faire le revueur
et le author aussi
penser vraiment avant que le PR s'est rempli ?
Je pense que c'est vraiment très valable.
Absolument.
Et vous aussi vous avez fait des tests automatiques
que vous avez confiance en.
Je vous aime donc
pour ce qui est en train de faire ça.
Et un des gars que je travaille
avec, il a dit
Operation First Delivery
et l'idée est
si on a un app greenfield,
on va commencer par le production
et le déploier.
On va pas mettre les environnements plus tard
mais on va commencer par le déploier
et le production.
Je suis sûr que vous êtes dans la situation
si vous avez un app greenfield
vous pourrez commencer avec un dev
et puis vous avez un autre environnement.
Et puis vous devez attendre
pour que vous puissiez avoir un moment
où vous devez
déployer une production.
On a tous les secrets
dans la store secret.
On a tout ce genre de choses
que vous délaie à l'end
ou si vous commencez avec la production
et vous travaillez de la manière de vous.
Un peu de choses se sont apportées.
Encorement, quand les gens commencent
à faire un déploiement continu,
je trouve qu'ils ne veulent pas aller
retourner à la production continue
donc ça vous force
à faire un déploiement continu.
C'est un des changements
qui me rend toujours plus bon.
Et puis ça vous fait penser
à la production
et à la production de ces choses.
Je dois mettre les secrets dans la store secret
ou un port de firewall pour les éviter.
C'est ça que vous pensez
à la production de la Gatgo.
Quand vous faites un app greenfield
vous devez commencer avec un déploiement continu
et voir où ça vous fait.
Et ma expérience me dit
que vous ne devez pas aller retourner
à la production continue.
Un autre chose que j'ai trouvé
c'est que vous ne faites pas un CD.
Je parlais avec un client
qui ne fait pas un CD
parce que c'est plus un architecteur de micro-service
donc on a beaucoup de pipelines
qui déploient différentes choses.
Quand vous ne faites pas un CD
et que vous avez des approvations
dans les différents environnements,
c'est très difficile de déployer
la dépendance de ce que vous êtes en train de travailler
ou la dépendance transitive.
C'est très difficile.
En même manière que nous avons parlé
avec les branches et la GitFlow
c'est le même genre
si vous vous inquiétez de beaucoup de micro-service
et vous ne savez pas où les deux sont déployés
et où c'est que ce qu'il a été que tué
et ce n'est pas que tué.
Même si vous dites que ça ressemble à la scie
tout est en train de procéder.
Vous savez où tout est en train de procéder.
Tout est en train de procéder.
C'est vraiment important.
Absolument.
Je pense que beaucoup de gens
qui entendent votre histoire
sont en train de se dire
que c'est déployé et que ça a fait le pain
et que j'ai vu beaucoup d'énergie
entre le produit et la scie
et le dév.
C'est tout prêt
et maintenant on va mettre le bouton.
Tout ça évapore
et se fait quand vous faites
un déployement continuous.
Je suis très déçue pour les gens
de se dire pourquoi vous faites
les choses que vous faites. Est-ce que vous pouvez
être déployé?
Je trouve que beaucoup de problèmes
sont en train de l'évaporer
quand vous faites un déployement continuous.
Assuming que vous avez des tests de sécurité
dans le place, que nous avons parlé de ça.
Je pense que c'est ça.
Et comme vous le dites,
c'est comme de vous questionner
vous-même, ou de la équipe
vous questionner eux-mêmes
jusqu'à ce qu'il n'y ait pas de raisons.
Je pense que c'est une bonne
pratique iterative que vous pouvez avoir.
Je pense que
ce épisode est
de github actions. C'est vraiment valable
de le faire comme un pré-requisit.
Mais en parlant de github actions,
c'est plus jambé, non?
Jambé tout les choses.
Non!
Nous sommes tous les developers jambés
à la fin de l'année.
Comme je l'ai dit avant,
j'ai fait beaucoup de choses en Azure DevOps.
Azure DevOps pipelines.
Je vais probablement en faire des parallèles
en partant de cette conversation.
Vous avez dit que vous utilisez beaucoup de choses.
Je suis sûr que vous le faites.
Et quand ça vient de la fin,
c'est comme ça. C'est juste de différentes manières.
Je pense que l'un des points de la paix,
ce qui me dérange pas en Azure DevOps pipelines,
et j'espère que github actions
est la solution, est quand vous en développez
une pipeline en Yamlour,
la tournée pour avoir
un point de vue,
pour pouvoir le faire,
et puis attendre pour le faire.
C'est un pain dans le...
Je vais dire quelque chose que je dois faire,
mais c'est vraiment un pain pour,
comment dire, le développement loop cycle.
Yeah, feedback loop.
En github actions,
peut-il vous développer ces lois?
Néanmoins, non.
C'est un de mes plus populaires tweets,
et je vais parler de tweets, pas de postes,
parce que je n'ai pas voulu le dire.
Mais c'est un de mes plus populaires tweets,
et c'est un de mes plus populaires tweets,
et c'est un de mes plus populaires tweets,
et c'est un de mes plus populaires tweets,
et c'est un de mes plus populaires tweets,
et c'est un de mes plus populaires tweets,
et c'est un de mes plus populaires tweets,
et c'est un de mes plus populaires tweets,
et c'est un de mes plus populaires tweets,
et c'est un de mes plus populaires tweets,
et c'est un de mes plus populaires tweets,
et c'est un de mes plus et plus populaires tweets,
et c'est ce Jean que j'ai ras¡
converti sur en termes de
portrait des portraits
des shots de l' transportation
generalized orale,
C'est de la ligne dependence,
mais il se gamma nombre NPB.
c'est la troisième étape ou la troisième étape.
Et je me suis dit que je pouvais juste commenter un tout petit peu de choses
pour minimiser ce feedback de la route, pour avoir cette une
« la désidentité » qui est faite.
Je vais faire quelque chose comme ça, mais c'est juste...
C'est bien de savoir qu'il n'y a pas de choses locales.
La bonne news c'est que si tu screw-up la partie de la jambe,
et la jambe n'est pas bien valide,
ça va te dire immédiatement quand tu tries
et tu te rends l'action de la gâte, donc,
on dirait que c'est dans ta troisième étape,
comme ta dernière environnement,
tu screw-ups la formation de la jambe.
Ce sera de la première fois que je suis sûr que la jambe Azure DevOps
va bien si la jambe n'est pas valide,
mais si tu...
Si c'est quelque chose de custom dans l'environnement,
ou quelque chose où tu n'as pas oublié de passer un paramètre,
ou quelque chose comme ça,
ouais, la route de la route de la route de l'AISC des pipelines,
en général, ce n'est pas grand,
où tu peux s'attendre 20 minutes pour qu'on aille
le environnement que tu as fait le changement,
et puis, ouais, trouver que tu screw-ups quelque chose.
Donc, tu as mentionné les templates avant,
ou des bits utilisables de la logique de la pipeline.
Je crois que tu parles ça quelque chose d'autre.
Ouais, donc, des workflows utilisables.
Donc, je pense que juste pour le retour,
un petit peu de workflows
sont, en fait, l'ensemble de la file de jambe,
tu peux penser à ça, essentiellement,
où tu as des triggers,
qui sont, hey, je vais faire cette action GitHub,
cette workflow, sur une création d'un pull request,
ou une main merge,
ou tu peux même faire,
hey, quand un issue s'ouvre,
tu vas faire le code,
donc peut-être que tu veux mettre un comment sur le sujet,
et tu as dit, hey, tu as suivi ces trucs.
Donc, les actions GitHub ont beaucoup de triggers,
comme ceux,
ainsi que ce qu'on appelle le dispatch de la fonction,
qui est, en fait,
que tu peux réutiliser le fonction
entre plusieurs workflows différents.
Donc, prends des déploiements, pour exemple,
c'est un très commun,
pour extracter le fonction,
pour réutiliser le fonction.
Quand tu es déployé,
tu as, par exemple,
Dev, UAT,
pour l'exception d'exception et de production,
tu as juste trois environnements.
Le déploiement pour toutes les trois de ces choses
est probablement identique,
qu'il y a des noms de ce que tu déploies,
des choses,
peut-être des secrets,
ou quelque chose,
mais le fait que l'acte est le même,
donc si tu es déployé des changements database
et que tu es déployé de code,
ou que tu es construit un image doc,
et que tu as mis en place un registre.
Toutes ces actions sont les mêmes,
on utilise le nom d'actions,
mais tous ces des décès sont les mêmes.
C'est juste que tu es en train de mettre les deux différents spots,
ou peut-être les noms sont différents de ce genre de choses.
C'est vraiment common de l'extracter
le déploiement de la démarche
pour un workflow résilier.
Et ce qui est bien,
c'est que tu peux réutiliser
les deux différents repositories.
Tout ce que tu dois faire,
c'est référer un github,
un repository,
et puis le file que tu utilises.
Donc, si tu as une ligne de site,
tu as accès à ce repository,
tu peux réutiliser les deux des workflows
à travers tous les repositories.
Donc tu peux développer les standards
à travers ton org
de dire, quand on construit
une app.NET ou une app JavaScript
ou une app Java,
on le fait de cette façon,
ou quand on déploie, on le fait de cette façon.
Et puis tout le monde peut
réutiliser ces...
Juste par référence
à cette action github
dans un autre repository.
Donc, si tu veux un workflow
qui est en source open
et public,
et que tout le monde
veut utiliser ça,
tu n'auras pas besoin de le publier,
c'est le cas de l'utilisation de ton repository,
c'est public,
alors que les gens peuvent
le référer à travers le URL,
affectuellement,
ou dans les parts de l'URL.
Oui, et je peux vous envoyer des liens
pour mettre dans les notes de la show
de comment faire des choses.
Mais oui, tu peux juste
référer la repos et le file,
et puis, à la fin,
tu parles de quoi tu parles.
Donc tu fais le plein de path
au file de l'AMO,
et puis tu fais
à main ou à v1.
Certaines personnes ont une version
et des choses par les branches,
et des choses comme ça.
Donc, c'est de la façon
que tu peux réutiliser les choses.
Maintenant, je ne recommande pas nécessairement
juste de utiliser
des personnes randomes
à la workflow github.
Tu dois mettre qui c'est
et tout ça.
Et puis, tu peux faire des choses
et peut-être,
tu peux prendre cette code
et tu prends l'adaptation de ça.
Maintenant, aussi,
parce que si tu dis,
hey, je vais juste prendre
leur plus tard,
ou les cas ou les cas,
et tu ne sais pas qui ce personne est,
ils peuvent changer les choses,
et maintenant, tu es en train de faire leur workflow.
Donc, c'est le même concept
comme quand tu prends
un package de new get,
ou un package de MPM,
ou des choses comme ça.
Tu vas avoir de la vête,
qui la personne est,
comment est-ce qu'il y a d'activité,
ce qui va être maintenu,
et tout ça.
Mais aussi, tu peux prendre l'adaptation de ça.
Tu peux prendre la workflow
que l'on a,
la communauté workflow,
en referant
une autre workflow,
donc c'est une workflow transitive.
Oui, donc, ce que je disais,
c'est le mode de workflow reusable.
Il y a aussi un marketplace github,
où tu peux dire,
hey, donne-moi
ce package de cette version.
Il y a deux différents
ways que tu peux utiliser les workflows,
le marketplace et le file.
Je trouve que beaucoup de clients
font le file.
C'est juste beaucoup plus facile
pour publier les choses
au marketplace.
Et pour faire des changements,
tu peux les faire tout à l'heure,
mais tu dois être mindu
de, hey, c'est-à-dire
une change de break
que tu fais pour cette workflow
ou d'autres choses.
Donc, oui,
il y a aussi un marketplace
de déployer des choses.
C'est ce que beaucoup de gens
font pour les workflows publics,
c'est qu'ils déploient
une action github
au marketplace.
Mais ce que je trouve,
c'est que quand tu fais
des choses customes,
comme sur Azure, AWS,
GCP, On-Prem,
on veut notre custom workflow,
et c'est ce que je trouve
que les gens gravent
plus vers le système de file.
Je dirais que les choses publics
sont plus au marketplace,
mais les choses privées
et les choses enterprise
sont plus sur les files.
Oui, ça me rend le sens.
Je pense que ma question
est de l'aéroport de la pointe de sécurité.
C'est pas juste
déployer ce que tu es en
en train de déployer,
c'est déployer ce qu'ils sont en train de déployer.
En même temps,
comme tu l'as mentionné,
avec Nuget,
tu dois faire le même truc,
parce que tu as
une whole série de dépendances.
Et tu te déploies
les choses en effectuant les releases.
C'est assez scachant
si tu penses trop bien.
Je sais, c'est un problème
que l'appareil s'enfonce,
parfois,
avec toutes les choses
que tu es en train de déployer
et toutes les choses
que tu es en train de construire
sur le graph,
c'est un problème
que l'appareil s'enfonce,
et parfois,
ça ne se fait pas.
Les gens
en publicant des choses
sur NPM,
par exemple,
ça ne se débrouille pas
sur Internet,
pas sur le pad à gauche.
Le plus tard,
tu as entendu des choses sur lesquelles tu as parlé.
Ah, je ne pense pas.
Je pense que quelqu'un a publié
un package qui s'appelle
«Everything»
et ça dépend de tout.
Je ne m'en souviens pas
de tout,
mais je pense que
ça dépend de tout
et tu ne peux pas
écriver un package
où les choses sont dépendant de toi.
Personne ne peut écriver
les packages,
mais quelqu'un qui a
ce package,
NPM installé tout,
donc il a crashé les compétences
et a re-souté
un tout petit peu.
Je ne m'en souviens pas
de tout le detail,
mais je pense que c'est
une des notes de la fin du détail,
parce que c'est arrivé avant.
Je vais trouver un petit peu
dans les notes de la fin de ce détail
pour cet épisode.
C'est comme...
Je ne veux pas dire
que c'était hélériquant,
mais ça a évidemment
causé beaucoup de problèmes,
mais c'était assez drôle.
Je pense que
avant que tu as mentionné,
tu as mentionné
que tu pouvais écriver
ces pipelines
dans différentes manières,
comme les PR, les choses,
mais aussi si quelqu'un
crée un issue de github
et ce genre de choses.
C'est-à-dire,
c'est-à-dire des events github,
où c'est un genre d'envoi
éventuel
où tu peux écriver
des choses différentes dans le github.
Oui, c'est-à-dire,
c'est-à-dire des triggers github.
Et donc,
si tu as Google
les triggers github,
je ne sais pas
tous les trucs
sur le dessus de ma tête,
mais c'est presque tout
que tu peux penser
en utilisant une discussion,
en écrivant un issue,
en écrivant un call de recours,
en écrivant un branch.
Je veux dire,
en écrivant un call de recours
et en écrivant un branch,
ce sont les deux les plus commones
des triggers github.
Mais,
c'est assez bien,
que tu peux penser
dans les actions github,
ou je n'ai pas fait
rien où je voulais
déterminer quelque chose
qui n'a pas été
déjà pensé.
Mais,
une unique des triggers
que les gens ne pensent pas,
c'est qu'ils ont
des supports cron-jobs.
Donc,
tu peux dire,
hey,
tous les jours,
réunir cette pièce de code.
Je vais dire,
ils ne mettent pas
beaucoup de garanties
sur les supports cron-jobs,
donc,
ne base pas
ton whole workflow
sur les actions github
comme une écrivée.
Mais,
si tu as quelque chose
de personnel,
où tu veux que je te sentis
une email,
ou quelque chose,
comme ça,
j'ai des trucs comme ça,
et ça marche bien,
c'est consistant,
mais ils ne garantissent pas,
oh,
c'est toujours un peu
ce temps,
c'est toujours dans 5
à 15 minutes.
Parfois,
c'est juste le monnaie,
et autre fois,
c'est 15 minutes plus tard.
Donc,
ils ne disent pas,
hey,
faire ça sur un schedule
cron-jobs,
comme des plateformes
mais c'est bien
si tu as des petites
choses que tu veux faire,
ou que,
hey,
réunir un scan de sécurité
tous les jours,
et je peux aller dans la
chose de la scan de sécurité
et tout comme ça,
ce que tu peux faire,
mais je vais juste
laisser ça,
c'est un truc commun,
de faire un scan de sécurité
tous les jours,
mais je vois des clients
qui disent,
oh,
on va faire un billet automatique
tous les jours,
et je suis comme,
non,
juste réunir ça,
comme,
n'importe quel changement
qui se passe,
ne doit pas,
vous savez,
délai-t-il
jusqu'à la fin de la journée,
ou quelque chose comme ça,
parce que si quelqu'un
a fait quelque chose,
ils ne vont pas trouver
les heures,
ou même les jours,
plus tard,
qu'ils vont revenir à ça.
Oui,
c'est certain,
il me semble que
ce GitHub,
c'est un truc de plus
évident,
donc,
plutôt que un système de batching,
mais c'est assez intéressant
de voir
que vous avez un truc
qui tient une email,
c'est un système d'automation,
il n'y a pas de
building software,
vous avez vu
des types
de pipelines
qui ne sont pas
juste de building
et de ploing.
C'est une question
je n'ai pas vraiment
de commenter
quelque chose
super unique,
minus
l'émail
ou un souvenir
ou
ce code.
Mais,
les actions de GitHub,
sont utilisées
pour les pipelines de CI-CD,
elles peuvent être utilisées
pour beaucoup de choses
différentes,
c'est vraiment un tool d'automation
plus fort que c'est
un tool de CI-CD,
mais
ça fait bien,
c'est
aussi un truc
d'automation,
comme les gens
ont ouvert un issue de GitHub,
ils vont vouloir commenter
qu'ils ont voulu
essayer ces choses
ou qu'il y ait un FAQ,
ou peut-être
qu'ils ont ouvert un issue
et qu'on a un trigger,
il envoie
à un service AI
qui le read
dans l'issue
et qui
répond à la question
qu'il a
et
quelque chose comme ça.
Hey,
vous êtes en train de
faire un message,
avez-vous vu ça
dans les FAQs
ou quelque chose comme ça?
Vous pouvez faire
beaucoup de choses
parmi ces triggers.
Il s'est dit que
il y avait des choses
de sécurité,
des choses de sécurité.
Peut-être que nous l'avons
ça a-t-il été construit
dans la sécurité
ou vous avez toujours
utilisé un 3e parti,
une plug-in
ou une extension?
Oui,
GitHub
a
des codes QL
pour la scan de sécurité,
mais il y a
beaucoup d'autres tools
de scan de sécurité.
Il y a
des
techniques
qui sont
d'avoir
des codes
de sécurité,
par exemple,
pour
faire des
codes de sécurité.
Vous soyez
seulement supportant
les TLS 1.2
et plus
ou quelque chose comme ça.
Donc, les gens ne sont
pas utilisés
dans des protocoles
Il y a des
codes de sécurité
pour la scan de sécurité.
Il y a
des codes de sécurité
qui peuvent faire
des trucs.
Il y a
beaucoup de tools
qui peuvent faire
cette analyse
de code statique
qui
me
m'aura
déclaré
la code source
et je peux
trouver
une vulnerability
donc
ce n'est pas vraiment part de
des actions de sécurité
par exemple,
mais des actions de sécurité
peuvent être integrées
avec les codes de sécurité
et les autres tools
que je parle de.
Par exemple,
pourquoi quelqu'un peut
faire
des...
Je dirais que vous devez
faire des scan de sécurité
comme part de votre pipeline
pour que vous introduisez
une vulnerability,
vous vous mettez
sur le PR
avant qu'il soit
méchanté.
Mais parfois,
les gens peuvent faire
des trucs comme
Docker,
et Docker images,
qui sont bien
parce qu'ils sont
très méchants
ils vont se dépasser
consistant.
Le problème est que
ils ne sont pas auto-updates.
Donc,
si .NET,
ou Node,
ou Java
relèvent
une patch de sécurité,
ils ne sont pas
automatiquement
un update libre
comme vous pourriez
un service Azure
ou un stock de l'alcool
ou des fonctions
ou quelque chose
comme ça,
où vous dites
que je suis juste
targeté de .NET 8
ou cette version de node
Et vous vous mettez
un update libre
parce qu'ils vous mangent
des choses pour vous.
Avec Docker,
vous avez un peu d'objet
de la vie.
Donc,
parfois,
vous devez faire un scan
qui dit que
c'est la dernière image
que j'ai évoquée.
Est-ce que c'est
une nouvelle version
de runtime
que je dois upgrade
et peut-être
que ça va
faire un update
de la dernière version
de runtime
et ça va
le faire.
Donc,
oui,
ça dépend.
On a tous ces apps
que vous créez
et ils se sentent
dans la courte
et ils se sentent
dans la courte.
Donc,
ça serait
un scénario
où,
évidemment,
si vous êtes touchant
tout le temps,
la scan de sécurité
est toujours en train de rire,
mais si vous ne vous touchez
pas un peu,
la scan de sécurité
ne se rirent très souvent.
Donc,
ça peut être un raison
pour introduire
un cron-job
qui se rirent
dans la scan de sécurité
des jours
ou des choses
qui font sens
pour votre situation.
Oui,
ça fait sens.
Je pense que
avec le scan de la courte,
vous avez un peu de temps
C'est pas juste
faire et déployer,
c'est un peu
comme vous avez
eu vos tests
de lint.
Vous venez
vos tests de unité
et puis,
quand c'est déployé
ou que vous avez
eu des tests de integration
et des tests de sécurité
et tout
tout les choses.
Mais c'est
très...
Et ça
me semble
qu'il y a un peu de
standard qui est
dans les...
Comme vous avez
un pipeline,
vous avez à penser
sur ces choses.
Peut-être que vous ne devriez pas
penser sur ces choses,
c'est juste de
construire mon app
et tout ces choses
que vous avez.
De la même manière,
je n'ai pas demandé
de l'abandonner,
mais ça se passe
dans mes propositions.
Je prends les emails.
Ça me semble que vous allez
avoir un truc similaire.
Mais je pense que
vous avez dû avoir
déployé les tests
dans les premiers plays
pour beaucoup de ces choses.
Vous pouvez voir
pourquoi
j'ai...
Je vais utiliser le terme
DevOps Engineers,
mais je ne peux pas
définir
ce qu'il veut.
DevOps
est un des des
entreprises qui sont
en train de
pour les équipes de
et de la
engineering
où c'est
que je vais créer...
C'est le moyen
de faire
toutes ces choses
que vous avez
mentionnées.
Il y a des
traitements
qui sont
centralisés.
Vous avez
plus de consistance,
mais peut-être
que les gens ne
comprennent pas
comment les choses
sont en train de faire
une question
de la plateforme
d'engineering.
Je pense que j'ai
une question
qui s'est élevé
dans le
l'épisode.
Je pense que
le titre
de la plateforme
d'engineering
est un
intéressant topic.
On parle
des deux CDs.
On parle
des approvals
et d'approuver
entre les stages.
Avec les
approvals,
je sais que les
approvals
sont dans
Azure DevOps
parce que c'est
un des deux CDs.
Je ne vois pas
ce que les gens
sont dans les productions
des GitObactions.
C'est
facile d'utiliser?
Oui,
le concept
des environnements
qui sont
des environnements
que vous avez
comme de la production
de la production de la
Quand vous
vous setez
ces environnements,
vous pouvez
dire
que je suis
déployé
à de la
production de la
production de la
production de la
production de la
production de la
production
du
不起.
APR SUE
MY
AS
base
bruh
qui
pensent
et je veux un approver manuel.
Je tries de me mettre des gens à l'aise pour que je pense que c'est possible.
Si on est dans une situation de code legacy, je pense que nous n'avons pas appelé ça.
Mais si on a une app legacy, ne pas immédiatement aller au deployment de continuous
sans mettre des nets de sécurité en place, parce que c'est juste dangereux.
Si tu es dans cette situation où tu fais plus de delivery continuous,
tu peux juste interagir avec des environnements de github.
Ça ressemble à la devops où tu as des environnements et les approvals sont liés à ça.
Je trouve que nous sommes presque en train de faire des environnements de github
à travers la toute la compagnie, où c'est de la dev, de la production, de la production.
Mais en fait, nous avons des équipes différentes.
Donc, tu as presque fini de créer un nom de team,
ou un nom de product, ou quoi que ce soit, hyphen, de la devop, et puis de les combiner.
Et ça me semble que tu as besoin d'une autre facette pour ces approvals.
Mais oui, ça ressemble à la devops qui est très, très similaire.
Comment je pense aux choses que nous n'avons pas regardé?
Vous avez mentionné des services secrets, mais nous n'avons pas vraiment regardé
ce que ça ressemble à des actions github.
Oui, les actions github ont le concept des secrets,
où, si vous avez le tabou de la setting et votre repository,
et vous pouvez scroller sur le gauche, il y a un tabou de secrets.
Et il y a quelques différents parts de ça.
La première chose est que quand vous créez un secret, c'est un de l'autre de la même manière.
Il n'y a pas de recueillement de secrets.
Donc quand vous créez un secret, vous vous donnez la clé,
et vous créez la clé, et vous créez la clé, et vous créez la clé,
et vous créez la clé, et vous créez la clé, et vous créez la clé,
et vous créez la clé, et vous créez la clé, et vous créez la clé,
et vous créez la clé, et vous créez la clé, et vous créez la clé,
et vous créez la clé, et vous créez la clé, et vous créez la clé,
et vous créez la clé, et vous créez la clé, et vous créez la clé,
et vous créez la clé, et vous créez la clé, et vous créez la clé,
et vous créez la clé, et vous créez la clé,
et vous créez la clé, et vous créez la clé,
et vous créez la clé, et vous créez la clé,
et vous créez la clé, et vous créez la clé,
et vous créez la clé, et vous créez la clé,
et vous créez la clé, et vous créez la clé,
et vous créez la clé, et vous créez la clé,
et vous créez la clé, et vous créez la clé,
et vous créez la clé,
et vous créez la clé,
et vous créez ק وب
public repo ou vous payez pour GitHub.
Je veux juste que ça soit pour les gens,
si ils commencent à regarder.
Ça semble vraiment utile.
Et quand tu parles de
si tu parles de quelque chose à l'outil,
comment ça se démarre,
ça semble que, quand il peut le faire,
tu dois avoir de code à l'explicité,
comme tu dis, à l'intérieur de un file ou quelque chose.
Quand tu parles de un file,
ça me rend compte que le concept de l'artif,
c'est que ça a un stage,
et je suis en train de rejoindre les parallèles avec Adjadevox,
parce que c'est ce qu'ils utilisent,
mais tu peux avoir un stage d'artif à ce point,
et puis d'autres stages,
tu peux l'utiliser ou tu peux le downloader.
Exactement, c'est exactement le concept de ce qu'il y a.
Donc, GitHub a des artifacts
où, dans votre step de la CIE,
tu veux uploader ces artifacts à l'artif.
Donc, il y a une action de build-in
qui s'appelle upload artifacts,
que tu peux juste uploader ces artifacts.
Ce sont les files d'un DLL, de JavaScript,
ou quelque chose d'autre,
ou quelque chose d'autre,
c'est un image docker, ou quelque chose d'autre.
Et puis, dans les stages de plus,
quand tu es déployé à tous les environnements différents,
tu peux downloader ces artifacts,
ou je dois dire artifacts,
parce qu'il y a beaucoup de files dans lesquels tu peux downloader.
Et puis, tu peux faire tout ce que tu veux,
tu sais, copier le code à Azure, AWS,
ou tout ce qui se passe pour le processus de déploiement.
C'est cool.
Comme je l'ai dit à la première,
c'est vraiment que je veux vraiment utiliser ceci beaucoup plus.
Ça peut s'adapter à quelque chose d'autre,
je vais vous demander des choses.
C'est un peu de social,
mais c'est un peu de social,
c'est un peu de social,
c'est un peu de social,
c'est un peu de social,
c'est un peu de social,
c'est un peu de social,
Qu'est-ce que j'aime de GitHub?
C'est un mindset d'intersource,
qui est ouvert,
où tu peux voir le code source,
que tout le monde peut voir,
c'est public,
tout ça.
Un mindset d'intersource,
par exemple,
donc ce n'est pas public,
mais c'est disponible à tout le monde.
Et ce qui est bien,
un mindset d'intersource,
c'est que tu integrates avec un autre équipe,
ou tu as un livre de component,
ou quelque chose d'autre,
un package,
si tu as un mindset d'intersource,
où tu peux voir ce que les autres équipes travaillent,
tu peux dire,
oh, c'est ce que ça marche,
c'est pourquoi je suis en train de faire ça.
Tu peux envoyer un request ou un issue,
ou tu sais,
un lien avec quelqu'un,
et envoyer ça à eux,
sur ton message de choc,
disant, hey,
c'est la ligne de code qui est offensée.
Et ce que j'ai aussi trouvé avec un mindset d'intersource,
c'est que,
parfois, il y a une tension entre les équipes,
où c'est comme,
oh, qu'est-ce que ce équipe peut faire?
Et maintenant,
avec un mindset d'intersource,
tu peux juste dire,
hey, je vais voir ce qu'ils font,
parce que tu peux voir leurs repos.
Donc, je dirais que GitHub
kind of pushes people
towards that intersource mindset,
parce que c'est commencé that way, right?
It started with open source,
and then kind of became,
you know,
they kind of lock things down kind of afterwards.
And so,
there's still a lot of enterprise controls
and things like that,
when it comes to that stuff,
but I would say like other tools,
like even Azure DevOps,
like while you can do intersource,
it definitely doesn't feel like that's its
first class citizen way of working,
like it's kind of defaults to like everybody's kind of private
and working on their own stuff.
Now, again,
you can totally set it up that way,
but I feel like GitHub just kind of promotes
things that way,
because that's kind of its ethos
and how it got its start.
But it definitely does freak some people out,
but I find that people,
I'm having less and less of those conversations.
Yeah, I think as a developer,
that would kind of,
maybe companies hiring,
I'm interviewing for a position,
and I can see that they're using all like GitHub
and GitHub Actions and all of this kind of thing.
That would definitely be a selling point for me
rather than I can understand,
like you can kind of understand classic companies
that lies in all fashion companies
being quite put off,
like they're very enterprisey.
But yeah,
I think from a hiring point of view,
it's going to like just like with other things,
like what language using,
what technologies start using,
it's all part of it.
And I think it's kind of,
I don't know why,
but it's air quotes,
it just seems cooler.
Yeah,
no, I had a very similar conversation with
a manager who was trying to decide,
you know,
what platform to go with.
And that way you just said came up of like,
Hey,
if you're doing GitHub,
that is like a recruiting tool.
Like it's a small one,
you know,
obviously,
if you're not going to pay them well,
that nobody's going to work for you,
but you know,
it can be like when you hear,
oh,
I'm doing GitHub,
you feel like you're kind of on the latest and greatest,
I would say,
and like kind of the platform of choice.
Totally agree.
Nothing against the other,
nothing against the other platforms.
Obviously,
they're all obviously all great.
It's just,
you know,
GitHub,
I obviously has a lot of mind share.
Yeah,
definitely.
So we've spoken quite a lot about well,
get a lot of actions,
obviously,
but also get as well.
And you've done two don't train courses on both of those topics
full enough.
Yep.
So yeah,
as an I've had quite a few don't train authors on the show now,
because I've done a couple as well.
It's always good at the end to actually just chat about experiences,
creating these courses,
because it's kind of,
it's finding it quite interesting because I've not done courses except for the ones for don't train.
And I don't know,
it's a bit jumping at the deep end because you're doing the videos with webcams on and all this kind of stuff.
But I'm so glad to do it.
It's been an amazing experience and journey.
I'm just wondering what your experiences were doing.
Yeah.
So those are my first two courses I've actually ever created.
And I've done a lot of conference speaking,
done a lot of international speaking at conferences.
And,
you know,
I've done workshops.
Yeah,
both,
you know,
at conferences as well as,
you know,
for work and stuff like that,
putting them on for companies and things like that.
But I hadn't done a course.
So I was just like,
ah,
you know,
this feels like something I should try out.
And so I talked to Nick Chaps,
so see on stone train and chat it a little bit.
And I was like,
yeah,
I want to give this a go.
And he gave me a lot of good tips of how,
you know,
how to up my audio video game because it was not up to par.
But I would say like a big difference with video is,
you know,
if I'm speaking at a conference and I like misspeak and I catch myself,
I just kind of,
you know,
fix it and move on and just say like,
oh,
I meant this or whatever the case is.
Whereas video,
I feel more of an obligation to like,
you know,
properly fix it and say the right thing.
And so I would say that was a big change of just that mindset shift.
I know some people think like,
oh,
you should show your mess ups because,
you know,
it makes you more,
you know,
human or whatever and more like real world.
I shouldn't say human or real world of cause we all mess up.
But I felt like there was,
depending on what it was,
you know,
sometimes I would keep it in,
but a lot of times I would go back and fix it just to make sure that,
you know,
I'm saying things how I want to say them.
And,
you know,
I'm saying it as clear as I can and things like that.
So there's a lot more effort going into recording these things and I did my own editing,
all that kind of stuff.
So I'd say for every minute of content early on,
it probably took me like 20 minutes to like plan it,
edit it,
you know,
rerecord it potentially,
those kinds of things.
As I got faster at it,
it was probably more like tannish or so and got used to things.
And then I knew like,
hey,
you know,
if I mess up,
maybe just repeat the last sentence and then keep going.
So then I could edit things.
So I'm not like,
you know,
it's a 20 minute video.
I'm not going 20 straight minutes.
And if I mess up at minute 19,
I'm like,
oh,
I got to throw the whole thing away.
I mean,
I could have done that,
but I would not have any courses released if that were the case.
So yeah,
just,
it's just a different format,
but I like helping people at the end of the day cause people have helped me along the way.
Like I wasn't born knowing how to program or knowing GitHub actions or any of that kind of stuff.
Just like everybody listening wasn't I learned from others,
right?
I read books,
watch YouTube videos,
conference talks,
red things,
whatever the case is.
So I like having as many mediums as possible to help give back and do the same for others.
Yeah,
sounds good.
Sounds good.
When you're saying about repeating the sentence,
rather than the whole thing,
it's funny how the more you do that,
the more it becomes subconscious and you find when I'm recording a video.
Now it's kind of,
there's so much that I'm just repeating and repeating until I'm happy with it.
Then go to the next paragraph or sentence and repeat.
I'm exaggerating.
I'm not like every paragraph repeating it,
but as in I just automatically without thinking about it,
go to the start of what I was saying and carry on.
If I make a mess up or not quite happy with it and I do that subconsciously now.
And then when I'm going through editing,
it's just like chop,
chop,
delete,
delete.
Less worried about jump cuts now.
I think with a podcast as well because there's no jump cuts.
There's no video.
So I can really chop out ums and ars and stuff and each can't tell
or if we repeat something or tell her.
But yeah, with video,
it's jump cuts so kind of like much more aware of keeping still
just to minimize those jump cuts or if I'm sharing my screen,
making sure I don't move my mouse when I know I'm going to be,
when I'm not talking,
I don't move my mouse.
So I know if I cut that,
the mouse isn't going to suddenly jump away or something.
So just little things like that,
but it's quite funny.
Yeah,
there's definitely some subtle things like that
that I had to learn the hard way
because when I went to the editing room and I'm like,
Oh,
I accidentally,
you know,
I paused here and then did some stuff and I,
you know,
maybe I just put a tab in my browser or something like
I might have been showing a browser or something and I put a tab
in my browser.
Now that magically appears,
you know,
9 out of 10 people probably wouldn't notice,
but I noticed.
So,
you know,
it bothered me and I'm usually in those cases I,
you know,
fixed it or something like that or a minimum,
you know,
going forward,
I'm way more conscious of that kind of stuff.
I feel like I should write a blog or record a video of like,
here are 20 things to think about when you're,
you know,
recording video,
but
now it's a great experience and I definitely appreciate it and
hopefully people,
people find it useful.
Well,
I will definitely include a link to those in the show notes.
Is there anything else that we've not covered with GitHub Actions?
I saw we've covered a lot of different things.
Um,
one thing to call out GitHub Actions.
We didn't really talk about this is the concept of runners.
So like,
you need something to actually run your code,
right?
So runners are kind of,
you can think of those as VMs that kind of spin up when this trigger
kicks off.
And
they actually need to do this.
Si,
I like compiling your app and deploying it and all that kind of stuff.
So
just FY that
GitHub provides you runners out of the box.
So you can say,
hey,
I want a Linux runner or Windows runner,
but then you can also make your own runners.
So let's say you're deploying on-prem.
Well,
you need to have line of sight to deploy to your on-prem boxes,
right?
just want to call out that you might,
in case anybody's thinking that,
oh,
you know,
I'm not deploying to the cloud.
I'm deploying to like a lockdown on-prem environment.
I can't use GitHub.
Nope,
you can.
You just
use a custom GitHub Actions runner and basically you just install an agent.
I kind of marise those two things up and then
all of the steps run on that virtual machine,
that runner
that you created.
So
I'd say that's the only thing that
I just want to call out because
I hear people
say like,
oh,
I can't use GitHub cause I'm not,
you know,
in the cloud and it's like,
well,
yeah,
you can.
And a lot of,
I mean Azure DevOps,
I think they call them agents or something like that.
Has a similar
concept to.
So a runner is equal to an Azure DevOps agent.
It's not equal to a build.
A build agent,
it's like the whole machine that's running on.
So as you say,
if there's a VM,
but you would run an Azure DevOps agent on that,
which actually listens for events and does the work.
So is a runner more like the actual agent part of it?
A runner is more the build agent part of it.
you see.
Yep.
So it's actually the VM.
So when you,
you know,
when you create separate builds,
if you're using GitHub runners,
you're actually getting separate VMs.
Now,
obviously,
if you're managing your own runner yourself,
because some people do this for like performance,
maybe they want,
you know,
a ton of cores or something
and the built-in runners
are either too expensive
to get the amount of cores that they want
or whatever the case is.
Or networking is the other reason,
but yeah,
a runner is more like a build agent,
but then you install an agent.
That is like the thing listening
and kind of connects GitHub actions to
your VM that you created.
Right.
OK.
So if I decide I want to build
the thing that builds my software
to be my computer under my desk,
that computer under my desk is the runner,
but I would install an agent onto it,
which is listening out for GitHub events
and will know when to,
so that would then pull,
do like a Git clone on my machine
and then build it
and then push that back to GitHub as an artifact.
Yeah,
it depends on what your pipeline's doing,
but yeah,
if you pull down the repo
and you know,
do some things
and then you can push back up to GitHub
as an artifact,
then kind of,
you know,
move on to the next step
that then download
sort of fact from GitHub
or,
you know,
you could push it to your local on-prem
artifact repository
if you want.
So just kind of depends on
what you want to do.
Awesome.
Well,
we are quickly running out of time
and I realized that we normally do dev tips
the end and I completely forgot to think of one.
So I don't know
whether you got a chance
to think of one,
but we can either skip it or.
Dev tips,
dev tips,
dev tips.
I did not think of one ahead of time.
I feel like we offered a lot of dev tips
throughout here with like,
you know,
continuous deployment
and stuff like that.
So maybe those are our dev tips.
Yeah,
I think so.
I think so.
We've got the,
those that,
what was it called?
The Act Project.
So that can be,
let's call it a joint dev tip then.
Yeah,
sounds good.
Yes,
act is our dev tip.
Awesome.
I'll include that in the show notes then.
Well,
with that,
just a massive thank you
for joining me on the show.
It's kind of like,
as I say before,
this is really kind of motivating me to do
more with getting up actions.
I also persuade on the clients to completely move over
and move away from now.
What's the lecture?
But yeah,
it's been really fun chatting with you.
Thank you for joining me.
Yeah,
thanks for having me,
Dan.
You're most welcome.
And a big thank you to everyone for listening.
I'm a quick reminder that this podcast is sponsored by Everstack,
which is my own company providing software development
and consultation services
for more information.
Visit everstack.com
and if you enjoy the podcast,
please do help me spread the word on social media.
I normally use the hashtag
UnhandledException
and I can be found on Twitter at Dracan,
which is D-R-A-C-A-N.
And like you,
I can't call X.
It's always Twitter in my mind.
But the best place to get in touch with me
is on Discord
and like all the links we've spoken about today,
including the Discord link
can be found on the website,
which is UnhandledExceptionPodcast.com.
Episode suivant:
Les infos glanées
TheUnhandledExceptionPodcast
Tags