From 3ed686cdddb9cec1d59161d5e486c2973804d616 Mon Sep 17 00:00:00 2001 From: divlo Date: Mon, 28 Dec 2020 11:44:23 +0100 Subject: [PATCH] ci: add GitHub Actions --- .github/CODE_OF_CONDUCT.md | 131 +++++++++++++++++++++++ .github/{ => images}/FunctionProject.png | Bin .github/workflows/commitlint.yml | 18 ++++ .github/workflows/nodejs.yml | 86 +++++++++++++++ LICENSE | 23 +++- README.md | 14 +-- website/.gitignore | 36 +++++-- website/components/Footer/Footer.jsx | 2 +- 8 files changed, 288 insertions(+), 22 deletions(-) create mode 100644 .github/CODE_OF_CONDUCT.md rename .github/{ => images}/FunctionProject.png (100%) create mode 100644 .github/workflows/commitlint.yml create mode 100644 .github/workflows/nodejs.yml diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..45c7479 --- /dev/null +++ b/.github/CODE_OF_CONDUCT.md @@ -0,0 +1,131 @@ +# Code de conduite _Contributor Covenant_ + +## Notre engagement + +En tant que membres, contributeur•trice•s et dirigeant•e•s, nous nous +engageons à faire de la participation à notre communauté +une expérience sans harcèlement, quel que soit l'âge, +la taille corporelle, le handicap visible ou invisible, l'appartenance ethnique, +les caractéristiques sexuelles, l'identité et l'expression de genre, +le niveau d'expérience, l'éducation, le statut socio-économique, +la nationalité, l'apparence personnelle, la race, la religion, +ou l'identité et l'orientation sexuelle. + +Nous nous engageons à agir et interagir de manière à contribuer à une communauté +ouverte, accueillante, diversifiée, inclusive et saine. + +## Nos critères + +Exemples de comportements qui contribuent à créer un environnement positif : + +- Faire preuve d'empathie et de bienveillance envers les autres +- Être respectueux des opinions, points de vue et expériences divergents +- Donner et recevoir avec grâce les critiques constructives +- Assumer ses responsabilités et s'excuser auprès des personnes affectées par nos erreurs et apprendre de ces expériences +- Se concentrer sur ce qui est le meilleur non pas uniquement pour nous en tant qu'individu, mais aussi pour l'ensemble de la communauté + +Exemples de comportements inacceptables : + +- L'utilisation de langage ou d'images sexualisés et d'attentions ou d'avances sexuelles de toute nature +- Le _trolling_, les commentaires insultants ou désobligeants et les attaques + personnelles ou d'ordre politique +- Le harcèlement en public ou en privé +- La publication d'informations privées d'autrui, telle qu'une + adresse postale ou une adresse électronique, sans leur autorisation explicite +- Toute autre conduite qui pourrait raisonnablement être considérée comme inappropriée + dans un cadre professionnel + +## Responsabilités d'application + +Les dirigeant•e•s de la communauté sont chargé•e•s de clarifier et de faire respecter nos normes de +comportements acceptables et prendront des mesures correctives appropriées et équitables en +réponse à tout comportement qu'ils ou elles jugent inapproprié, menaçant, offensant ou nuisible. + +Les dirigeant•e•s de la communauté ont le droit et la responsabilité de supprimer, modifier ou rejeter +les commentaires, les contributions, le code, les modifications de wikis, les rapports d'incidents ou de bogues et autres contributions qui +ne sont pas alignés sur ce code de conduite, et communiqueront les raisons des décisions de modération +le cas échéant. + +## Portée d'application + +Ce code de conduite s'applique à la fois au sein des espaces du projet ainsi que +dans les espaces publics lorsqu'un individu représente officiellement le projet ou sa +communauté. Font parties des exemples de représentation d'un projet ou d'une +communauté l'utilisation d'une adresse électronique officielle, la publication sur +les réseaux sociaux à l'aide d'un compte officiel ou le fait d'agir en tant que représentant•e désigné•e +lors d'un événement en ligne ou hors-ligne. + +## Application + +Les cas de comportements abusifs, harcelants ou tout autre comportement +inacceptables peuvent être signalés aux dirigeant•e•s de la communauté responsables de l'application du code de conduite à +contact@divlo.fr. +Toutes les plaintes seront examinées et feront l'objet d'une enquête rapide et équitable. + +Tou•te•s les dirigeant•e•s de la communauté sont tenu•e•s de respecter la vie privée et la sécurité des +personnes ayant signalé un incident. + +## Directives d'application + +Les dirigeant•e•s de communauté suivront ces directives d'application sur l'impact communautaire afin de déterminer +les conséquences de toute action qu'ils jugent contraire au présent code de conduite : + +### 1. Correction + +**Impact communautaire** : utilisation d'un langage inapproprié ou tout autre comportement jugé +non professionnel ou indésirable dans la communauté. + +**Conséquence** : un avertissement écrit et privé de la part des dirigeant•e•s de la communauté, clarifiant +la nature du non-respect et expliquant pourquoi +le comportement était inapproprié. Des excuses publiques peuvent être demandées. + +### 2. Avertissement + +**Impact communautaire** : un non-respect par un seul incident ou une série d'actions. + +**Conséquence** : un avertissement avec des conséquences dû à la poursuite du comportement. +Aucune interaction avec les personnes concernées, y compris l'interaction non sollicitée avec +celles et ceux qui sont chargé•e•s de l'application de ce code de conduite, pendant une période déterminée. +Cela comprend le fait d'éviter les interactions dans les espaces communautaires ainsi que sur les canaux externes +comme les médias sociaux. Le non-respect de ces conditions peut entraîner +un bannissement temporaire ou permanent. + +### 3. Bannissement temporaire + +**Impact communautaire** : un non-respect grave des normes communautaires, notamment +un comportement inapproprié soutenu. + +**Conséquence** : un bannissement temporaire de toutes formes d'interactions ou de +communications avec la communauté pendant une période déterminée. Aucune interaction publique ou +privée avec les personnes concernées, y compris les interactions non sollicitées +avec celles et ceux qui appliquent ce code de conduite, n'est autorisée pendant cette période. +Le non-respect de ces conditions peut entraîner un bannissement permanent. + +### 4. Bannissement permanent + +**Impact communautaire** : démontrer un schéma récurrent de non-respect des normes de la +communauté y compris un comportement inapproprié soutenu, le harcèlement d'un individu +ainsi que l'agression ou le dénigrement de catégories d'individus. + +**Conséquence** : un bannissement permanent de toutes formes d'interactions publiques au sein de +la communauté. + +## Attributions + +Ce code de conduite est adapté du +[Contributor Covenant](https://www.contributor-covenant.org), version 2.0, +disponible à +[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0]. + +Les Directives d'application ont été inspirées par le +[Code of conduct enforcement ladder][mozilla coc] de Mozilla. + +Pour obtenir des réponses aux questions courantes sur ce code de conduite, consultez la FAQ à +[https://www.contributor-covenant.org/faq][faq]. Les traductions sont disponibles +sur [https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html +[mozilla coc]: https://github.com/mozilla/diversity +[faq]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/.github/FunctionProject.png b/.github/images/FunctionProject.png similarity index 100% rename from .github/FunctionProject.png rename to .github/images/FunctionProject.png diff --git a/.github/workflows/commitlint.yml b/.github/workflows/commitlint.yml new file mode 100644 index 0000000..e5d26c7 --- /dev/null +++ b/.github/workflows/commitlint.yml @@ -0,0 +1,18 @@ +# For more information see: https://github.com/marketplace/actions/commit-linter + +name: 'Lint Commit Messages' + +on: + push: + branches: [master] + pull_request: + branches: [master] + +jobs: + commitlint: + runs-on: 'ubuntu-latest' + steps: + - uses: 'actions/checkout@v2' + with: + fetch-depth: 0 + - uses: 'wagoid/commitlint-github-action@v2' diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml new file mode 100644 index 0000000..16e4770 --- /dev/null +++ b/.github/workflows/nodejs.yml @@ -0,0 +1,86 @@ +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: 'Node.js CI' + +on: + push: + branches: [master] + pull_request: + branches: [master] + +jobs: + ci_website: + runs-on: 'ubuntu-latest' + defaults: + run: + working-directory: 'website' + strategy: + matrix: + node-version: [14.x] + steps: + - uses: 'actions/checkout@v2' + + - name: Use Node.js ${{ matrix.node-version }} + uses: 'actions/setup-node@v2.1.2' + with: + node-version: ${{ matrix.node-version }} + + - name: 'Cache dependencies' + uses: 'actions/cache@v2' + with: + path: '**/node_modules' + key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} + + - run: 'npm install' + - run: 'npm run lint' + - run: 'npm run build' + + ci_api: + runs-on: 'ubuntu-latest' + defaults: + run: + working-directory: 'api' + strategy: + matrix: + node-version: [14.x] + steps: + - uses: 'actions/checkout@v2' + + - name: Use Node.js ${{ matrix.node-version }} + uses: 'actions/setup-node@v2.1.2' + with: + node-version: ${{ matrix.node-version }} + + - name: 'Cache dependencies' + uses: 'actions/cache@v2' + with: + path: '**/node_modules' + key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} + + - run: 'npm install' + - run: 'npm run lint' + + ci_s-divlo-fr: + runs-on: 'ubuntu-latest' + defaults: + run: + working-directory: 's.divlo.fr' + strategy: + matrix: + node-version: [14.x] + steps: + - uses: 'actions/checkout@v2' + + - name: Use Node.js ${{ matrix.node-version }} + uses: 'actions/setup-node@v2.1.2' + with: + node-version: ${{ matrix.node-version }} + + - name: 'Cache dependencies' + uses: 'actions/cache@v2' + with: + path: '**/node_modules' + key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} + + - run: 'npm install' + - run: 'npm run lint' diff --git a/LICENSE b/LICENSE index c8c50c1..04e85c3 100644 --- a/LICENSE +++ b/LICENSE @@ -1,8 +1,21 @@ -The MIT License (MIT) -Copyright © 2020 Divlo +MIT License -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +Copyright (c) Divlo -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 55999cb..4df6c4f 100644 --- a/README.md +++ b/README.md @@ -5,11 +5,13 @@

