Action Runner Controller GitHub
Actions Runner Controller (ARC) est un opérateur de Kubernetes qui orchestre et gère les runners auto-hébergés pour les actions GitHub.
Actions Runner Controller (ARC) est un opérateur de Kubernetes qui orchestre et gère les runners auto-hébergés pour les actions GitHub.
Un runner
est une machine virtuelle ou physique qui exécute des jobs
dans un workflow
. Les runners
peuvent être hébergés par GitHub ou auto-hébergés. Les runners
hébergés par GitHub sont exécutés dans un environnement de cloud partagé et sont gérés par GitHub et peuvent entrainer des surcouts. Les runners
auto-hébergés sont exécutés sur une machine que vous possédez et gérez.
Voici un exemple de création et d'utilisation d'une action GitHub pour automatiser le déploiement d'une application Node.js.
action.yml
dans le répertoire .github/actions/deploy
de votre dépôt avec le contenu suivant :name: 'Deploy Node.js App'
description: 'Deploy a Node.js application to a remote server'
inputs:
server:
description: 'The remote server to deploy to'
required: true
username:
description: 'The username to use for the deployment'
required: true
password:
description: 'The password to use for the deployment'
required: true
runs:
using: 'composite'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependencies
run: npm install
- name: Build application
run: npm run build
- name: Deploy application
run: |
sshpass -p ${{ inputs.password }} ssh ${{ inputs.username }}@${{ inputs.server }} 'mkdir -p /var/www/myapp'
sshpass -p ${{ inputs.password }} scp -r ./build/* ${{ inputs.username }}@${{ inputs.server }}:/var/www/myapp
deploy.yml
dans le répertoire .github/workflows
de votre dépôt avec le contenu suivant :name: Deploy Node.js App
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Deploy application
uses: ./.github/actions/deploy
with:
server: ${{ secrets.DEPLOY_SERVER }}
username: ${{ secrets.DEPLOY_USERNAME }}
password: ${{ secrets.DEPLOY_PASSWORD }}
Dans cet exemple, l'action Deploy Node.js App
est utilisée pour déployer une application Node.js sur un serveur distant. L'action est déclenchée à chaque fois qu'un push est effectué sur la branche main
. Les informations de déploiement (serveur, nom d'utilisateur et mot de passe) sont stockées dans les secrets du dépôt pour des raisons de sécurité.
Les actions GitHub permettent d'automatiser, personnaliser et exécuter un flux de travail directement depuis votre dépôt. Avec les actions GitHub, il est possible de créer des tâches personnalisées pour automatiser un flux de travail, partager et découvrir des actions pour effectuer des tâches spécifiques.
Voici un exemple d'intégration des actions GitHub dans un workflow pour automatiser le déploiement d'une application Node.js.
Un workflow est l'élément central de GitHub Actions. Il s'agit d'un processus automatisé composé de jobs
et de steps
qui s'exécutent sur des runners
. Les workflows sont déclenchés par des événements, tels que des pushs, des pull requests, des forks, etc.
Dans le monde du développement logiciel, l'automatisation est devenue une nécessité pour améliorer l'efficacité et réduire les erreurs humaines. GitHub Actions est une plateforme puissante qui permet d'automatiser les workflows de développement et de déploiement. Dans cet article, nous allons explorer les concepts de base de GitHub Actions, ses avantages, et fournir des exemples concrets pour vous aider à démarrer.
Dans cet article, nous allons explorer la différence entre un proxy et un reverse proxy.
Nginx est un serveur web open-source conçu pour gérer un grand nombre de connexions simultanées. Il couvre les fonctionnalités de Nginx telles que l'équilibrage de charge, le caching, la sécurité et la compression, ainsi que des exemples d'utilisation dans la vie réelle.
Voici un résumé de ma roadmap DevOps personnelle pour 2024. Cette roadmap est basée sur mes expériences et mes objectifs personnels. Elle est sujette à des changements et des mises à jour régulières. N'hésitez pas à me contacter si vous avez des suggestions ou des commentaires.
Voici un résumé vis à vis de la roadmap DevOps personnelle générale des compétences déjà acquises via ma formation et mes expériences professionnelles. Cette roadmap est basée sur mes expériences et mes objectifs personnels. Elle est sujette à des changements et des mises à jour régulières. N'hésitez pas à me contacter si vous avez des suggestions ou des commentaires.
Ingénieur en informatique au CATIE spécialisé en Robotique je suis amené à travailler sur des projets de développement logiciel et d'intégration sur différentes plateformes. Intrigué et passioné par l'intégration et l'automatisation des tâches, j'ai décidé d'approfondir mes connaissances en DevOps.