feat: Add auto build website with Drone #8

Merged
kosssi merged 1 commits from drone into main 2022-02-01 15:22:55 +01:00
3 changed files with 121 additions and 0 deletions

117
.drone.yml Normal file
View File

@ -0,0 +1,117 @@
---
# drone encrypt resilien/resilien.fr $REGISTRY_PASSWORD
kind: secret
name: REGISTRY_PASSWORD
data: dYAxgJzu+Ic48OIWSFSy1fIG/Z9UUb7ErEyN+3KyI3DaVl1HKWIjdhd6HQZNcgjyKqxZh+smR7CeklVTO2cJhAfQfXIu8ENfGW1QEiFM
---
# drone encrypt resilien/resilien.fr $REGISTRY_USER
kind: secret
name: REGISTRY_USER
data: Y/LGloHcxShJGmqXaGvFJYLSCDbG7wWZap8oywddPdJfcw==
---
# drone encrypt resilien/resilien.fr "{\"auths\":{\"https://registry.weko.io\":{\"auth\":\"$(echo -n "$REGISTRY_USER:$REGISTRY_PASSWORD" | base64)\",\"email\":\"$REGISTRY_USER\"}}}"
kind: secret
name: REGISTRY_CONFIG
data: ICKt0HnBLKDrCNUH1xJnOKCwOMn/R+xMqtO8AxQ8ZorJO/J1O3hUFx3gYH6uKe3y3qa73zGPjSHnTGFv43eGBS0K8L0qQtXdLqIKTOQiIMK9CENN+w8uULCKSls01XHv7zY0bGR5FjmniXCLNYHiWHnJOi8xbAkDorhy6GwhBBpsumsZ6uzA5I0NfHTs+gplvQh6H+6Dmh03ygx39pMfE+P1F2D5VS9OiieS
---
kind: pipeline
type: docker
name: prod
platform:
os: linux
arch: arm64
steps:
- name: install submodule
image: drone/git
commands:
- git submodule update --init
kosssi marked this conversation as resolved Outdated

Pourquoi est-ce que la vérification SSL est désactivée ? A priori les certificats fonctionnent bien avec Let's Encrypt dans notre infra.

Pourquoi est-ce que la vérification SSL est désactivée ? A priori les certificats fonctionnent bien avec Let's Encrypt dans notre infra.

Je viens de supprimer la ligne. C'était pour une ancienne configuration.

Je viens de supprimer la ligne. C'était pour une ancienne configuration.
- name: install npm
image: node:current-alpine
commands:
- (cd themes/hugo-theme-lowtech && npm i)
- name: build website
image: jakejarvis/hugo-extended
commands:
- hugo --minify --environment production
- name: typo
image: node:current-alpine
commands:
- node themes/hugo-theme-lowtech/scripts/typo
- name: build and push docker image on registry
image: plugins/docker
kosssi marked this conversation as resolved Outdated

Je n'ai pas vu l'étape où on build l'image Docker. C'est celle-ci qui le fait implicitement avant de faire le push ? Ou c'est une autre étape ?

Je n'ai pas vu l'étape où on build l'image Docker. C'est celle-ci qui le fait implicitement avant de faire le push ? Ou c'est une autre étape ?

Oui c'est bien cette étape qui construit et envoi l'image Docker. J'ai changer le commentaire pour être plus explicite

Oui c'est bien cette étape qui construit et envoi l'image Docker. J'ai changer le commentaire pour être plus explicite
settings:
username:
from_secret: REGISTRY_USER
password:
from_secret: REGISTRY_PASSWORD
repo: registry.weko.io/resilien_fr
registry: registry.weko.io
tags:
- latest
image_pull_secrets:
- REGISTRY_CONFIG
trigger:
event:
- push
branch:
- main
---
kind: pipeline
type: docker
name: staging
platform:
os: linux
arch: arm64
steps:
- name: install submodule
image: drone/git
commands:
- git submodule update --init
kosssi marked this conversation as resolved Outdated

Tu peux aussi enlever la désactivation du SSL ici

Tu peux aussi enlever la désactivation du SSL ici

supprimé

supprimé
- name: install npm
image: node:current-alpine
commands:
- (cd themes/hugo-theme-lowtech && npm i)
- name: build website
image: jakejarvis/hugo-extended
commands:
- hugo --minify --buildDrafts --buildFuture --environment staging
- name: typo
image: node:current-alpine
commands:
- node themes/hugo-theme-lowtech/scripts/typo
- name: push docker image on registry
image: plugins/docker
settings:
username:
from_secret: REGISTRY_USER
password:
from_secret: REGISTRY_PASSWORD
repo: registry.weko.io/resilien_fr
registry: registry.weko.io
tags:
- staging
image_pull_secrets:
- REGISTRY_CONFIG
trigger:
event:
- push

View File

@ -10,11 +10,13 @@ services:
resilien-prod:
container_name: resilien-prod
build: .
image: registry.weko.io/resilien_fr:prod

Quelle est la procédure de rollback dans ce cas si le tag reste le même à chaque mise à jour ?

Quelle est la procédure de rollback dans ce cas si le tag reste le même à chaque mise à jour ?

Il n'y a pas de procédure de rollaback il faut faire un nouveau commit

Il n'y a pas de procédure de rollaback il faut faire un nouveau commit

D'accord. Comme c'est le site web, on aura probablement pas besoin de faire de rollback en urgence. On peut prendre le temps de faire un nouveau commit.

D'accord. Comme c'est le site web, on aura probablement pas besoin de faire de rollback en urgence. On peut prendre le temps de faire un nouveau commit.
restart: always
labels:
traefik.enable: "true"
traefik.http.routers.resilien.rule: "Host(`${URL}`)"
traefik.http.routers.resilien.entrypoints: "web"
com.centurylinklabs.watchtower.enable: true
volumes:
- resilien-log:/var/log/nginx
- resilien-stats:/usr/share/nginx/html/stats

View File

@ -8,11 +8,13 @@ services:
resilien-staging:
container_name: resilien-staging
build: .
image: registry.weko.io/resilien_fr:staging
restart: always
labels:
traefik.enable: "true"
traefik.http.routers.resilien-staging.rule: "Host(`staging.${URL}`)"
traefik.http.routers.resilien-staging.entrypoints: "web"
com.centurylinklabs.watchtower.enable: true

Watchtower est de nouveau dans l'infra RésiLien ? Ou il a toujours été actif ?

Watchtower est de nouveau dans l'infra RésiLien ? Ou il a toujours été actif ?

Watchtower a toujours été en place sur vert

Watchtower a toujours été en place sur _vert_
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro