What's on this page
Deploy
Below are some recipes to automate build and/or deployment of a static site.
Jamstack platforms
Netlify
A powerful serverless platform with an intuitive git-based workflow. Automated deployments, shareable previews, and much more.
netlify.toml:
[build]
publish = "_site"
command = "curl -sSOL https://cecil.app/build.sh && bash ./build.sh"
[build.environment]
PHP_VERSION = "8.1"
[context.production.environment]
CECIL_ENV = "production"
[context.deploy-preview.environment]
CECIL_ENV = "preview"
Vercel
Vercel combines the best developer experience with an obsessive focus on end-user performance.
vercel.json:
{
"builds": [{
"src": "package.json",
"use": "@vercel/static-build",
"config": { "distDir": "_site" }
}]
}
package.json:
{
"scripts": {
"build": "curl -sSOL https://cecil.app/build.sh && bash ./build.sh"
}
}
Cloudflare Pages
Cloudflare Pages is a JAMstack platform for frontend developers to collaborate and deploy websites.
➡️ https://pages.cloudflare.com
Build configurations:
- Framework preset:
None
- Build command:
curl -sSOL https://cecil.app/build.sh && bash ./build.sh
- Build output directory:
_site
Render
Render is a unified cloud to build and run all your apps and websites with free TLS certificates, global CDN, private networks and auto deploys from 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
Continuous build & hosting
GitHub Pages
Websites for you and your projects, hosted directly from your GitHub repository. Just edit, push, and your changes are live.
.github/workflows/build-and-deploy.yml:
name: Build and deploy to GitHub Pages
on:
push:
branches: [master, main]
workflow_dispatch:
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: '8.1'
extensions: mbstring, gd, imagick, intl, gettext
- name: Build with Cecil
uses: Cecilapp/Cecil-Action@v3
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
deploy:
needs: build
permissions:
pages: write
id-token: write
concurrency:
group: pages
cancel-in-progress: true
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
With GitLab Pages, you can publish static websites directly from a repository in GitLab.
➡️ https://about.gitlab.com/solutions/continuous-integration/
.gitlab-ci.yml:
image: phpdocker/phpdocker:8.1
before_script:
- |
echo "Downloading Cecil..."
if [[ -z "$CECIL_VERSION" ]]; then
curl -sSOL https://cecil.app/cecil.phar
else
curl -sSOL https://cecil.app/download/$CECIL_VERSION/cecil.phar
fi
- php cecil.phar --version
- COMPOSER_CACHE_DIR=composer-cache composer install --prefer-dist --no-dev --no-progress --no-interaction
test:
stage: test
script:
- php cecil.phar build --verbose --output=test
artifacts:
paths:
- test
except:
- master
pages:
stage: deploy
script:
- php cecil.phar build --output=public
artifacts:
paths:
- public
only:
- master
cache:
paths:
- composer-cache/
- vendor/
- .cache/
Static hosting
Surge
Shipping web projects should be fast, easy, and low risk. Surge is static web publishing for Front-End Developers, right from the CLI.
Terminal:
npm install -g surge
surge _site/