+ Node.js CI JavaScript Style Guide - Conventional Commits Licence MIT + Conventional Commits + Contributor Covenant

- FunctionProject + FunctionProject

## ⚙️ À propos @@ -22,7 +24,7 @@ Si vous aimez le projet, vous pouvez aider à **le faire connaître** en utilisa Les dernières versions publiées : [https://github.com/Divlo/FunctionProject/releases](https://github.com/Divlo/FunctionProject/releases) -Le projet est disponible sur [function.divlo.fr](https://function.divlo.fr/) (actuellement en version 2.2). +Le projet est disponible sur [function.divlo.fr](https://function.divlo.fr/) (actuellement en version 2.3). ## 🚀 Open Source @@ -58,7 +60,7 @@ cd ../website npm install ``` -Vous devrez ensuite configurer l'API en créant un fichier `.env` à la racine du dossier `/api` et prendre exemple du fichier `.env.example` avec votre configuration. +Vous devrez ensuite configurer les variables d'environnements en créant un fichier `.env` à la racine du dossier `/api`, `/website` et `s.divlo.fr` pour prendre exemple du fichier `.env.example` avec votre configuration. ### Lancer l'environnement de développement @@ -98,6 +100,6 @@ Enjoy! 😃 [![JavaScript Style Guide](https://cdn.rawgit.com/standard/standard/master/badge.svg)](https://github.com/standard/standard) -## 📄 Licence +## 📄 License -Ce projet est sous licence MIT - voir le fichier [LICENSE](./LICENSE) pour plus de détails. +[MIT](./LICENSE) diff --git a/website/.gitignore b/website/.gitignore index 2f27fb1..676a2bc 100644 --- a/website/.gitignore +++ b/website/.gitignore @@ -1,22 +1,24 @@ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. # dependencies -/node_modules -/.pnp +node_modules +.pnp .pnp.js - -# testing -/coverage +.yarn # next.js -/.next/ -/out/ +.next +out # production -/build +build +dist -# misc -.DS_Store +# PWA +**/public/workbox-*.js +**/public/sw.js + +# envs .env .env.production @@ -24,3 +26,17 @@ npm-debug.log* yarn-debug.log* yarn-error.log* + +# lockfiles +package-lock.json +yarn.lock +pnpm-lock.yaml + +# editors +.vscode +.theia +.idea + +# misc +.DS_Store +.lighthouseci diff --git a/website/components/Footer/Footer.jsx b/website/components/Footer/Footer.jsx index f828136..3992445 100644 --- a/website/components/Footer/Footer.jsx +++ b/website/components/Footer/Footer.jsx @@ -8,7 +8,7 @@ export default function Footer () { FunctionProject -  - Version 2.2
+  - Version 2.3
Divlo {' '}