Comments (5)
@mmarchois @ip512 @NicolasDievart
Cette tâche est vraiment sujette à discussion. Je propose cette idée car ce worlflow me parraît bien mais p-e qu'il est overkill ou non prio pour le moment.
A vue de nez pour faire cette feature il faudrait :
1 . créer un docker file de production en utilisant les multi stage build de Docker (https://docs.docker.com/develop/develop-images/multistage-build/#use-multi-stage-builds) pour le client et le serveur
pourquoi ?
- On pourrait imaginer n'embarquer dans l'image de prod que les dépendences et pas les dev dependencies.
- Pour le front on pourrait mettre que le css minifié et purgé
- On pourrait virer les tests *
-
Si on utilise docker-compose pour le déploiement, il faudrait en créer un de prod. @mmarchois tu parlais de k8s mais là c'est un peu en dehors de mon scope de compétence.
-
Lancer une commande en SSH sur les serveurs pour puller les images (un peu bricolé mais ça pourrait le faire) *
Qu'en pensez-vous ?
- pas certains de mon idée là 😅
from permacoop.
À mon avis, il faudrait dans un premier temps le mettre en place sur un environnement de test/staging.
On pourrait utiliser cet environnement comme démo, mais dans ce cas il faudrait prévoir un minimum de fixtures pour pouvoir jouer avec.
from permacoop.
On a désormais la doc du processus de déploiement manuel actuel ici : https://github.com/fairnesscoop/permacoop/tree/master/prod
Dans la continuité de la discussion, j'envisagerais ça :
- Configurer un environnement de test/staging, genre https://staging.permacoop.fairness.coop. On y activera le déploiement auto en cours de développement, en gardant le process manuel en prod pour l'instant. Quand le déploiement auto semblera robuste, on pourra le faire sur la prod aussi.
- Ajouter
.github/workflows/staging.yml
avec un jobdeploy
qui se lancerait à chaque push surmaster
(ou autre branche avec laquelle on voudrait jouer pour déclencher des déploiements de test).- Pour l'instant, ce job referait grosso modo le process manuel actuel en lançant un script via SSH :
git pull
,npm run build
client et serveur, relance depm2
. Il faudra générer une clé SSH spécifique et la mettre dans les$secrets
sur GitHub. - Une fois que ce sera opérationnel, on pourra ensuite voir pour "améliorer" / "sophistiquer" le process (par ex avec Docker… Même si ça pose la question de leur taille, de leur stockage, du registry à utiliser, etc : est-ce qu'on en aura vraiment besoin ? À voir… D'où cette étape incrémentale.)
- Pour l'instant, ce job referait grosso modo le process manuel actuel en lançant un script via SSH :
from permacoop.
On a un avis sur l'outil de déploiement de PM2 ? https://pm2.keymetrics.io/docs/usage/deployment/. Apparemment ça ne prend tjr pas en compte le reload éventuel des applications.
Je me dis aussi qu'on peut commencer par bidouiller des scripts SSH, mais qu'assez vite il faudra aller sur des outils + robustes, sans être overkill non plus. Mais dans le domaine du "DevOps côté infrastructure" je suis preneur de bonnes pratiques… À discuter.
from permacoop.
Il y a du changement avec l'adoption d'Ansible #276.
Je vais màj la description de l'issue avec ce qui me semble nécessaire désormais
from permacoop.
Related Issues (20)
- Migrer client/kit vers SvelteKit 1.0 HOT 1
- ETQ coopérateur/salarié, je peux avoir un aperçu des demandes de congé sur mon tableau de bord HOT 2
- Le proxy nginx ne démarre pas sous Docker Desktop
- Traitement des anciens salariés
- Le seeding des utilisateurs ne crée pas de UserAdministrative
- Suppression de congés acceptés HOT 1
- Ajout du forfait mobilité durable HOT 1
- Afficher les l'état des congés sur l'année en cours pour chaque coopérateurs HOT 3
- Champs transportFee & sustainableMobilityFee de l'entity UserAdministrative ne devraient pas être nullable
- ETQ coopérateur/salarié, moi seul peut éditer mes propres demandes de congés
- Clé i18n manquante
- Ajout du forfait mobilité durable dans permacoop
- [EPIC] ETQ salarié.e, je souhaite pouvoir voir la nombre de jours de congé payé qu'il me reste pour cette année. HOT 12
- ETQ que salarié.e, je souhaite voir mon compteur de jours de congés augmenter chaque mois en fonction du nombre de jours de travail effectif effectué
- ETQ salarié.e mon compteur de jour de congé disponnible diminue dès que je prends un jours de congé payé
- Evénements "Autres" exclus du décompte de titres restaurant HOT 1
- Simplification de l'architecture
- "Commentaire" manquant dans les événements de calendrier
- Remplacer la fonctionnalité UserSavings par un raccourci de navigation HOT 1
- Interdire la gestion de CRA pour un autre utilisateur
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from permacoop.