diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b47d01d8bba7..f532c09fde6f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -38,60 +38,22 @@ Les créations et modifications de fiches membres peuvent se faire via l'[Espace ## Développement en local -### Utilisation de Jekyll +Ce site est construit avec [Jekyll](https://jekyllrb.com/). -Ce site est construit avec [Jekyll](https://jekyllrb.com/), un générateur de sites statiques. La version utilisée est la [3.8.5](https://github.com/jekyll/jekyll/releases/tag/v3.8.5/). - -Pour initialiser votre environnement de développement, commencez par installer [Ruby](https://www.ruby-lang.org/fr/) dans la version spécifiée par le fichier `.ruby-version`. -Si vous utilisez RVM pour isoler votre environnement, vous pouvez le faire avec la commande suivante : +Pour lancer le serveur et commencer à développer, un environnement +Docker est fourni. Des commandes utiles sont fournies dans le +[`Makefile`](./Makefile), mais pour démarrer : ```sh -rvm install `cat .ruby-version` +docker compose up ``` -Toujours avec RVM, vous pouvez créer un fichier `.ruby-gemset` contenant un nom de gemset à utiliser en local. -Il vous suffit alors de sortir puis revenir du répertoire pour que le gemset soit créé correctement si votre shell est bien configuré. - -Ensuite, exécutez les commandes suivantes : +Si vous préférez installer le projet sur votre système : ```sh -git clone https://github.com/betagouv/beta.gouv.fr.git -cd beta.gouv.fr -gem install bundler --no-ri --no-rdoc -npm install bundle install -bundle exec jekyll serve -``` - -#### Gestion des dépendances - -Afin de minimiser les écarts entre les versions de développement et les versions de production, ce dépôt contient un fichier `Gemfile` (spécification des versions minimum des dépendances), comme beaucoup de dépôts Ruby. - -### Développement local avec Docker - -Un environnement de developpement local basé sur docker, est disponible. -Les prérequis d'execution sont : -- Makefile -- docker -- docker-compose -- npm - -Pour lancer son environnement local: -```bash -# Installation des assets à copier -npm i - -# Génération des fichiers -make build - -# Exécution des tests -make test - -# Lancement de Jekyll -make up - -# Arrêt de Jekyll -make down +npm install +bundle exec jekyll serve --incremental --livereload ``` Le site beta.gouv est alors accessible en local sur `http://localhost:4000` diff --git a/Makefile b/Makefile index e8f7d8559191..49b24371e0ed 100644 --- a/Makefile +++ b/Makefile @@ -2,25 +2,17 @@ DOCKER-RUN = docker compose run -e TERM --rm BUNDLE-EXEC = bundle exec build: - $(DOCKER-RUN) web /bin/bash -c 'ci/build.sh' -test: - $(DOCKER-RUN) web /bin/bash -c 'ci/test.sh' + docker compose build spec: $(DOCKER-RUN) web $(BUNDLE-EXEC) rspec guard: $(DOCKER-RUN) web $(BUNDLE-EXEC) guard up: - docker-compose up + docker compose up down: - docker-compose down + docker compose down sh: $(DOCKER-RUN) web bash -rm: - docker-compose rm -sf -up-nginx: down-nginx - docker-compose -f docker-compose.nginx.yml up -d -down-nginx: - docker-compose -f docker-compose.nginx.yml down html-proofer: bundle exec htmlproofer ./_site/ --ignore-files "/recrutement\/*/" --no-enforce-https --disable-external --root_dir _site/ --allow-missing-href diff --git a/ci/build.sh b/ci/build.sh deleted file mode 100755 index cea28eeb4f12..000000000000 --- a/ci/build.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -# -# This build script, prepare a local dev environment -# this steps are described in .github/workflows/tests.yml -# -set -euo pipefail - -echo "# Install dependencies" -time npm install -time bundle check || bundle install --path vendor/bundle - -time bundle exec jekyll doctor - -echo "# Build" -time bundle exec jekyll build --trace -V diff --git a/ci/prepare-nginx-servers.conf.sh b/ci/prepare-nginx-servers.conf.sh deleted file mode 100755 index 18239576d671..000000000000 --- a/ci/prepare-nginx-servers.conf.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -apt-get update -q && apt-get install -qy ruby -erb /app/servers.conf.erb > /etc/nginx/conf.d/default.conf diff --git a/ci/test.sh b/ci/test.sh deleted file mode 100755 index 6dad84496a81..000000000000 --- a/ci/test.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# -# This build script, prepare a local dev environment -# this steps are described in .github/workflows/tests.yml -# -set -euo pipefail - -echo "# Install dependencies" -time npm install -time bundle check || bundle install --path vendor/bundle - -echo "# Unit tests" -time ruby -e "Dir.glob('test/*.rb').each { |f| require File.expand_path(f) }" -time ruby bin/validate schema/authors.yml "content/_authors/*.md" -time ruby bin/validate schema/startups.yml "content/_startups/*.md" - -echo "# htmlproofer / jsonlint" -time bundle exec htmlproofer ./_site --assume-extension --check-html --disable-external --empty-alt-ignore --check-img-http -time bundle exec jsonlint _site/api/v*/*.json diff --git a/docker-compose.nginx.yml b/docker-compose.nginx.yml deleted file mode 100644 index 6fc2d6af5070..000000000000 --- a/docker-compose.nginx.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: '3' -services: - nginx: - image: nginx:stable - volumes: - - ./_site:/app/_site - - ./servers.conf.erb:/app/servers.conf.erb - - ./ci/prepare-nginx-servers.conf.sh:/docker-entrypoint.d/40-prepare-servers.conf.sh - environment: - - PORT=80 - ports: - - 8080:80 diff --git a/docker-compose.yml b/docker-compose.yml index 029628d9fdf1..27e0e9e8b7bf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,6 +3,7 @@ services: build: . volumes: - .:/app + - /app/node_modules ports: - "4000:4000" - "35729:35729"