Déployer
Par défaut, votre site statique est généré dans le répertoire _site et peut être déployé tel quel.
Vous trouverez ci-dessous quelques recettes pour automatiser la génération et/ou le déploiement d’un site statique.
Plateformes Jamstack
Netlify
Une puissante plateforme serverless avec un flux de travail intuitif basé sur Git. Déploiements automatisés, aperçus partageables, et bien plus encore.
netlify.toml:
[build]
publish = "_site"
command = "curl -sSOL https://cecil.app/build.sh && bash ./build.sh"
[context.production.environment]
CECIL_ENV = "production"
[context.deploy-preview.environment]
CECIL_ENV = "preview" Vercel
Vercel associe une excellente expérience développeur à une attention obsessionnelle portée aux performances côté utilisateur final.
vercel.json:
{
"buildCommand": "curl -sSOL https://cecil.app/build.sh && bash ./build.sh",
"outputDirectory": "_site"
} statichost
Hébergement moderne de sites statiques avec des serveurs européens et absolument aucune collecte de données personnelles !
statichost.yml:
image: wordpress:cli-php8.4
command: curl -sSOL https://cecil.app/build.sh && bash ./build.sh
public: _site Cloudflare Pages
Cloudflare Pages est une plateforme JAMstack qui permet aux développeurs frontend de collaborer et de déployer des sites web.
➡️ https://pages.cloudflare.com
Configurations de build :
- Préréglage de framework :
None - Commande de build :
curl -sSOL https://cecil.app/build.sh && bash ./build.sh - Répertoire de sortie du build :
_site
Render
Render est un cloud unifié pour créer et exécuter toutes vos applications et tous vos sites web, avec certificats TLS gratuits, CDN global, réseaux privés et déploiements automatiques depuis Git.
render.yaml:
previewsEnabled: true
services:
- type: web
name: Cecil
env: static
buildCommand: curl -sSOL https://cecil.app/build.sh && bash ./build.sh
staticPublishPath: _site
pullRequestPreviewsEnabled: true Build et déploiement continus
GitHub Pages
Des sites web pour vous et vos projets, hébergés directement depuis votre dépôt GitHub. Il suffit de modifier, pousser, et vos changements sont en ligne.
.github/workflows/build-and-deploy.yml:
name: Build and deploy to GitHub Pages
on:
push:
branches: [master, main]
workflow_dispatch:
concurrency:
group: pages
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: pre-installed
extensions: mbstring, fileinfo, gd, imagick, intl, gettext
- name: Restore Cecil cache
uses: actions/cache/restore@v4
with:
path: ./.cache
key: cecil-cache-
restore-keys: |
cecil-cache-
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
- name: Build with Cecil
uses: Cecilapp/Cecil-Action@v3
with:
args: '-v --baseurl="${{ steps.pages.outputs.base_url }}/"'
- name: Save Cecil cache
uses: actions/cache/save@v4
with:
path: ./.cache
key: cecil-cache-${{ hashFiles('./.cache/**/*') }}
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
deploy:
needs: build
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4 GitLab CI
Avec GitLab Pages, vous pouvez publier des sites web statiques directement depuis un dépôt GitLab.
➡️ https://about.gitlab.com/solutions/continuous-integration/
.gitlab-ci.yml:
image: wordpress:cli-php8.4
test:
stage: test
variables:
CECIL_OUTPUT_DIR: test
script:
- curl -sSOL https://cecil.app/build.sh && bash ./build.sh
artifacts:
paths:
- test
except:
- master
pages:
stage: deploy
variables:
CECIL_ENV: production
CECIL_OUTPUT_DIR: public
script:
- curl -sSOL https://cecil.app/build.sh && bash ./build.sh
artifacts:
paths:
- public
only:
- master
cache:
paths:
- composer-cache/
- vendor/
- .cache/ Hébergement statique
Surge
Publier des projets web doit être rapide, simple et peu risqué. Surge est un service de publication de sites statiques pour les développeurs frontend, directement depuis la CLI.
Terminal:
npm install -g surge
surge _site/